Content Studio
The engine that publishes this blog
Content Studio finds source material, checks it, rewrites it in our voice, and puts every social post in front of a human in Telegram before it goes anywhere.
Open the live demo- Sources from RSS, news APIs, URLs or plain text
- Eight validation checks before a token is spent
- Approve or reject each post from Telegram
- Branded image cards rendered per post
- Publishes the blog straight into the site repo
Consistency is the problem, not ideas
Most teams do not run out of things to say. They run out of the particular Tuesday afternoon it takes to write them down, and two good months of publishing turn into a silent quarter. The blog you are reading is the thing we built so that stopped happening to us.
The interesting part is not the writing. It is everything around it: deciding a source is worth using, catching a draft that repeats an argument already made, and making sure nothing reaches a public account without someone tapping approve first.
What you can try
What the studio actually does
The demo runs on seeded data, so you can move through the whole pipeline without anything being published. The panel is the same one we use.
-
Pull from real sources
RSS feeds, news APIs, a single URL, or text pasted in. Sources group into topics, each with its own schedule and its own rules.
-
Reject before spending
Eight checks run before any rewriting: freshness, length, language, blocked domains, duplicates, then an AI pass scoring relevance and quality.
-
Filter by what it is
Each article is classified as news, tutorial, explainer, comparison or opinion, and first-person experience pieces are refused rather than rewritten under a company byline.
-
Rewrite in a set voice
A brief step fixes the angle and the target search query first, then the draft is written, humanised, and linted against phrases that give machine writing away.
-
Catch repeated arguments
A judge compares each draft against recent posts and asks whether it makes the same point, not just whether it covers the same event, then regenerates on a clash.
-
Approve from Telegram
Every social post arrives with its image card and full text, with approve, reject and regenerate buttons. Nothing posts without a tap unless you turn that gate off.
-
Render branded cards
Each post gets a poster image built from the brand's own fonts and logo, sized per network — the same renderer that produced the hero images on this blog.
-
Publish to the site
Approved posts are committed into the website repository as Markdown with the frontmatter the site's schema expects, so publishing is a normal deploy.
-
Watch what happened
Reach and engagement are sampled per post over time and compared against the account's own trailing median, because a platform will not tell you when it has throttled you.
What it changes
What running it actually gives you
This is our own system rather than a client build, so the following is what it does for us — and what an equivalent would be built to do for you.
- A KEPT SCHEDULE
- Publishing that does not stall
- The queue is prepared ahead of time and released on a schedule, so a busy fortnight no longer shows up as a gap in the blog three weeks later.
- ONE DECISION
- Approve, reject, regenerate
- The work reduces to reading a draft on your phone and tapping one of three buttons. Everything before that point is the machine's job, and everything after it is automatic.
- A CONSISTENT VOICE
- Rules that hold across every post
- Banned phrases, structure rotation and length limits are configuration rather than something each writer has to remember, which is what keeps a hundred posts sounding like one publication.
- AN AUDIT TRAIL
- Every step of every post recorded
- Which source it came from, which checks it passed, what the AI was asked, and who approved it. Useful when something reads oddly and you need to find out where it went wrong.
How one gets built
What building your version looks like
We would not start by building all of this. The version worth having is the one that removes your specific bottleneck, and that is usually a much smaller system.
-
Find the bottleneck
1 weekWe work out where your publishing actually stalls. It is rarely the writing — more often approvals, sourcing, or nobody owning the calendar.
-
Automate one path
3–5 weeksOne source through to one channel, with the approval step in whatever tool your team already has open. Narrow on purpose, so it is in use quickly.
-
Add the guardrails
2–4 weeksValidation, duplicate checks and the voice rules, tuned against your real output rather than a generic template.
-
Widen it
OngoingMore channels and sources once the first path is trusted. Some teams stop after step two, which is a reasonable place to stop.
Would something like this help you?
Worth reading before you get in touch — it saves both of us a call.
A good fit if…
- You publish regularly and it keeps slipping when work gets busy
- Several people touch a post before it goes out
- You want a human approving anything public, from their phone
- The same content needs reshaping for several channels
Probably not, if…
- You publish rarely and a calendar reminder would fix it
- You want volume regardless of quality — that is not what this does
- The need is a chatbot answering customers — see AI Agents
- You have no source material and no one to review drafts
Frequently Asked
Questions
Common questions about how it works and what an equivalent build involves.
No, and that distinction is most of the work. Generating text is the easy part. Studio spends far more effort on the steps around it: checking a source article is recent, in the right language, long enough and not something already covered; scoring it for relevance before spending a token on rewriting it; then linting the finished draft against a list of phrases that give machine writing away. Anything going to a social channel waits for a human to approve it in Telegram. The pipeline is designed so the boring checks are the part you cannot skip.
Two different checks, because there are two different kinds of repeat. A processed-article record stops the same source URL being picked up again, which handles feeds that republish. Separately, an AI judge compares a new draft against what has already gone out and asks whether it makes the same argument, not merely whether it covers the same event. That second check exists because the first one misses the case that actually looks bad: two posts, different sources, different wording, identical point.
A deterministic lint pass plus a rotation of post structures. The lint holds a list of banned phrases and patterns that is editable at runtime rather than baked into the code, because the tells change every few months as models change. The structure rotation matters more: an early version produced posts that were all the same shape, and varying the subject did not fix it because the shape was the fingerprint. Studio now picks a structure that has not been used recently and writes to that instead.
You do, from Telegram. A draft arrives with its image card and the full text, and you tap approve, reject or regenerate. Blogs can be set to publish automatically or to wait for the same approval, and there is a sweep that publishes anything still unapproved after a day so a missed notification does not silently stall the schedule. Nothing reaches a social account without a human tap unless you explicitly turn that gate off, and the posting crons only run on an instance marked as production.
Yes, and the honest version of that answer is that most of the value is not the writing. It is the source handling, the validation rules, the approval flow, and the scheduling — the parts specific to how your team already works. We would usually start by finding the one publishing task that eats the most time and automating that end to end, rather than building the whole pipeline at once. That is the AI Automation and AI Agents work, and it is scoped like any other build.