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: REST endpoints, authentication, realtime updates, file storage, and a web admin dashboard.

  • Auto-generated REST APIs: create a table, get instant CRUD endpoints
  • Built-in authentication: JWT auth with per-collection access-control rules
  • Realtime updates: SSEs or WebSockets for live changes on SQLite and PostgreSQL databases
  • 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/WS 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.