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.
A CMS owns your pages. A content lake owns your content and has no opinion about your pages, which sounds like a small distinction until the second frontend arrives — a mobile app, a partner feed, a support site — and the page template turns out to have been the thing in the way.
Pages are a view, not a format
The old arrangement stores a page: a headline, three columns, and the order they appear in. The new one stores a story, and lets each surface decide what a story looks like. The same document becomes a landing-page headline, a push notification and a line in a weekly digest, and none of those needed a second copy of the text.
The cost is real. Somebody has to model, and modelling is a skill that building page templates did not require. The return is that the fourth surface is a query rather than a migration.
The second frontend is where a page-shaped CMS stops being cheap.
What a lake has to get right
- One document, one id, one history — everywhere it appears.
- References rather than copies, so a rename happens once.
- A query language, so a new surface does not need a new endpoint and a deploy.
- Assets addressed by content URL rather than by path, so reorganising the library breaks nothing.
Get those four right and the fifth surface is an afternoon. Get them wrong and you have built a CMS with a database you cannot leave — which is the expensive version of the same product.
*[_type in ["post", "page"] && defined(slug)] | order(_updatedAt desc) { _type, title, "author": author->name }
One query, two kinds of page, and a shape that a blog index and a docs sidebar can both read. That is the whole promise, and it is worth checking against your own model before you commit to one.
Maya Chen
Head of content operations
Maya ran content operations for a publisher with eleven mastheads before joining Achar. She spends most of her time on the unglamorous half of content: naming things consistently, retiring things on purpose, and making sure the person who wrote a headline can still find it a year later.
Related posts
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.
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.
