Features

The model becomes an API your editor knows.

A Vite plugin reads the content model marketing built and writes a typed client into your repository. It keeps up as the model changes, and it never fails your build.

The fields from that collection, arriving in the editor as typed properties on the generated client.

Set up the client

How it works.

Generated from the live model
@stetcms/vite pulls the current model and writes a client into your source tree. It is committed like any other generated file, so a fresh checkout builds without reaching the network.
Autocomplete over real content
The fields marketing added are the properties your editor offers, with their real types. A select field arrives as a union of its options, a reference as the entry it points at.
Deletions arrive as deprecations
Remove a field and it becomes deprecated in the generated types, still serving the last value it held. Your build stays green, your editor shows the strikethrough, and you migrate when it suits you.
Calls shaped like the content
Collections answer list and get by slug. A map answers get, because there is only one. Nothing to configure: the shape of the call follows the shape of the model.
More than the client
A REST API and SDKs when the plugin is not the right fit, a CLI for scripting, seeding and CI, and webhooks on content events to trigger rebuilds and syncs.
Rendering stays yours
Stet has no hosted preview and no page builder. Your application renders your content, which means a preview is just your own app reading a different view through the same client.

A field removed from the model becomes a deprecation in the types. Nothing goes red, and nobody is paged.

Stop making one team wait for the other.

Model your first collection in a couple of minutes, or have us walk you through it first.

$10 per user per month. Free to self-host.