Built for the way you actually ship.
Tangen is a code-first, type-safe headless CMS you host yourself. Your schema is TypeScript, your queries are typed, your data is on your Postgres, and AI is in the box. No black magic, no lock-in.
What you check before you commit to a CMS.
These are the signals that decide whether a backend is worth building on. Tangen is designed to pass every one.
Code-first schema
The model lives in version control as TypeScript, not clicked into a GUI you cannot diff or review.
Type-safe end to end
Schema generates types that reach the SDK, so a renamed field breaks the build, not production.
You own the data
Self-hosted on your Postgres. No vendor holds your content hostage or rate-limits your reads.
No paywall on the basics
Preview, roles, environments, localization, and AI are included, not enterprise upsells.
A local, typed API
Query in-process with the SDK and TangenQL, or over REST and GraphQL. No black-box client.
Real escape hatches
Custom field types, extension pages, hooks, and MCP tools, so you extend without forking.
AI-ready in the box
MCP and RAG ship with the platform, not as a plugin you assemble yourself.
Fast by default
Built on Bun and Elysia, so installs, tests, and cold starts stay quick.
Two kinds of developer. One backend both love.
Whether you build by talking to an agent or by writing every line yourself, Tangen meets you where you are, and never makes you choose.
Talk to your project. Watch it build.
Describe to build. Explain a feature in plain English and get real schema and drafts you confirm.
Content AI. Generate and fill fields, rewrite copy, and draft entries, all inside the editor.
Bring your agent. Point Claude Code or Cursor at it over MCP and let it model, seed, and wire content.
Instant feedback. AI edits stream straight into live preview, so you watch the result as it happens.
Own every layer, typed from schema to query.
Typed SDK. A fully typed client where a wrong field is a compile error, not a runtime surprise.
TangenQL. A clean, expressive query language for filtering, sorting, and relations across REST and GraphQL.
API playground. Explore and test the REST and GraphQL API right in the admin, with real auth.
Code-first, in git. Schemas, routes, and config are TypeScript in your repo. Review them, version them, ship them.
Define the schema. Get the backend.
import { defineObjectType, field } from '@tangen/cms' export const post = defineObjectType({ name: 'post', fields: { title: field.text({ validation: { required: true } }), body: field.richtext(), author: field.relation({ targetType: 'author' }), }, })
const { data } = await tangen .objects('post') .where({ status: 'published' }) .sort('publishedAt', 'desc') .limit(10) .get() // data is Post[] - fields checked at compile time
Fast, and you can check our work.
Tangen runs on Bun and Elysia, so the runtime is quick before we even try. And because you host it, you can benchmark it yourself: we ship a reproducible harness rather than a number you have to take on faith.
Build on Tangen in the private beta.
Define a content type, push it, and query it from anywhere, with your own AI agent doing the rest. Request access and we will get you set up.