All projects
MantisBase

MantisBase

live

Lightning-fast Backend-as-a-Service in C++: one binary, a full backend anywhere: auto REST APIs, auth, realtime, and an admin dashboard.

cppcpp20baasrest-apisqlitepostgresqlrealtimessehttp

What it does

MantisBase is a lightweight, embeddable Backend-as-a-Service written in C++20. It ships as a single binary that gives you a complete backend out of the box, spin it up and you immediately have REST endpoints, authentication, realtime updates, file storage, and a web admin dashboard, with no glue code to write. - Auto-generated REST APIs: create a table, get instant CRUD endpoints - Built-in authentication: JWT auth with per-collection access-control rules - Realtime updates: Server-Sent Events for live changes on SQLite and PostgreSQL - Admin dashboard: a web UI at /mb to manage schemas, data, rules, and users - File uploads: storage and serving handled for you - JavaScript extensions: extend behaviour with scripts - Embeddable: drop it into a C++ app as a library

Why I built it

Backends for small apps, embedded devices, and desktop tools tend to be repetitive plumbing. MantisBase is a bet that the PocketBase experience: one binary, batteries included: belongs in the C++ world too, where it can run on embedded hardware and inside native apps.

How it works

- Core: C++20 library, distributed as a standalone mantisbase serve binary - Data: SQLite or PostgreSQL, with SSE for realtime change streams - API: auto-generated REST at /api/v1/, JWT auth with rule-based access control - Admin: bundled web dashboard for schema, data, and user management - Extensibility: JavaScript hooks and use as an embeddable C++ library

What I learned

Designing an ergonomic schema/rules model that stays safe (SQL-injection-proof entity naming, declarative access rules) while remaining flexible enough to feel like a real database. Shipping a genuinely single-binary experience across SQLite and PostgreSQL took care around realtime change propagation.