> From the [Strife developer docs](https://strife.app/docs/explanation/what-is-strife). Every page is listed in [llms.txt](https://strife.app/docs/llms.txt).

# How Strife works

How Strife's parts fit together: Studio where editors work, your team's database, templates defined in code and deployed with the CLI, the content index your site queries, and the SDKs for live preview.

Strife is a headless CMS. Editors write and publish in Strife Studio, Strife stores the content, and your site reads it and renders it with your own code and design. This page shows how the parts fit together, and links to where each one is described in detail.

## The parts

| Part | What it does | Read more |
| --- | --- | --- |
| **Strife Studio** | The web app where editors create, edit, preview and publish content. | [User guide](https://strife.app/docs/user-guide) |
| **Your team's database** | Each team's content lives in its own RavenDB database. Your site reads it with a certificate that can only read. | [RavenDB](https://strife.app/docs/explanation/ravendb.md) |
| **Templates** | Decide which fields a kind of page has. Define them in code with `defineType`, or in Studio's template designer. | [Schemas](https://strife.app/docs/reference/cli/schemas.md) |
| **The CLI** | Signs you in, links your project to a team, writes the connection secret to `.env`, and deploys your templates and the content index with `strife push`. | [CLI](https://strife.app/docs/reference/cli.md) |
| **The content index** | `Content/ByUrl`, with one row per page and language and the page's address. This is what your site queries. | [Index URL](https://strife.app/docs/reference/database/index-url.md) |
| **The SDKs** | `@strifeapp/astro` for Astro sites, `@strifeapp/strife` for live preview in any framework, and the RavenDB clients for Node.js and .NET. | [Astro](https://strife.app/docs/tutorials/astro.md), [Live preview](https://strife.app/docs/reference/live-preview.md) |

## From template to page

1. **You define the content model.** Write templates with `defineType` and the `fields.*` builders in your project, and run `strife push`. Strife creates the templates in your team and deploys the content index.
2. **Editors write.** In Studio they create pages from your templates and fill in the fields. Studio shows your site next to the editor with the draft in it, updated as they type. That is live preview, and your site takes part in it through `@strifeapp/strife`.
3. **Editors publish.** Publishing makes a version live, and Strife keeps every published version, so editors can look back and restore one (see [Versions and History](https://strife.app/docs/reference/versions.md)). Before they publish, they can share a [snapshot](https://strife.app/docs/reference/snapshots.md): a link to a frozen copy that your site serves at `/snapshot/{token}`.
4. **Your site reads the published content** from the content index, by the page's address, and renders it. Astro sites do this through `@strifeapp/astro`. Node.js and .NET sites query the index with the RavenDB client.

## More for your site

* **Open in Strife:** a toolbar on your site takes editors from the page they are viewing to the same page in Studio. See [Open in Strife](https://strife.app/docs/how-to-guides/open-in-strife-toolbar.md).
* **Insights:** `<Insights />` from `@strifeapp/astro` reports how fast your pages are for real visitors, and checks accessibility while a page is open in the live preview. Editors see both in Studio. See [Accessibility in the preview](https://strife.app/docs/reference/live-preview.md#accessibility-in-the-preview).
* **AI tools:** the [MCP server](https://strife.app/docs/tools/mcp-server.md) lets AI assistants find, read and draft content with your Strife account. These docs are an MCP server too and have an `llms.txt`, so assistants can search and read them. See [Use the docs from AI tools](https://strife.app/docs/how-to-guides/use-the-docs-from-ai-tools.md).

## Where to start

* **Astro:** the [Astro](https://strife.app/docs/tutorials/astro.md) tutorial, the most complete path.
* **Node.js or Next.js:** [Node.js](https://strife.app/docs/tutorials/getting-started/nodejs.md), then [Next.js](https://strife.app/docs/tutorials/next.js.md).
* **.NET:** [.NET](https://strife.app/docs/tutorials/getting-started/dotnet.md).
* **Live preview in another framework:** [Live preview](https://strife.app/docs/reference/live-preview.md).
