# Obelism Content Docs (/docs)

Obelism Content is a headless CMS. Each organization models its own content per space, edits it in the dashboard, on its own site or through an agent, and its sites read it from the delivery API. These pages are for the people building those sites.

## What can you do with Content? [#what-can-you-do-with-content]

### Model your own content [#model-your-own-content]

Page types for anything with a URL, data types for everything else, and block types for the parts pages are built from. Every space has its own [content model](/docs/guides/content-model), and you can keep it in your repository, reviewed in pull requests like your code.

### Edit on the page [#edit-on-the-page]

Editors see every page of your site on the [canvas](/docs/guides/canvas) and click a block to change it, or sign in on [the site itself](/docs/guides/site-editing) and change it by [prompt](/docs/guides/prompt-editing): "make the hero heading shorter".

### Read it from any stack [#read-it-from-any-stack]

The [delivery API](/docs/api/delivery) answers JSON for a path, an id or a content type, in one locale or all of them, with references and assets inlined. The [SDK](/docs/sdk/javascript) wraps it for JavaScript and React.

### Develop, staging and production [#develop-staging-and-production]

Every space has [three environments](/docs/guides/environments), each with its own model and content. Build in develop, check on staging, then promote to production.

### A/B tests in your content [#ab-tests-in-your-content]

Any blocks field takes the built-in [improve block](/docs/guides/ab-tests): different blocks per variant of an Obelism Improve test or flag.

### Shopify products and collections [#shopify-products-and-collections]

Connect a space's [Shopify store](/docs/guides/shopify) and editors pick its products and collections in content, link to them, and give the ones that need it a page of their own. Your site reads live prices and stock from Shopify.

### Work as a team [#work-as-a-team]

Editors [comment](/docs/guides/comments) on entries and see who else has one open. Production can be [reviewed](/docs/guides/publishing#review-before-publishing), so an admin approves what goes live, and anything can be [scheduled](/docs/guides/publishing#scheduling). People get a [role](/docs/guides/roles) per space, and [Activity](/docs/guides/activity) shows who changed what.

### Every language [#every-language]

A space publishes in as many [locales](/docs/guides/locales) as it needs, with fallbacks, URLs per language, and AI translation for one entry or the whole space.

### From a design or an agent [#from-a-design-or-an-agent]

Turn a [Claude Design](/docs/guides/claude-design) page into a draft built from your own blocks, or let [an agent](/docs/getting-started/agents) model, write and publish content through MCP.

## How it works [#how-it-works]

1. **Create a space** for the site, and set its [locales](/docs/guides/locales).
2. **Model the content** under **Content model**, or keep the model [in Git](/docs/guides/model-in-git).
3. **Write content** in the [dashboard](/docs/guides/entries), on the [canvas](/docs/guides/canvas), or through an [agent](/docs/getting-started/agents).
4. **Read it from the site** with a [delivery token](/docs/guides/api-tokens): `GET /api/delivery/v1/pages?path=…`.
5. **Rebuild on publish** with a [webhook](/docs/guides/webhooks).
6. **Promote** content and the model from develop to production.

## Get started [#get-started]

<Cards>
	<Card
		title="Next.js"
		href="/docs/getting-started/nextjs"
		description="Start a site's repository on a space and render its pages"
	/>
	<Card
		title="Plain HTML"
		href="/docs/getting-started/html"
		description="Read content with fetch, and make the page editable with one script tag"
	/>
	<Card
		title="Connect an agent"
		href="/docs/getting-started/agents"
		description="Model and write content from Claude Code, Codex, Cursor and others"
	/>
	<Card
		title="Delivery API"
		href="/docs/api/delivery"
		description="Every endpoint and parameter a site reads content with"
	/>
</Cards>
