An AI news blog that fills itself. It watches information feeds, picks its
topics, writes the articles, translates them, produces the artwork,
publishes, sends the newsletter and posts to X. None of these steps needs
a human.
Holding a publishing rhythm over months costs more than writing the
articles does.
Producing one article with a language model is within anyone's reach.
Keeping it up for six months is a different job, because the whole chain
runs again every day: find a topic worth an article, check that it hasn't
already been covered, write something that gives the reader more than a
summary, produce an illustration, publish, notify subscribers, distribute.
Taken one at a time, each step is simple. The difficulty comes from
running them together every day: if one of them fails and nobody sees it,
that day's article never goes out, and neither do the ones after it.
02
What I built
Nine chained automations, and a monitoring setup that checks they are
still running.
The publishing chain
A first automation queries AI news feeds grouped by region (United States,
United Kingdom, France, international sources) and fills a topic queue.
Every topic gets a score. The queue is stored, so a topic that has already
been covered never comes back into the selection.
A second automation draws from that queue while balancing the
regions, so no single one takes over the schedule, then generates the
article under constraints: minimum and maximum length, required analysis
sections, an obligation to cross several sources. Without those
constraints the text stays generic and the reader learns nothing from it.
Every English article triggers the generation of its French
counterpart, written for its own readership, with its own metadata and
its own route.
Distribution
Once the article is published, other automations take over: generating and
sending the newsletter, posting to X on three separate tracks (content,
engagement, weekly thread), producing the cover artwork.
Monitoring
A health check runs on a schedule and verifies that the chain is producing
what it is supposed to produce. An alerting automation fires as soon as a
step fails.
This is the part that matters most over time. An automated chain that
breaks makes no noise, and without an alert the outage can go unnoticed
for weeks.
03
What was hard
Preventing repetition
Left to itself, a generator rewrites the same article several times under
different headlines. The topic queue, scored and stored, works as memory:
it keeps a record of what has already been published. That memory lives in
the repository, so it survives every run, unlike the model's context.
Reaching length without padding
Asking for "a 1,200 word article" gets you 1,200 words of
padding. So the instruction targets structure instead: required
analysis sections, several sources crossed against each other. The article
reaches its length because it has material to work through.
Bilingual as a design constraint
French was planned from day one: mirrored routes, localised metadata, a
separate RSS feed, a sitemap covering both languages. Adding a second
language later would have meant reworking the routing and the whole SEO
setup. In a bilingual market like Canada, that is an architecture
decision, taken before the first line of code.
Running without intervention
The goal was for the chain to keep running for weeks without anyone
touching it. When an API key is missing, generation falls back to a
template instead of failing. Failures are detected and raised by alert,
which means stepping in only when it is actually needed.
04
And why it concerns you
The subject matter of the blog is a configuration parameter.
The engine knows nothing about artificial intelligence. It knows how to
read feeds, score topics, write under constraint, translate, illustrate,
publish, distribute and monitor itself. Change the sources and the
editorial framing, and the same engine runs a blog on real estate,
logistics, employment law or nutrition.
AI Signals is the demonstration. What I deliver to a client is that engine
adapted to their subject: their sources, their editorial line, their
languages, and the monitoring that goes with it.
In practice
Standing up the base chain is short work. What follows is editorial
tuning over the first few weeks, and it affects article quality far more
than the code does. I hand over the repository, the automations and the
documentation, so the blog belongs to you and runs on your own accounts.
05
The stack
SiteNext.js, articles in Markdown, remark/rehype pipeline, reading time, table of contents, related articles
GenerationOpenAI, length and structure constraints, fallback to a template when the key is missing
SourcesMulti-country RSS aggregation, scored and stored topic queue
OrchestrationGitHub Actions, nine scheduled automations, publishing by commit
DistributionNewsletter through Resend, posting to X through the official API
MediaCover artwork generated and stored on Vercel Blob
SEOEnglish and French RSS feeds, sitemap, tag and region pages, localised metadata
SupervisionScheduled health check and automatic alert on failure
Same engine, your subject?
Tell me the topic and the publishing pace you're aiming for. In thirty
minutes I'll tell you whether the idea holds up and what it takes.