
MantisBase
liveLightning-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.