Skip to content

Product

In development

Content Machine

One blog article becomes thirty days of social media, with an approval step in between.

Status
In development
Technology
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