FSA-006 · Zero-Cost Content Automation

Autoblog Pipeline: a fully automated content system that runs for $0 a month

Six independent source fetchers feed a composite scoring and dedup pass, an LLM generation step with schema-validated MDX output, and a GitHub-commit deploy to Cloudflare Pages — end to end, unattended, at zero recurring cost.

Stack
Next.js · TinaCMS · Groq
Sources
Reddit · HN · DEV · RSS · YT · Brave
Cost
$0/month to run
Status
Production pipeline

Autoblog Pipeline is a fully automated publishing system: it fetches candidate topics from six independent sources, scores and dedupes them against what's already been published, generates the post with an LLM, validates the output against a schema before it's allowed anywhere near a deploy, and then commits and ships it to Cloudflare Pages — all without a human in the loop, and all for $0 a month in recurring infrastructure cost.

The problem

Keeping a content site or blog fed with timely, relevant posts is a recurring tax most solo builders can't sustain alongside actually building product. Writing takes time; researching what's even worth writing about takes more. The obvious fix — "just automate it with an LLM" — runs into two failure modes in practice. Most "AI blog automation" tools either cost real money per post (API calls, hosted SaaS fees, both), which makes them a bad fit for a tool meant to run indefinitely in the background, or they produce generic filler content nobody would actually want to publish under their own name, because the topic selection was never grounded in anything timely or relevant to begin with.

Neither failure mode is really about the LLM. They're about everything around it: where topics come from, whether they're worth writing about, and whether the output can be trusted to reach production without someone checking it first.

The approach

Autoblog Pipeline treats topic sourcing as the first problem to solve, not an afterthought. It fetches candidate topics from six independent sources — Reddit, Hacker News, DEV, RSS feeds, YouTube, and Brave search — specifically to avoid single-source bias. A pipeline that only watched Hacker News would only ever write Hacker-News-shaped posts; pulling from six differently-biased sources produces a broader, more representative candidate pool.

Every candidate then runs through a composite scoring pass that ranks it on relevance and timeliness, and a dedup step that checks it against topics already covered so the pipeline doesn't quietly repeat itself. Only candidates that clear both bars move forward to generation.

Generation itself is handled by an LLM (Groq), but the output isn't trusted just because a model produced it. Every generated post is schema-validated as MDX before it's allowed to publish — malformed output gets rejected rather than shipped broken. Posts that pass validation deploy through a GitHub-commit flow straight to Cloudflare Pages. TinaCMS sits on top of all of it as a real editorial interface, so a human can review or edit any post before or after it goes live — this is a pipeline with a window into it, not a black box that just fires content at production.

Architecture

The pipeline is a straight line with a hard gate in the middle: fetch → score/dedup → generate → validate → commit/deploy. Each stage only hands work to the next stage once it has cleared that stage's bar — a low-scoring or duplicate candidate never reaches the LLM, and LLM output that fails schema validation never reaches Cloudflare.

Design principle: the $0/month constraint wasn't an accident, it was a requirement from day one. Cloudflare Pages hosting, Groq's low-cost inference tier, and GitHub Actions for the commit-deploy step were each chosen specifically to keep recurring cost at zero — because a tool meant to run unattended indefinitely can't depend on someone remembering to keep paying for it.

That constraint shaped real decisions, not just vendor selection. It's why validation happens before the commit step instead of after — a failed deploy costs nothing extra to detect early, but a broken production site costs actual attention to fix. Keeping the pipeline free to run is also what keeps it honest: there's no revenue pressure pushing it to publish more, lower-quality posts just to justify a subscription.

Results

The pipeline has been running in production, sourcing, generating, validating, and deploying posts without manual intervention beyond the optional TinaCMS review pass.

6
Independent source fetchers
$0
Monthly cost to run
5
Pipeline stages, fetch to deploy
100%
Deploys gated on schema validation
Pipeline stages — fetch to deploy
Fetch Score / Dedup Generate Validate Deploy 1 2 3 4 5
Each stage gates the next — a candidate or draft that fails a stage never reaches the one after it.

The composite scoring and dedup stage is doing more work than its single box suggests: it's the reason the pipeline can pull from six noisy, differently-biased sources and still land on candidates worth writing about, rather than drowning in duplicate or low-signal topics.

The pipeline, live

The clearest proof that the pipeline works is that it's been running — quietly filling a network of live sites across completely different verticals from the same engine. These are all public and current; each is the same fetch → score → generate → validate → deploy loop pointed at a different topic:

One engine, six verticals, no per-post cost and no per-post human — the same pipeline retargeted by changing its sources and topic configuration. That's the real deliverable: not any single site, but a repeatable content operation that keeps running on its own.

Lessons learned

The most important lesson had nothing to do with prompting the LLM better. It was that LLM output that's 95% correct MDX still breaks a static site build. A stray unclosed tag, a malformed frontmatter field, an escaped character in the wrong place — any of it fails silently at generation time and loudly at build time, usually well after anyone would think to check. Validating the output against a schema and rejecting anything that doesn't pass, before it ever reaches the commit step, was the single change that made "fully automated" actually mean unattended — instead of "automated until it silently breaks the site," which is a much worse thing to discover than a normal bug, because by the time you notice, the site has already been down.

Contact

Interested in licensing or acquiring Autoblog Pipeline?

The full pipeline source and deploy configuration are available for technical review.