Free · Self-hosted · One binary

The lean CMS for people who write their own HTML.

A page tree, a real code editor and templates with data—from collections, REST APIs and workflows. No theme marketplace, no plugin zoo, no WYSIWYG that mangles your markup. One Go binary, one SQLite file, done.

Linux, Windows, macOS and Docker. Admin in English, German, French, Italian and Spanish.

IllusionCMS page editor: page tree, code editor with template code and live preview
1 binary
Go, no runtime, no dependencies
SQLite
Back up one folder—done
0 cookies
Built-in statistics, daily totals only
5 languages
Admin UI and manual
Why IllusionCMS

Everything a developer needs. Nothing that gets in the way.

IllusionCMS doesn’t try to be a website builder. It gives you a clean place for your HTML, CSS and JavaScript—and the data, automation and safety nets around it.

Your HTML, untouched

Every page is a template in a real code editor—with Emmet, Prettier and a live preview. Shared CSS and JS files, snippets and components with slots.

Data in your templates

Collections with typed fields, any REST API as a data source and IllusionDB via workflows. data() and item() work the same everywhere.

Page builder for editors

Turn any snippet into a building block with typed parameters. Editors fill in forms—the markup stays yours.

Import existing sites

Move from Webflow, WordPress or static HTML: page tree, CSS/JS, images and fonts are imported, links rewritten—repeatable without duplicates.

Multilingual done right

Linked translations for pages and entries. hreflang, language switcher and sitemap come automatically.

Workflows built in

Node-based flows for forms, webhooks, schedules and email—with JavaScript nodes when you need them. No separate automation server.

Templates

If you know Twig or Django, you already know IllusionCMS.

Pages, snippets and building blocks use one familiar template language. Detail pages for blog posts or products are a single catch-all page.

  • Catch-all routes with route.slug and real 404s
  • Responsive images with srcset and WebP, generated automatically
  • Page cache with gzip and ETag, cleared on every change
  • Sitemap, robots.txt, Open Graph and redirects out of the box
pages/blog.html · catch-all
{% if route.slug %}
  {% with post=item("blog", "slug", route.slug) %}
    {% if not post %}{{ not_found() }}{% endif %}
    <article>
      <h1>{{ post.title }}</h1>
      {% blocks post.content %}
    </article>
  {% endwith %}
{% else %}
  {% include "blog/list" %}
{% endif %}
IllusionForge family

Your data lives in a database? Meet IllusionDB.

IllusionDB, our free data tool, puts a modern interface on your PostgreSQL, MySQL, MariaDB or SQLite database. Your team maintains the data in IllusionDB—IllusionCMS workflows read and write its tables and publish them as pages.

  • Edit data like a spreadsheetGrid, Kanban, calendar and Gantt for every table
  • Feeds your websiteRows become pages, forms write back into tables
  • Free to use, self-hostedOne binary, no row or user limits
Operations

Boring to run. In a good way.

No database server, no queue, no cache cluster. Start the binary, put a reverse proxy in front—and sleep well.

Safety nets

Version history with restore, conflict warnings, automatic redirects and nightly backups.

Bundles & static export

Build locally, push to production with one click—or export a site as static HTML.

S3 if you want it

Media locally or on S3-compatible storage like Garage, AWS or R2—with a guided migration.

Statistics without tracking

Visits, pages, referrers and countries as daily totals. No cookies, no raw data, no banner.

API for everything

REST API with tokens, atomic batches with idempotency keys, schema endpoint and webhooks.

Private files

Files only for signed-in users or via expiring signed links—for drafts and downloads.

Many sites, one instance

Each site has its own domains, sitemap, icon and 404 page.

Secure defaults

Security headers, rate limiting, CSRF protection and optional headless mode.

For agencies

Your clients need an editorial workflow? Add IllusionPublish.

IllusionPublish sits on top of one IllusionCMS instance. Your developers keep working in the CMS—your clients’ editors get a visual editor, workspaces and approvals, and never see a line of code.

Try it free for 30 days.

  • Visual editorEdit text and images right on the page
  • Workspaces and approval chainsChanges go live as a package—atomically
  • Permissions down to single fieldsEditors change content, not design
  • SSO, SCIM and passkeysEntra ID, Google, Keycloak and more
Get started

Up and running in a minute.

Download

Grab the archive for Linux, Windows or macOS—or the Docker package for Compose and Coolify.

Start

One command. Data lives in a single folder.

$ ./illusioncms -addr :8080 -data ./data

Build

Open /cms-admin, create your account—and start from scratch, import a site or load the demo website.

Enjoy writing HTML again.

IllusionCMS is free. No account, no telemetry, no strings attached.