v0.2.0 — Now available

Ship a CMS
in Minutes.

A Rust-native headless CMS with an embedded admin dashboard, PostgreSQL backend, and a single binary that embeds its own migrations.

$ cargo install chukfi-bin

One binary. Zero dependencies.

Chukfi ships as a single Rust binary via cargo install chukfi-bin. Migrations are embedded — they run automatically on startup. No Node.js, no Python, no Docker required to run the API. The admin dashboard is bundled in the binary; no separate build step.

# Install the binary
cargo install chukfi-bin

# Start your CMS
chukfi serve

# Generate a dev token
chukfi token you@example.com

# Seed demo data
chukfi seed

Built for developers

Everything you need in a headless CMS, compiled to a single binary.

Rust Core

Axum API compiled to a single binary. Sub-millisecond cold starts, embedded SQL migrations via sqlx.

Dioxus 0.7 Admin (optional)

Optional WASM-compiled admin UI with Quill 2.0 rich text editor, media library, and content type builder. The embedded vanilla-JS dashboard is the zero-dependency default.

PostgreSQL

AWS RDS PostgreSQL 16 for dev and production. Per-developer `db.t4g.micro` instances via `chukfi db create` — tear down when not in use.

RBAC + Audit

Config-driven roles (Admin, Publisher, Editor), append-only audit log, JWT auth with magic-link support.

Content Types

Define schemas with typed fields (Text, Rich Text, Date, Number, Media) in JSON config. Generate TypeScript types.

AWS Ready

Deploy to ARM64 EC2 + ALB + RDS + S3. Media library supports local filesystem or S3 with one env var.

How it works

REST API

chukfi serve

Axum server on :4321. Embedded migrations. Auto-creates users in dev mode.

Admin UI

Embedded dashboard

Vanilla-JS dashboard bundled in the binary. Served automatically at /admin — no build step, no Node. Dioxus 0.7 WASM available as an optional richer interface.

Database

PostgreSQL 16

Per-dev `db.t4g.micro` RDS instance. Create with `chukfi db create`, tear down with `chukfi db destroy`.

Ready to ship?

One command to install. Five minutes to your first content entry.

Get Started →