
Who
I got tired of opening five tabs to see how the same North Carolina story landed in Charlotte, Raleigh, and the wire services. then pretending I had "read around."
Most "balanced news" products either editorialize or hide the sausage. I wanted a pipe: aggregate first, label leanings when we can prove them, compare coverage when the model earns the pixel.
The National NC is for NC locals and remote watchers who want AP, Reuters, and regional headlines in one dark UI, and for builders who will tolerate an honest placeholder where the AI comparison card still says "coming."
If you ship Next + Convex + Clerk and care about media literacy without a cable-news costume, this is for you.
What
Live at thenationalnc.com. Private repo HurleyUS/thenationalnc.com. Package 0.1.0, Bun, Next.js 16.2.6, React 19, Tailwind 4, Catppuccin Mocha by default.
Stack in the lockfile: Convex, Clerk, PostHog, Sentry, Resend, Radix, lucide, next-themes, Vitest. Payments README still says N/A; freemium (ad-free / advanced comparison) is in the opportunities doc, not a Stripe catalog.

What actually works today:
GET /api/newspulls Google News RSS. AP site query, Reuters site query, NCwhen:3d. parses items, filters with 30+ NC city/region/team keywords, dedupes by title similarity, caches 15 minutes in process memory.- Homepage embeds a LIVE feed with source tabs (All / AP / Reuters / NC News) and refresh.
/newsdefaults to Live; Editorial tab still serves eight demo NC articles with Left / Center / Right badges./news/[id]renders demo content + related sidebar + an AI comparison placeholder, not a live model call.- Convex
schema.tsdefines articles, sources, comparisons, categories (optional embeddings). Deployment not initialized; demo data still wins.
On 2026-09-08 the live API returned 50 NC-relevant headlines in one sample (WXII, Citizen Times, Carolina Journal, WRAL, ABC11, NYT, …). AP/Reuters tabs can show zero when those fetches abort. 8s timeout per feed, independent failure.

Where
Public product: www.thenationalnc.com. Vercel alias thenationalnc-com.vercel.app. Routes: /, /news, /news/[id], /about, /api/news. Robots allow site, disallow /api/. Sitemap is thin (homepage-weighted) as of last deploy.
Code stays private under HurleyUS. Host Vercel; Blacksmith/prebuilt CI path; vercel.json disables git auto-deploy on main and sets X-Robots-Tag: index, follow.
When
2026-01-08. Scaffold Next + Convex + Tailwind. PLAN and OPPORTUNITIES spell the bias-comparison dream before a single feed parses.
2026-02-06–08. Next 16.1.6, Tailwind v4 CSS import fix, wire dead homepage buttons, yank Clerk off the homepage when env keys are missing.
2026-02-13. The real jump: Catppuccin dark mode, shared layout, demo news + article pages, Convex schema, and live NC feeds through Google News RSS (44dfae3). That is when the site stopped being a brochure.
Late February. Clerk middleware, error boundaries, sitemap/robots, security headers, console to Sentry cleanup.
March. Vitest smoke coverage.
May. shipprep / Blacksmith CI standardization and deploy URL verification. lots of "Standardize Blacksmith CI gates," little product surface change.
2026-08-08. HEAD bfb6723. robots index/follow header on Vercel. Thirty-three commits on the clock.
Why
Bias detection without articles is a slide deck. I wanted the NC headline pipe in production first: cache, filters, source badges, dark UI. so when OpenRouter (or whatever) comparison lands, it has real URLs to argue about.
The gap is intentional and visible: leaning badges on demos, placeholder comparison card, Convex not live yet. Better than fake AI chrome.
When the comparison model finally ships, which NC story do you want side-by-side first: legislature, weather disaster, or Carolina basketball?
