Skip to content
Get started

What Zellij is

A versioned Next.js engine that turns a folder of structured content into a complete website.

Zellij is a package. Your site is a folder of YAML and Markdown, plus a Next.js app of about thirty lines that imports the package and gets out of the way.

The name is Moroccan: zellij is mosaic tilework, where elaborate walls are composed from a small fixed set of geometric tiles. The engine works the same way — pages are composed from a fixed vocabulary of sections, styled by themes.

Getting content into it

You do not have to start from an empty folder.

What you write

my-product/
├── site.yaml         # name, brand, theme, footer
├── menu.yaml         # the top bar
├── pages.yaml        # pages, each an ordered list of section names
├── sections/         # one file per section
├── assets/
└── 01-guide/
    ├── _sidebar.yaml # makes this folder a documentation tree
    └── *.mdx

Every file is optional. A folder containing nothing but a _sidebar.yaml and some Markdown builds a complete documentation site, with a name taken from the folder itself.

What you get

What it is not

Zellij is not a code generator. It does not scaffold a project or emit files into your repository. That distinction is what makes upgrades a version bump instead of a merge — all the rendering logic lives in the package, and it improves without touching your site.

It is also not a general-purpose page builder. The section vocabulary is fixed and deliberately small. If you need a layout that does not exist, the answer is to add a section type to the engine — where every site gets it, and where it is schema-validated and themed like the rest — rather than to hand-write one page.

Where to go next

Read the quickstart if you want something running in ten minutes. Read the content model if you want to understand the shape of the thing first; it is the decision every other part of the engine follows from.