Content Machine
One blog article becomes thirty days of social media, with an approval step in between.
- In development
- Rails 8.1, PostgreSQL, GoodJob, ruby_llm, Vertex AI, React 19, TypeScript, Postiz
The problem
A good technical article costs days. Afterwards it is shared once and disappears. The work of turning it into posts over weeks is done by nobody, because it is dull and demands care anyway. Hand it to a language model and you get text that is too long, misses the brand and delivers the same thought twice.
How it solves it
Content Machine ingests long-form posts as Markdown from a Git repository. Gemini on Vertex AI extracts the angles, after which short variants are generated per platform and per voice profile. Everything passes an approval queue before it goes anywhere. Approved variants move into a thirty-day rotation and are published through a self-hosted Postiz instance.
What it does
Schema validation on every model call. Every call carries a RubyLLM::Schema that is
re-validated server-side. If the response violates a condition, the call fails before anything is
stored. Broken answers never reach the database in the first place.
Prompt and configuration are separate. Character counts, hashtag budgets and emoji rules live
per platform in config/prompts/platform_constraints.yml, not in the prompt. An A/B test
therefore needs no prompt rewrite.
Voice profiles with provenance. The runtime profile holds identity, writing decisions, characteristic turns of phrase and failure modes. The full author research behind it stays on record as provenance and is never sent to the model.
Outbound effects fail closed. Model calls, Postiz publications and mail hang off a switch that
only production sets to the string "true". The application boots and runs its entire test suite
without a single credential file; Postiz then answers from fixtures.
Rotation with a repeat window. Fourteen days by default, during which the same angle does not come up again. The publication journal records when Postiz actually sent, not when somebody clicked approve.
What it does not do
It publishes nothing without human approval. The queue is not a convenience, it is where the brand gets defended.
It runs as an internal production system for ourselves today. There are no external users, and there is no reach figure we could claim.
It does not write long-form articles. At the start of the line stands a finished text written by a person.
Content Machine
Join the waiting list
Tell us what you would use it for. We will get in touch as soon as Content Machine is ready for you.
Join the waiting list