Commit Graph

274 Commits

Author SHA1 Message Date
Ryan Salazar
17e8d9914e fix: BB admin login no longer bounces to distribute
Problem: /admin/* pages redirect unauthed users to /login or /account,
both of which then hit middleware redirecting to distribute.relevant
mediaproperties.com. Distribute is on a different domain, so its session
cookie doesn't carry to broadcastbeat.com — sign-in there left admins
stranded on distribute's dashboard.

Fix:
  - Remove /login (and /register) from middleware REDIRECT_PATHS. wp-login,
    wp-admin, client-login still bounce to distribute.
  - /login is now a real BB sign-in form (was a redirect to /client-login).
  - Admin pages preserve return path via /login?next=<encoded path>.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 14:28:29 +00:00
Ryan Salazar
0e733ca0f8 manufacturers: public directory with 1,142 NAB 2026 exhibitors
New public routes:
  /manufacturers           - searchable index, filter by show + first letter
  /manufacturers/[slug]    - profile page with bio, categories, trade shows, news, JSON-LD

Data sourced from bb.tracked_companies + bb.trade_show_exhibitors,
seeded from the NAB Show 2026 Map Your Show exhibitor list.

Adds schema extensions on bb.tracked_companies (slug, logo_url, bio,
contact, social handles, press_url, ad_status, exhibits_nab/ibc) and
bb.press_releases (manufacturer_id FK, source_url, published_at, status).

Each profile page emits Organization JSON-LD for SEO + canonical URL.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 14:18:16 +00:00
Ryan Salazar
107840c5f3 google news phase 1
- Homepage / Industry News query filters wp_imported_posts to
  ai_rewritten_at IS NOT NULL so raw press releases never surface on
  the editorial feed (NewsArticle JSON-LD was already in place).
- New /news-sitemap.xml route emits a Google News sitemap covering
  rewritten editorial published in the last 48 hours, with
  news:publication + news:publication_date + news:title + keywords.
- robots.ts now points crawlers at both sitemap.xml and
  news-sitemap.xml.

After deploy, submit broadcastbeat.com to Google News Publisher Center
to start serving in News.
2026-05-25 17:03:19 +00:00
Ryan Salazar
09fada759e ads: remove duplicate 728x90 from author page (Footer banner remains) 2026-05-25 16:58:57 +00:00
Ryan Salazar
78d992fda7 ads: server-side impression beacon in middleware (AdSanity parity)
Fires one impression per page render, per slot, server-side — mirrors
AdSanity's WP-level counting model. Picks one banner from each slot's
rotation pool per request. Edge-worker-cached pool refresh, 5min TTL.

Closes the structural gap with historical AdSanity numbers
(client-side counting was dropping 25-40% to ad blockers, plus the
beacon failed silently on fast navigations).
2026-05-24 23:26:02 +00:00
Ryan Salazar
88edf33155 ads: float SidebarAdStack at top of <main> on 7 more pages
gear, technology, search, reading-list, show-coverage, authors/[slug],
forum/thread/[id] all now render the 300x600 + 300x250 stack as a
floating right column at the top of the content area. Existing
single-column page structure preserved (content wraps).

Maximizes impression count: every pageview across these pages now
counts 300x600 + every 300x250 in the stack, on top of the existing
728x90 in Header.
2026-05-24 23:13:30 +00:00
Ryan Salazar
936f283b6d ads: drop IntersectionObserver gate — one mount = one impression 2026-05-24 21:57:59 +00:00
Ryan Salazar
c7e6079901 chore: remove FEATURED + INDUSTRY NEWS from main nav 2026-05-23 13:56:43 +00:00
Ryan Salazar
3a264e4773 fix: lift language dropdown above leaderboard banner (z-100) 2026-05-23 13:55:39 +00:00
Ryan Salazar
a597400e3f fix: language switcher defaults to EN, not browser locale 2026-05-23 06:33:42 +00:00
Ryan Salazar
bfd674f571 fix: breathe top-bar content away from container edges 2026-05-23 05:49:03 +00:00
Ryan Salazar
3d95ea63c5 revert: remove header neon rails
Pulls out the left/right vertical rails and the top horizontal
connector along with the supporting CSS.
2026-05-23 05:37:27 +00:00
Ryan Salazar
93dc131a02 fix: forum user lookup handles duplicate display names
When multiple profiles share a display_name (Michael Carter, Alex
Rivera, etc.), .maybeSingle() blew up with PGRST116, returning 404.
Switched to ordered limit(1) so the earliest-created profile wins
and the route resolves deterministically.
2026-05-23 04:16:53 +00:00
Ryan Salazar
ae96d71d9b chore: trim homepage Industry News topic chips
Removed IP Workflows, NAB 2026, EAS, Sports Broadcasting, Ad Tech
from the homepage filter row per Ryan. /news still carries the full set.
2026-05-23 01:30:20 +00:00
Ryan Salazar
998ff14b71 style: dial down header rails — 1px with subtle glow
User feedback: rails were too prominent. Reduced vertical + top rails
to 1px with 55% green and a 2px soft glow (was 2px solid + 8px glow).
2026-05-23 01:28:20 +00:00
Ryan Salazar
2b45112c21 feat: add top horizontal rail connecting header verticals
Adds a neon-green horizontal line across the very top of the site,
spanning from the left vertical rail to the right vertical rail, so
the header reads as a closed bracket instead of two floating lines.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 19:35:22 +00:00
Ryan Salazar
4528257842 fix: lift header rails above sticky sub-bars (z-60, 2px)
The sticky main nav at z-50 was painting its background over the
z-5 rails, so the line only showed on the top bar. Bumped rails to
z-60 (above the sticky stacking context) and widened to 2px with
stronger glow so the bracket reads continuously.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 15:06:43 +00:00
Ryan Salazar
a789ef86ab header: add two neon-green vertical rails at left/right edges of max-w-container, spanning top utility bar through browse bar (frames the whole header) 2026-05-22 13:19:34 +00:00
Ryan Salazar
6a1919a50c sidebar: right-align banner stack so 300px banners hug the column's right edge (matches content above/below) 2026-05-22 06:48:23 +00:00
Ryan Salazar
d3aa05e47e forum: align /forum hero (Crew Lounge) to max-w-container so left/right edges match content above/below 2026-05-22 06:42:49 +00:00
Ryan Salazar
1114bdbdf6 homepage: remove duplicate Topics chip row (kept only the always-visible labeled row) 2026-05-22 06:34:34 +00:00
Ryan Salazar
04efa3933a ads: switch to centralized RMP banner source; impression beacon → advertising.rmp; rearm viewport observer (12s debounce) for re-entry counting 2026-05-22 05:51:54 +00:00
Ryan Salazar
e5b09fe6d7 ui: solid Read More button + neon palette site-wide (not just homepage) so header/footer stays consistent on all pages 2026-05-22 05:40:54 +00:00
Ryan Salazar
d4016a3c91 ratings + typography + icons: StarRating ★★★★½ 4.7 (212) widget on cards + article headers; NYT/WaPo bb-article-prose body (Georgia 19/1.75, 720px col, drop cap, pull quotes, italic captions); bump homepage share icons to 32px/15px to match article page 2026-05-22 05:34:24 +00:00
Ryan Salazar
9342db7a16 ask-bb-ai: lower from bottom-24 (96px) to bottom-16 (64px) — was too high 2026-05-22 05:19:50 +00:00
Ryan Salazar
ede00da858 homepage feed: remove duplicate category+date in advanced panel (kept author/source only); article page: render SidebarAdStack instead of placeholder 2026-05-22 05:19:13 +00:00
Ryan Salazar
3ca38afebb homepage industry news: add LinkedIn/X/Facebook/Reddit/WhatsApp/Email share row under Read More on every article card 2026-05-22 05:17:19 +00:00
Ryan Salazar
ae6af2ca56 technology: dynamic header + filter for ?category=ai/cloud/ip-workflows/streaming/atsc-3; add sub-category chip row 2026-05-22 05:15:05 +00:00
Ryan Salazar
984ff5d4a9 homepage: add topic chips + date filters to Industry News section (matches /news page UX) 2026-05-22 05:13:27 +00:00
Ryan Salazar
07b0f387ed show-coverage: rename header 'Show coverage' → 'Industry Show Coverage' (h1 + title) 2026-05-22 05:10:21 +00:00
Ryan Salazar
bd34b0cb06 gear: rename 'Broadcast Gear & Reviews' → 'Production Gear & Reviews' (h1 + metadata) 2026-05-22 05:09:35 +00:00
Ryan Salazar
8a296edcbc buttons: invert neon-green CTA text to dark-gray (#1a1a1a) for readability; bump Ask BB AI above cookie bar (bottom-6→bottom-24) 2026-05-22 05:08:01 +00:00
Ryan Salazar
d674149486 layout: align top tagline bar + newsletter section to max-w-container featured-card edges 2026-05-22 05:04:14 +00:00
Ryan Salazar
06390db497 sitewide: rename THE LATEST → INDUSTRY NEWS; add social shares to /articles/<slug> template too 2026-05-22 05:02:59 +00:00
Ryan Salazar
66880b2d6e article: add LinkedIn, X, Facebook, Reddit, WhatsApp, Copy-Link share buttons next to email 2026-05-22 04:41:39 +00:00
Ryan Salazar
e95dea4ff3 ticker: slow 'THE LATEST' row 163→228s (+40%) 2026-05-22 04:15:33 +00:00
Ryan Salazar
9f23e9d753 docker: expose NEXT_PUBLIC_* build args as ENV so Next.js inlines them in client bundle (GA + Supabase + site URL) 2026-05-22 03:03:04 +00:00
Ryan Salazar
aac57bdc1b search: widen browse-bar search by 20% (320→384px) + placeholder "Search all content sitewide" 2026-05-22 02:48:58 +00:00
Ryan Salazar
fcb3a00104 ticker: rename bottom row label FORUM → RECENT FORUM POSTS 2026-05-22 02:47:57 +00:00
Ryan Salazar
ff9fe20d16 search: square the search box + suggest dropdown (border-radius 999px→2px) to match the rest of the site 2026-05-22 02:41:48 +00:00
Ryan Salazar
55baf7004f ticker: top 130→163s (+25%) / bottom 187→206s (+10%) 2026-05-22 02:37:22 +00:00
Ryan Salazar
c6bf372b50 header: align ticker + browse bar to featured card's visual edges (px-4 inside max-w-container) 2026-05-22 01:42:21 +00:00
Ryan Salazar
ca062eb4c8 team: pin Ryan Salazar first w/ FOUNDER / EDITOR-IN-CHIEF title 2026-05-22 01:38:57 +00:00
Ryan Salazar
836bd1de0e ticker: slow both rows by 30% (THE LATEST 100→130s, FORUM 144→187s) 2026-05-22 01:37:21 +00:00
Ryan Salazar
a92aa38b78 ticker: top row 50s→100s (50% slower) + rename BEAT→THE LATEST; bottom 120s→144s (20% slower) 2026-05-22 01:33:31 +00:00
Ryan Salazar
9da8122871 header: align About dropdown vertically + slow ticker scroll (BEAT 17→50s, FORUM 40→120s) 2026-05-22 01:29:00 +00:00
Ryan Salazar
d2ef1ba6c3 header: constrain ticker + browse bar to max-w-container (1200px) aligned with featured box 2026-05-22 01:23:55 +00:00
Ryan Salazar
e6eb3cc99c header+ticker: new menu (HOME/FEATURED/THE LATEST/SHOW COVERAGE/FORUM/ABOUT) + drop reduced-motion rule that was freezing ticker animation 2026-05-22 01:22:12 +00:00
Ryan Salazar
00a79f12b7 header: move browse bar (main menu) below the ticker 2026-05-22 01:16:17 +00:00
Ryan Salazar
7abd613113 header: move 728x90 banner inline between logo and right-side icons 2026-05-22 01:12:16 +00:00