delete sampleArticles seed; serve all sections from bb.wp_imported_posts (DB)

Eliminates 72 hardcoded rocket.new image refs in one shot. Section pages
(/gear, /technology, /show-coverage, /news) now render from
bb.wp_imported_posts via getLegacyArticlesBySection(section), which maps
each non-news section to a curated tag set (e.g. gear -> Audio, Cameras,
lighting, Blackmagic Design, monitoring; technology -> AI, Streaming,
OTT, IP, Cloud, AV; show-coverage -> NAB, IBC, BroadcastAsia).

Also:
- src/lib/articles/types.ts: Article interface lifted out of the deleted
  seed file. Type-only consumers (NewsArticleDetailClient,
  ArticleDetailClient, legacy-source) re-imported from here.
- /news (client component) now wrapped: server fetches articles from DB
  and passes to NewsPageClient. Filter UI unchanged.
- generateStaticParams on /news/[slug] and /articles/[slug] no longer
  references seed slugs; pre-renders 50 most-recent imported slugs and
  relies on dynamicParams + revalidate=3600 for the rest.
- sitemap.ts now sources article URLs from
  getLegacyRecentSitemapEntries() (up to 5000 most-recent imported posts).
  Default BASE_URL fallback updated from the rocket.new placeholder to
  bb-staging.onsethost.com.
- src/app/api/ai/article-suggestions/route.ts now pulls candidates from
  the DB (top 100 recent news) and resolves AI-returned slugs via DB
  lookup if not in the candidate window.

Inline rocket.new image refs in homepage components (ArticleFeed,
FeaturedBento) are unchanged in this commit; those are inline seed
arrays in the components, not imports of sampleArticles.
This commit is contained in:
Ryan Salazar
2026-05-08 14:31:25 +00:00
parent 08df1ad4c1
commit f1e1d5ea76
14 changed files with 483 additions and 1321 deletions

View File

@@ -4,7 +4,9 @@ import Link from "next/link";
import Header from "@/components/Header";
import Footer from "@/components/Footer";
import AppImage from "@/components/ui/AppImage";
import { getArticlesBySection } from "@/lib/articles/sampleArticles";
import { getLegacyArticlesBySection } from "@/lib/articles/legacy-source";
export const revalidate = 1800;
export const metadata: Metadata = {
title: "Broadcast Technology Deep Dives — BroadcastBeat",
@@ -20,8 +22,8 @@ export const metadata: Metadata = {
},
};
export default function TechnologyPage() {
const articles = getArticlesBySection("technology");
export default async function TechnologyPage() {
const articles = await getLegacyArticlesBySection("technology");
return (
<div className="min-h-screen bg-background">