Skip to main content

Getting started

Zmaj is a headless CMS that provides RESTful API for your database and admin panel to easily manage your data.

Zmaj uses database tables directly without creating proprietary abstraction. That means that your collection in Zmaj looks the same as table in your database. When you create field in Zmaj, that same field will exist as a column, and vice versa. Every relation is backed by foreign key, so you can be sure that there won't be any invalid values. This allows you to use Zmaj as much or as little as you want. You can have custom API to serve your frontend, and use Zmaj as an internal admin panel replacement.

Zmaj store all it's data in tables starting with zmaj_ prefix. So everything you need to do to remove Zmaj completely from your app is to just delete it's tables.

caution

Zmaj hasn't reached stable version yet, so please do not use it in production.

Quick Start Example

# Creates basic project
npx zmaj create-project zmaj-example
cd zmaj-example
npm install
# Starts docker with empty database and development email server in background
docker-compose --env-file .env up -d
# If you want to create example project with random data
npx zmaj create-example-schema -d
npm run dev

Then go to http://localhost:5000/admin/#/auth/init, to create first admin.

Installation

There are 3 ways to get started

Demo

username:  admin@example.com
password: password

Demos will be reset at the start of every hour. Data, images and auth sessions will be returned to default, and you will have to login again.

If someone deleted admin@example.com, there are admin2@example.com through admin9@example.com available with password password.

Demo Simple Store

Visit demo

Example of the naive web store admin panel.

Demo Blog

Visit demo

Example of the the simple blog backend.