Start today
Go from zero to a fully functioning system in a few minutes with our starter kits. Or in a few hours when you start from scratch.
Then deploy to Contember Cloud with a single command and don't worry about hosting and maintenance.
Starter
Headless CMS
When you need to create a nice and simple website. This headless starter CMS includes pages, articles, form settings, access control and SEO support. It comes with a frontend Next.js website (no styling).
Starter
Headless Multilingual CMS
If you need a headless CMS with great support for multiple languages, you've found it. It contains the same as the headless CMS starter, but with support for multiple languages. You can even translate the entire administration interface.
Starter
Custom form builder
If you need to collect data from users but have specific requirements. Use this starter program and turn it into any data collection system. It includes 8 input blocks, responses and ACL settings.
Core
Start from scratch
Build what you want. Explore the basics with our quick tutorial. Then the sky is the limit.
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
- 1
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) }
- 3
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> </> )
- 2
Connect with GraphQL
mutation { updateArticle( by: {link: {url: "/article/hello-world"}}, data: { title: "Hello world!", } ) { ok errorMessage } }
- 4
Write your first article