Blog
Notes from people who spend their week on content models.
10 posts, written as copy rather than as filler, because the layout problems worth finding are the ones a long headline or a code block finds.
Your content model is the product decision
Every content system fails the same way: a field that grew a second meaning, and a template that reads it both ways. The model is the one thing you will still be living with in three years.
Content operations
The work around the work: naming, roles, review, and the workflow that decides whether a team of twelve can ship on a Thursday.
A content lake is not a CMS
A CMS owns your pages. A lake owns your content and has no opinion about your pages, which sounds like a small distinction until the second frontend arrives.
Draft, publish, and the two-row trick
Achar stores a draft as a second document whose id begins `drafts.` rather than a flag on one row. It looks like duplication, and it is the reason a headline can be rewritten for a week without touching what the site serves.
Designing a schema editors can actually use
A schema is a design document that happens to be executable. Every decision in it is a decision about what somebody sees first, what they can skip, and which mistake they will make.
An editorial workflow that survives a Tuesday
Most workflows are described in a document nobody reads and enforced by a person who is on holiday. The one that survives is the one the tool refuses to let you skip.
Where AI actually helps a content team
The interesting thing is not that a model can write a paragraph. It is that a schema tells the model what a complete document looks like, which is the part every general assistant has to guess at.
Engineering
Queries, schemas, caching and migrations — the parts of a content system that are somebody's code rather than somebody's copy.
GROQ in twenty minutes
There is no join, because there is no second table. A query says which documents and then what to return, and everything that looks like syntax is one of those two halves made more specific.
Draft, publish, and the two-row trick
Achar stores a draft as a second document whose id begins `drafts.` rather than a flag on one row. It looks like duplication, and it is the reason a headline can be rewritten for a week without touching what the site serves.
Portable Text, and why rich text should be data
Rich text stored as HTML is a string with structure in it that only a browser can read. Stored as an array of blocks it is data: queryable, transformable, and renderable by something that is not a browser.
Modelling references without modelling yourself into a corner
Copying an author's name into every post they wrote is the fastest thing to build and the slowest thing to fix. A reference writes it once, and the cost is one extra step on every read.
Webhooks, cache purges, and the five minutes after publish
Publishing is only half a write. The other half is everything that cached the old version, and a webhook is how all of it finds out at once.
Design systems
Editors and components, portable text and typography: how the shape of a document becomes the shape of a page.
Designing a schema editors can actually use
A schema is a design document that happens to be executable. Every decision in it is a decision about what somebody sees first, what they can skip, and which mistake they will make.
Portable Text, and why rich text should be data
Rich text stored as HTML is a string with structure in it that only a browser can read. Stored as an array of blocks it is data: queryable, transformable, and renderable by something that is not a browser.
AI
What a model can usefully do with content that already has a schema — and the places it should keep its hands off.
Where AI actually helps a content team
The interesting thing is not that a model can write a paragraph. It is that a schema tells the model what a complete document looks like, which is the part every general assistant has to guess at.
Your content already wants to be structured.
Make a project, define a type, publish a document. The first three things you need are free, and the query you write for them is the same query you will be writing in three years.
