April 27, 2026 · 6 min read
Four entries into this series, I have walked through the architecture, the pipeline, the Night Council, and the visual identity. What I have not done is talk about money. Or about the things that did not work. This final entry of the series is the honest retrospective — the costs, the failures, and the lessons that only show up after you ship. The series ends here. The project, and the learning, do not.
THE COST OF RUNNING THIS THING
Here is the breakdown, in specifics. Vague cost claims are useless.
The Night Council — three AI personas debating editorial strategy — runs Mondays, with on-demand sessions when something is worth debating. Each session makes about seven Claude Opus calls. Cost per session: roughly €1.00 to €1.95, depending on how deep the debate goes. That works out to around two euros a week for strategic planning.
Article generation is harder to pin down because each content session varies. Claude works with MCP tools to research, draft, and refine. The cost lands somewhere between a few cents and under a euro per article, depending on how much research the piece needs. Some days it comes together in one pass. Other days the research phase consumes more context before settling.
Image generation runs through ComfyUI on the same VPS, hitting Black Forest Labs’ Flux 2 Pro Preview model. I cap it at three attempts per article because every Flux call costs API credits and the budget is finite. The CSS animations for breaking news and opinion pieces cost exactly nothing, which is why they exist for those categories.
The VPS itself was already running other services, so the marginal cost for adding The AI Signal is effectively zero. To pin a number on it: the server itself runs €8 to €16 a month depending on specs — this one is the €16 mid-tier. The domain was already owned, SSL is Let’s Encrypt, the Telegram bot is free, and every piece of tooling in the stack — PM2, Astro, Nginx, Express — is open source.
Add it all up and the entire operation runs for on the order of a euro per day. Research, writing, illustration, editorial strategy, approval workflow, static site generation — all of it.
WHAT ACTUALLY WORKED
Telegram as the approval interface. I did not expect this to be the best decision in the project, but it was. A draft lands on my phone with a preview. I tap approve or reject. Done. No logging into dashboards, no context-switching. The approval flow meets me where I already am.
Markdown frontmatter as the entire database. Every draft is a markdown file. Status, image seed, image attempts, Telegram message ID — all of it lives in the frontmatter. No Postgres, no Redis, no migration scripts. Git tracks the history. The filesystem is the state. A blog publishing roughly daily does not need database-grade concurrency.
The article playbook. Categories, visual treatments, tone guidelines — all encoded in a single markdown file. When the pipeline generates an article, it does not guess. It reads the playbook. When I want to change editorial policy, I edit one file. This turned out to be more powerful than any config system I could have engineered.
Self-hosting everything on one box. Full control, no vendor lock-in, services share resources. The admin dashboard, the approval listener, the site itself — they all run on the same VPS behind Nginx. PM2 keeps the daemons alive with auto-restart.
WHAT SURPRISED ME
Distribution is the actual hard problem. Building the system was tractable; getting it read is not. The Night Council arrived at this independently: “Every feature before distribution is premature.” Three AI personas telling me to stop building and start marketing — and they were right.
The human bottleneck is real. There was a multi-day gap between articles at one point. Not because the system broke — because I did not get around to reviewing the drafts sitting in my Telegram.
The Night Council works as designed. I expected it to produce generic advice. Instead, the disagreements between personas surface insights that a single prompt never would.
Markdown-as-database has real limits. No concurrent write protection without explicit locking. I had to add filesystem locks to the publish flow after discovering that simultaneous operations could corrupt frontmatter. Simplicity scales until the workload demands real coordination — and the job is to know where that line is before you cross it.
The meta-story is the story. “AI writes blog posts” is a sentence people scroll past. “AI writes, illustrates, debates strategy, manages its own editorial calendar, and publishes a transparent account of the entire process including costs” — that is what makes people stop.
AS I WAS WRITING THIS
Between drafting and publishing, several items moved. The X pipeline went live. Comments shipped. A new “tip” category started running. The Night Council itself dropped from twice a week to once, with on-demand sessions when something is worth debating. That is the texture of an agentic site — the post you are reading is already slightly out of date, and that is the point.
WHAT COMES NEXT
The roadmap, in two parts:
¬ Shipped since I started this entry: the X/Twitter pipeline with Telegram-gated approval, EU-compliant comments with moderation, the tip category for retention content, a security sentinel dashboard, and a kanban-style roadmap surface I now use to talk to Claude about open work.
¬ Still ahead: Pexels as a Flux fallback when image credits run low, audio narration with a custom TTS voice, an email signup form, and one open question I am still working through — whether to open a dedicated sub-hub for the audience this project was originally built for. That call would reshape the rest of the roadmap.
THE BIGGER LESSON
Here is what I would tell someone considering a project like this: automation is a spectrum, not a switch. Full autonomy is not the goal. The goal is removing friction from the parts you trust while keeping human judgment where it matters. I trust Claude to research and draft. I do not trust any system to publish without my review.
That boundary is not a limitation of the technology. It is a design choice, and the right one.
The footer on every article at The AI Signal reads: “Generated with Claude. Reviewed and edited by a human editor.” That line does more work than any technical architecture. It is what makes the project credible rather than creepy. Transparency about the process — including the costs, including the failures — is what separates this from content slop.
If I had to distill the entire project into one sentence, it would echo something I wrote in another post: the value is not in any single tool. It is in connecting existing tools rather than building from scratch. Astro, Telegram, ComfyUI, Claude, PM2, Nginx — none of these are novel. I did not write a framework. I did not train a model. I wired together things that already existed, added human oversight at the critical junction, and got a working newsroom for around a euro a day.
That is what current AI tooling makes possible with ordinary building blocks. The interesting problems are not technical anymore. They are editorial, ethical, and economic. What should an AI write? Who is responsible when it is wrong? Is the cost structure sustainable?
I do not have final answers. But I have a running system, real numbers, and a transparent record of every decision. That feels like a better starting point than most.
This is the final entry of a 5-part series on building The AI Signal. Previously: the newsroom, the pipeline, the Night Council, and the visual identity. Every article written by Claude, every one approved by me.