Descriptor-driven admin
Lists, forms, filters, and navigation are structs. Generic handlers turn them into working screens, with validation and a reference picker built in.
Open source · Built in Rust
Laterite gives you a descriptor-driven admin, portable migrations, localization, plugins, and role-based access from the first commit. One codebase runs on PostgreSQL, MySQL, or SQLite.
v0.9.16 Released 16 October 2026. See what changed
cargo install laterite-cli
lat new
✓ scaffolds the app, sets up the database, creates the first admin
Screens are serde descriptor structs rendered by generic handlers, so the pieces you build are configuration, not one-off controllers.
Lists, forms, filters, and navigation are structs. Generic handlers turn them into working screens, with validation and a reference picker built in.
Queries and migrations build with sea-query over sqlx and run unchanged on Postgres, MySQL, and SQLite.
Each migration is a Rust unit with up and down, applied and rolled back by a runner that tracks history per module.
Dotted permission strings on roles, with per-user overrides that take precedence, enforced by middleware.
Every UI string is translatable, dates render in the operator's locale, and a language arrives as a translation file, with no code change.
Drop a plugin into plugins/, sync, and enable it from the admin. A plugin that fails at boot is quarantined, never the whole app.
Askama templates with HTMX. No JavaScript framework to learn, ship, or keep up to date.
Argon2id credentials, CSRF protection on every form, and an append-only audit log of every admin mutation, with its own read-only view.
Free, forever
Laterite is dual licensed under MIT or Apache-2.0. Build one application or a hundred, ship them to clients, and keep every line. There are no seats to count and no per-project fees.
See what is included