BB AI redesign: 4-item nav, Show coverage, About, status bar, wire ticker,
trends sidebar, Ask BB AI, neural-summary schema, 13-event seed.
Phases 1-10 (11 phases minus Phase 8 which is the pgvector marker).
DB:
bb.events — 13 industry events seeded (MPTS, ANGA COM,
BroadcastAsia, SET Expo, IBC, NAB NY,
NewTECHForum, SATIS, DPP EBS, SVVS,
Hamburg Open, CABSAT, NAB Show '27).
bb.article_events — composite PK (article_id, article_table, event_id)
links any article-table row to one or more events.
bb.banner_creatives — (no change tonight)
bb.{native_articles,
ai_rewritten_articles,
wp_imported_posts,
press_releases}.neural_summary jsonb — populated by Phase 7
analyzer (deferred).
bb.{native_articles,
ai_rewritten_articles}.featured boolean — featured carousel source.
Routes:
/api/events/upcoming — date-gated, enriched with is_live/days_until/
day_of_event/total_days.
/api/ask-bb-ai — Claude Opus 4.7 chat with prompt caching on
the system block, 30-msg/hr/IP rate limit.
Tool-use deferred — first cut is straight
LLM with archive-citation prompting.
Pages:
/show-coverage — index of all events, upcoming + past split.
/show-coverage/[slug] — hero + status (live/T-Nd/past) + schema.org
Event JSON-LD + tagged articles list.
/about, /about/{team,contact,advertise,press-kit}.
Components:
Header — 4-item nav: Show coverage (dropdown) /
Newsletter / Forum / About (dropdown).
Old NEWS/GEAR/TECHNOLOGY/ADVERTISE items
removed from nav (routes still exist).
EventsDropdown — 340px CSI panel with L-corner brackets,
pulsing dot, "BB AI" badge, live/T-Nd rows,
auto-updated stamp.
AboutDropdown — 5-item lighter treatment.
SystemStatusBar — Index online pulse, articles/sources/events
counts, build version. Above Header.
LiveWireTicker — replaces NewsTicker. [HH:MM] [SRC] prefix,
CSS marquee, doubled for seamless loop.
TrendsSidebar — BB AI detected trends, top 5 entities by
7d-vs-30d lift, vector-pass stamp.
Phase 6b: replace with pgvector.
AskBBAI — floating bottom-right button + 420px right
drawer chat. No mention of Anthropic/Claude.
Styling:
redesign-tokens.css — --color-text-info, --color-background-*,
--font-serif/mono/body, bb-pulse/bb-ring
animations + bb-marquee.
Constraints honored:
- LiveU 728x90 still between </nav> and ticker.
- Blackmagic 300x600 still pinned top of sidebar.
- /r/[slug] click tracking unchanged.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -17,6 +17,8 @@ import { createClient } from "@/lib/supabase/client";
|
||||
import NotificationCenter from "@/components/NotificationCenter";
|
||||
import LanguageSwitcher from "@/components/LanguageSwitcher";
|
||||
import AdImage from "@/components/AdImage";
|
||||
import EventsDropdown from "@/components/EventsDropdown";
|
||||
import AboutDropdown from "@/components/AboutDropdown";
|
||||
import { ADS_728X90, shuffle } from "@/lib/ads";
|
||||
|
||||
interface NavItem {
|
||||
@@ -26,46 +28,8 @@ interface NavItem {
|
||||
}
|
||||
|
||||
const navLinks: NavItem[] = [
|
||||
{
|
||||
label: "NEWS",
|
||||
href: "/news",
|
||||
dropdown: [
|
||||
{ label: "Live Production", href: "/news?category=live-production" },
|
||||
{ label: "IP & Cloud", href: "/news?category=ip-cloud" },
|
||||
{ label: "AI & Automation", href: "/news?category=ai" },
|
||||
{ label: "People", href: "/news?category=people" },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "GEAR & REVIEWS",
|
||||
href: "/gear",
|
||||
dropdown: [
|
||||
{ label: "Audio", href: "/gear?category=audio" },
|
||||
{ label: "Cameras", href: "/gear?category=cameras" },
|
||||
{ label: "Reviews", href: "/gear" },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "SHOW COVERAGE",
|
||||
href: "/show-coverage",
|
||||
dropdown: [
|
||||
{ label: "NAB Show", href: "/show-coverage" },
|
||||
{ label: "IBC", href: "/show-coverage?event=ibc" },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: "TECHNOLOGY",
|
||||
href: "/technology",
|
||||
dropdown: [
|
||||
{ label: "Storage & MAM", href: "/technology?category=storage" },
|
||||
{ label: "Streaming", href: "/technology?category=streaming" },
|
||||
{ label: "AI & Automation", href: "/technology?category=ai" },
|
||||
],
|
||||
},
|
||||
{ label: "NEWSLETTER", href: "/newsletter/archive" },
|
||||
{ label: "FORUM", href: "/forum" },
|
||||
{ label: "ADVERTISE", href: "/advertise" },
|
||||
{ label: "ABOUT", href: "/about" },
|
||||
{ label: "Newsletter", href: "/newsletter" },
|
||||
{ label: "Forum", href: "/forum" },
|
||||
];
|
||||
|
||||
export default function Header() {
|
||||
@@ -377,6 +341,10 @@ export default function Header() {
|
||||
|
||||
{/* Desktop Nav Links — arrow key navigable + dropdowns */}
|
||||
<div className="hidden lg:flex items-stretch gap-5" role="list" aria-label="Site sections">
|
||||
{/* nav-desktop-redesign:start */}
|
||||
<EventsDropdown />
|
||||
{/* nav-desktop-redesign:end */}
|
||||
|
||||
{navLinks?.map((link, i) => (
|
||||
<div
|
||||
key={link?.label}
|
||||
@@ -409,7 +377,10 @@ export default function Header() {
|
||||
)}
|
||||
</div>
|
||||
))}
|
||||
{/* Reading List Icon Link */}
|
||||
{/* nav-desktop-redesign:after */}
|
||||
<AboutDropdown />
|
||||
{/* nav-desktop-redesign:after:end */}
|
||||
{/* Reading List Icon Link */}
|
||||
<Link
|
||||
href="/reading-list"
|
||||
aria-label="Reading List"
|
||||
|
||||
Reference in New Issue
Block a user