# Pending — avbeat.com tonight's deferred work ## Featured-image backfill (P0-1, deferred) The clean placeholder at `/assets/images/article-placeholder.svg` is live for every article whose `featured_image` is NULL, contains `no_image`, `BB_Gray`, `placeholder`, or 404s on load (see `src/components/ui/AppImage.tsx`). That removes the bad UX immediately for ~518 articles. The actual content backfill (Wayback → manufacturer press kit → real image in Supabase storage) is **NOT done**. The smoke-test attempt `/tmp/bb-image-backfill.py` ran on coolify01: - Matrox+Amagi smoke article (`matrox-video-and-amagi-collaborate-...`): Wayback returned no archived snapshot of `https://www.avbeat.com//`, so the og:image extraction path didn't apply. Many of the broken-image articles are recent NAB 2026 posts that have never been crawled by Wayback. - Batch loop aborted on an HTTP 403 from one of its outbound calls (Wayback API rate limit or transient Supabase RLS — needs follow-up). **What needs to happen next session:** 1. For each broken article, try multiple sources in order: - Wayback Machine snapshot of `avbeat.com//` (skip if 404). - Manufacturer press-kit page based on title keywords (Matrox, Amagi, Telestream, Calrec, AJA, etc. — keep a per-vendor mapping of press kit URLs). - Generic image search via the vendor's news page. 2. Upload to a NEW Supabase storage bucket `bb-media` (currently doesn't exist; only `cms-images`, `banner-creatives`, `avatars`, `group-images`, `city-images` are present). Need to create with public-read. 3. Update `bb.wp_imported_posts.featured_image` with the public storage URL. 4. Smoke-test on the Matrox+Amagi article first per Ryan's instruction. ## Banner creatives (P0-2 follow-up) Adsanity iframe path removed. Banners pruned because they had no local image. Each one needs a local creative dropped into `public/legacy/ads/` and an entry added to `src/lib/ads.ts`: - AJA Video 300x250 - Zixi 300x250 - Lectrosonics 300x250 - Opengear 300x250 - Studio Hero 300x250 - Magewell 300x250 - Blackmagic 300x600 (was originally Adsanity `ad-210571`) ## Hardcoded article slugs (P0-4 follow-up) `/articles/[slug]` and `/news/[slug]` now redirect to `/news` for unknown slugs, so the dead links from `NewsTicker.tsx`, `FeaturedBento.tsx`, and `ArticleFeed.tsx` no longer 404 — they redirect to the news index. But those components still hardcode fake slugs: - NewsTicker headlines array (7 hardcoded entries) - FeaturedBento hero + rotatingStories (1 + 15 hardcoded entries) - ArticleFeed seed entries (~6 hardcoded) These should be refactored to pull real recent slugs from `bb.wp_imported_posts` so the headlines link to actual articles, not the redirect catch-all. Out of scope for tonight. ## SEO re-enable `src/app/layout.tsx` currently sets `robots: { index: false, follow: false }` sitewide. Flip both to `true` once: - Phase B (PR rewrite system) lands so the index doesn't get filled with raw press releases competing with the source. - Phase C (news sitemap at `/news/sitemap-news.xml`) lands. - Google Rich Results Test passes on a sample `/news/` URL.