Manage your content and data in any way you like

Contember is an open-source, headless CMS without limits. It gives you full control over the administration interface and data structure.

Enjoy GraphQL API, role-based access control, authentication and a well-structured PostgreSQL database. Built by developers for developers.

With Contember your codebase is the single source of truth. No obscure settings and no hidden magic. Contember fits right in your git-based development workflow.

Instant GraphQL API

Define your data schema with TypeScript and Contember instantly provides you with fast and friendly GraphQL API. Your data are safely stored in PostgreSQL database.

User-centric administration

Universal administration interfaces don't work. Contember gives you powerful tooling to build any administration you need in a few hours with React.js and Typescript.

Declarative role-based access control

Define any roles you need and automatically get scoped GraphQL API for them. No more hard-coded permissions in your app.

Platform as a service

Focus on building your app, Contember Cloud will take care of the infrastracture. Deploy with one command and do not worry about maintenance.

Pricing →

Powers 100+ projects

Endorphin Republic
Endorphin Republic
Endorphin Republic
Endorphin Republic
Endorphin Republic
Endorphin Republic

Use Cases

Just a few examples of what you can easily create with Contember

Headless CMS

Multilanaguge, a multitenant CMS for managing content on one or more websites and other channels.

Backend for your SaaS

Build your SaaS in days. Manage data, users, processes and control access for individual roles.

Internal tools

Empower your backoffice with your own workflows. Manage customers, orders, inventory, projects and more.

Backend for mobile apps

Get a GraphQL API based on your data structure in hours. No more complicated backend development.

How Contember works

Describe the data model and the GraphQL API is immediately available. Then use the Admin SDK to create an administration interface to suit your needs.

Start now, quickstart will walk you through it in 5 minutes.

$ npm exec "@contember/[email protected]" projectname

Define it

Define data model

export class Article {
  title = d.stringColumn().notNull()
  lead = d.stringColumn().notNull()
  content = d.oneHasOne(Content).removeOrphan().notNull()
  publishedAt = d.dateTimeColumn()
  link = d.oneHasOneInverse(Linkable, 'article').notNull()
  tags = d.manyHasMany(Tag)
  categories = d.manyHasMany(Category)
}

Define management UI

const ArticleForm = (
  <>
    <MainContent>
        <ArticleContentEditor />
    </MainContent>
    <Box>
        <IsPublishedField />
        <LinkUrlField derivedFrom="title" label="URL" />
        <SelectField field="categories"
            options="Category.name" label="Category" />
        <MultiSelectField field="tags"
            options="Tag.name" label="Tags" />
    </Box>
  </>
)

Use it

Connect with GraphQL

mutation {
  updateArticle(
    by: {link: {url: "/article/hello-world"}},
    data: {
        title: "Hello world!",
    }
  ) {
    ok
    errorMessage
  }
}

Write your first article

Screenshot of Contember Admin interface