Building a Blog That Publishes Itself
The architecture behind The Dog Habit: a pipeline that researches, writes, illustrates and posts on a schedule, with nobody opening an editor to keep it going.
The Dog Habit is a real publication — training guides, behaviour explainers, gear roundups — that writes and illustrates itself on a fixed schedule and has done so without a missed day since it launched. Nobody drafts a post. Nobody picks an image. The only thing a person still does is decide, occasionally, what the site should cover next.
Four stages, each one inspectable on its own
- Research and drafting — a topic queue feeds a generation step that produces a title, the article body, an excerpt and metadata as one structured result, not a wall of text to be parsed after the fact
- Imagery — a stock-photo search scoped to the topic, not a single generic query reused for every post; a launch bug that used one static query for anything untagged is its own lesson, and a separate post
- Publishing — posted through the CMS's own REST API with the real, final publish status, so what a visitor sees is exactly what the pipeline produced, not a draft waiting on a human step that was quietly dropped
- Distribution — the same finished post triggers a short-form video render and a queued social post, so one piece of source material becomes three, without three separate manual jobs
The part that actually took the time
Generating a plausible blog post is the easy 80%. The other 20% — the part that makes it safe to run completely unattended — is deciding what happens when any one of those four stages fails partway through.
- A duplicate topic must exit cleanly without leaving a half-written post behind
- An image provider having a bad day must not block publishing — a fallback exists, and is logged loudly enough to be noticed and fixed
- A failed run must alert a person, not fail silently into a gap in the schedule that nobody notices until a week of posts is missing
The proof that content automation survives contact with reality is not the first successful post. It is the one where a step failed at 3 a.m. and the site published on schedule anyway.
None of this needs to be exotic. It needs every stage to fail loudly and specifically instead of quietly and generically — which is a design discipline, not a bigger model.
This came out of building The Dog Habit — Read the case study ↗
Have something like this to fix?
Describe the problem and we will tell you what it takes.
Get in touchAll posts