December was intense. I essentially rebuilt the entire product in three weeks.
Transcription & Railway Migration (Dec 9-15)
The first big move was adding video transcription. The app needed to actually read these videos before it could write about them. Hooked up a transcription service, added summaries and key learnings extraction.
Then I hit Vercel's limits. Background jobs don't really work on serverless. I needed something that could run persistent workers, so I migrated everything to Railway with Docker containers. Separate web service, separate worker process.
This migration wasn't trivial. Database connection exhaustion, healthcheck servers for Railway's monitoring, Node 22 for pg-boss compatibility. But pg-boss gave me proper background job processing — scheduled tasks, retries, the whole deal.
The Distribution System (Dec 16-19)
This is where BuzzRAG stopped being a feed reader and became a news platform.
I built the full article distribution pipeline in a few days:
- Video → Transcription — automatic processing
- Queue → Configure — pick a persona, set the editorial angle
- Generate → Review — AI writes, human approves
- Publish — goes live on the public site
The key insight was personas. Instead of one generic AI voice, BuzzRAG has multiple AI writers with distinct personalities, expertise areas, and writing styles. Each persona has a backstory, a demographic target, a tone. Kate Brennan writes investigative pieces. Nadia Marchetti covers startup culture. The articles feel genuinely different depending on who "writes" them.
Other things that landed in this sprint:
- Dark mode
- YouTube API quota management (their API is expensive quota-wise)
- Social share buttons
- Categories system
- Channel profiles for editorial context
- Multi-provider AI support (OpenAI, Anthropic, etc.) with token tracking
Public Launch Week (Dec 20-29)
With the pipeline working, I turned to the public-facing site.
- Moved articles to /article/{slug} for cleaner URLs
- Added an About page and AI Writers page with full disclosure
- Newsletter subscription with double opt-in
- OpenGraph meta tags for social sharing
- Dynamic sitemap for SEO
- Plausible Analytics (privacy-first)
- Privacy policy
- RSS-based video discovery — this cut YouTube API quota usage by 90%
- URL shortener with click tracking
The biggest architectural change was restructuring into an npm workspace monorepo. The web app and worker were getting tangled, and Railway needed cleaner separation. Wrestling with Docker builds and Turbopack configs ate a full day.
Branding Churn
I went through three naming iterations for the AI writers in one week:
- "AI Persona" → "Bot Writer" → "AI Writer"
The "Bot Writer" rebrand lasted exactly two days before I decided it sounded too robotic. Sometimes you have to try the wrong thing to know what's right.
The Numbers
December commits: ~120. Roughly one every 3 hours for three weeks straight.
By December 31st, BuzzRAG was a functioning AI news site with:
- Automated video discovery via RSS
- Background transcription processing
- AI article generation with multiple personas
- Human review workflow
- Public news site with categories
- Newsletter system
- Analytics
- Tweet automation (draft → review → schedule → post)
Not bad for three weeks.