From a240133ec753ab0074289cd3ca2462b8096f7486 Mon Sep 17 00:00:00 2001 From: "Ryan Salazar (via Claude)" Date: Fri, 15 May 2026 21:49:34 +0000 Subject: [PATCH] slice 1+2: header social URLs, drop TwitterX/Press Kit, wrap About/Team/PressKit, add /newsletter + /rss MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Header.tsx: bare linkedin/instagram/facebook URLs → /broadcastbeat handles; remove TwitterXIcon from social bar + import (Footer retains TwitterXIcon per "DO NOT OVERRIDE" marker) - AboutDropdown.tsx: drop "Press kit" item (the page itself stays at /about/press-kit, just delisted from menu) - SystemStatusBar.tsx: remove "Index online" pulse-dot and "N wire sources" span (keep articles count + events count + build version) - /about, /about/team, /about/press-kit: wrap in Header+Footer (previously rendered bare
) - /newsletter/page.tsx (new): redirect to /newsletter/archive — Header was 404'ing on /newsletter - /rss/route.ts (new): dynamic RSS feed reading from legacy-source news section; replaces 404 at /rss Co-Authored-By: Claude Opus 4.7 (1M context) --- src/app/about/page.tsx | 55 ++++++++++++++----------- src/app/about/press-kit/page.tsx | 61 +++++++++++++++------------ src/app/about/team/page.tsx | 66 ++++++++++++++++-------------- src/app/newsletter/page.tsx | 11 +++++ src/app/rss/route.ts | 60 +++++++++++++++++++++++++++ src/components/AboutDropdown.tsx | 1 - src/components/Header.tsx | 11 ++--- src/components/SystemStatusBar.tsx | 5 --- 8 files changed, 175 insertions(+), 95 deletions(-) create mode 100644 src/app/newsletter/page.tsx create mode 100644 src/app/rss/route.ts diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index 84d4e2a..988b1b8 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -1,3 +1,6 @@ +import Header from "@/components/Header"; +import Footer from "@/components/Footer"; + export const metadata = { title: "About BroadcastBeat", description: "BroadcastBeat is an independent industry publication covering broadcast, production, and post-production technology.", @@ -5,29 +8,33 @@ export const metadata = { export default function AboutPage() { return ( -
-

About BroadcastBeat

-
-

- BroadcastBeat is an independent trade publication covering broadcast, - live production, streaming, and post-production technology. We - report on the equipment, services, and people that move the - professional video industry forward. -

-

- We cover the major industry shows — NAB, IBC, BroadcastAsia, MPTS, - and others — track product launches and acquisitions, and publish - interviews with the engineers, post supervisors, and executives - building the next generation of workflows. -

-

- Editorial decisions are made independently of advertising. We do - not accept payment for editorial coverage. Vendor-supplied press - releases routed through our distribution platform are rewritten - by our staff or AI assistants according to our editorial style - guide; the original submission is preserved on file. -

-
-
+
+
+
+

About BroadcastBeat

+
+

+ BroadcastBeat is an independent trade publication covering broadcast, + live production, streaming, and post-production technology. We + report on the equipment, services, and people that move the + professional video industry forward. +

+

+ We cover the major industry shows — NAB, IBC, BroadcastAsia, MPTS, + and others — track product launches and acquisitions, and publish + interviews with the engineers, post supervisors, and executives + building the next generation of workflows. +

+

+ Editorial decisions are made independently of advertising. We do + not accept payment for editorial coverage. Vendor-supplied press + releases routed through our distribution platform are rewritten + by our staff or AI assistants according to our editorial style + guide; the original submission is preserved on file. +

+
+
+
+
); } diff --git a/src/app/about/press-kit/page.tsx b/src/app/about/press-kit/page.tsx index 8d480f2..5d46504 100644 --- a/src/app/about/press-kit/page.tsx +++ b/src/app/about/press-kit/page.tsx @@ -1,33 +1,40 @@ +import Header from "@/components/Header"; +import Footer from "@/components/Footer"; + export const metadata = { title: "Press kit — BroadcastBeat" }; export default function PressKitPage() { return ( -
-

Press kit

-
-
-

Logos

- -
-
-

Boilerplate

-

- BroadcastBeat is an independent trade publication covering broadcast, - live production, streaming, and post-production technology. Founded - to bring engineering-rigor reporting to industry coverage, BroadcastBeat - publishes daily on the equipment, services, and people that move - professional video forward. -

-
-
-

Media contact

-

- ryan.salazar@relevantmediaproperties.com -

-
-
-
+
+
+
+

Press kit

+
+
+

Logos

+ +
+
+

Boilerplate

+

+ BroadcastBeat is an independent trade publication covering broadcast, + live production, streaming, and post-production technology. Founded + to bring engineering-rigor reporting to industry coverage, BroadcastBeat + publishes daily on the equipment, services, and people that move + professional video forward. +

+
+
+

Media contact

+

+ ryan.salazar@relevantmediaproperties.com +

+
+
+
+
+
); } diff --git a/src/app/about/team/page.tsx b/src/app/about/team/page.tsx index 9732a47..05825e9 100644 --- a/src/app/about/team/page.tsx +++ b/src/app/about/team/page.tsx @@ -1,4 +1,6 @@ import { createClient } from "@supabase/supabase-js"; +import Header from "@/components/Header"; +import Footer from "@/components/Footer"; export const dynamic = "force-dynamic"; export const revalidate = 600; @@ -32,36 +34,40 @@ export default async function TeamPage() { const team = (data || []) as Persona[]; return ( -
-

Editorial team

-

- Staff journalists by beat. We are a mix of human reporters and trained - AI personas operating under house style. -

-
    - {team.map((p) => ( -
  • - {p.avatar_url && ( - {p.name} - )} -
    -

    {p.name}

    - {p.beat && ( -
    - {p.beat.replace(/-/g, " ")} -
    +
    +
    +
    +

    Editorial team

    +

    + Staff journalists by beat. We are a mix of human reporters and trained + AI personas operating under house style. +

    +
      + {team.map((p) => ( +
    • + {p.avatar_url && ( + {p.name} )} - {p.bio &&

      {p.bio}

      } -
    -
  • - ))} -
-
+
+

{p.name}

+ {p.beat && ( +
+ {p.beat.replace(/-/g, " ")} +
+ )} + {p.bio &&

{p.bio}

} +
+ + ))} + +
+