Content Management Moves Into the Component Layer

When the data that populates a component lives in the same codebase as the component itself, a direct path opens up between the visual element and its source of truth in the database. That proximity is now driving a new generation of CMS tools that let editors work right on the component, in the context where the content actually appears.

Original Dribble shot.

If a site is built with GraphQL queries wrapped in a <Query /> component, the same mental model extends naturally: edit the data and write it back with a <Mutation />. TinaCMS has been getting attention for exactly this approach, and BodilessJS from Johnson & Johnson is pursuing the same idea while trying to coin a new term. Their distinction: a headless site pulls content from an external API, while a bodiless site keeps content in the same repository as the frontend code. The word may not stick, but the pattern probably deserves a name.

Stackbit is also working on a tool in this space, called Stackbit Live. An interactive demo gives a sense of the editing model:

These early projects skew heavily toward React, with a "probably other stuff later" attitude. The editing model is not entirely new, though. A sponsored walkthrough of Webflow published last year demonstrated a CMS whose power comes from the same direct line between a rendered component and its underlying data.

Editing a site from the “front end” in Webflow

The concept has historical roots. Years ago, services promised that adding a special CSS class to elements and handing over FTP credentials would let clients log in and edit content directly on the page, with the system writing changes back to static files on the server. That generation of tools largely faded. A slightly more modern take is Lea Verou's Mavo, where the front end is the only editing surface for content.

Whatever the label, it is clear there will always be a class of sites where editing content in place, directly against the component that renders it, is exactly the right experience.