Build your backend once. Compile the rest.
Underpeaks is a self-hosted, developer-first headless CMS that compiles production-ready Flutter and Next.js applications from a single content model. Define your data once, and get a real backend, a content editor, a REST API, and — if you want it — a working mobile and web app, generated straight from it.
Compiled, not AI-generated: the same model always produces the same code.
Before you start: Core is free and open source, but it needs a free license key from an Underpeaks account. Creating one takes about 30 seconds — you'll be asked for the key the first time you sign in to Core. Create a free account →
If you've ever built the same app for web and mobile, you know the tax: two codebases, two sets of backend glue code, one data model you're keeping in sync by hand. Change a field, update it in both places, miss one, ship a bug.
Underpeaks makes that one action — change the model, regenerate both. It also handles the backend work that quietly eats your week: auth that holds across devices, file storage without leaked keys, rate limits, consistent data.
No website builder, no drag-and-drop page editor. You already know how to build a frontend — Underpeaks builds the backend.
| Underpeaks Core | Underpeaks Studio | |
|---|---|---|
| Hosting | Self-hosted, your infrastructure | Hosted, managed for you |
| Cost | Free, forever, open source | Paid, tiered plans |
| Database | 5 adapters: Supabase, PostgreSQL, MySQL, MongoDB, Firebase | Supabase (managed) |
| Code generation | Full Flutter + Next.js | Full Flutter + Next.js |
| Team members | Unlimited | Scales with plan |
| Integrations | — | AI, email, SMS/OTP, payments, and more |
| Support | Community (Discord) | Discord + email → priority email → dedicated channel, by plan |
Not sure which one you need? Start with Core — you can always move to Studio later once you know your usage.
git clone https://github.com/underpeaks/underpeaks-core.git
cd underpeaks-core
npm installCore supports five database backends — pick whichever you're most comfortable with:
- Supabase
- PostgreSQL
- MySQL
- MongoDB
- Firebase
You don't need to set up any environment variables by hand. The installer handles all of that for you — just have your chosen database's connection details ready (host, credentials, project URL/keys, etc., depending on which one you pick).
npm run devVisit http://localhost:3000 in your browser. Since this is a fresh install, you'll be automatically directed to the installer.
The installer walks you through everything:
- Choose your database type — pick from the 5 options above
- Enter your connection details — the installer writes your
.envconfiguration for you - Database connection test — confirms Core can reach your database
- Table creation — creates all required system tables
- Demo content (optional) — seeds a working example project so you have something to explore right away
- Admin account creation — set the email and password for your first Core user
Once the installer finishes, you'll be redirected to sign in.
Sign in with the admin credentials you just created. The first time you sign in, Core asks for your license key:
- Create a free Underpeaks account (about 30 seconds)
- Copy the license key from your dashboard
- Paste it into Core
You'll then land in the Console — Core's admin dashboard.
| Section | What it does |
|---|---|
| Dashboard | Overview stats and KPIs for your project |
| Shared Models | Define your data models — the schemas that power everything else |
| Pages | Build admin and client-facing pages using your models |
| Menu | Control what shows in your sidebar navigation |
| Navigator | Map out how pages connect and navigate to one another |
| Theme | Customise colours and branding |
| Storage | Upload and manage media files |
| Users | Manage who has access to your Core instance |
| Settings | Project name, license key, SMTP, API keys, and more |
Once you've defined a model and attached it to a page, install the CLI and generate:
npm install -g underpeaks-nxf
nxf login
nxf generate flutter # or nextjsnxf login opens your browser to connect the CLI to your account. After that, generate produces a real project you own — models, API client and auth flows included.
See the docs for the full code generation guide.
- Installer can't connect to the database: double-check your connection details, and make sure the database is reachable from wherever you're running Core (cloud databases often need your IP allowed).
- Something looks off after setup: check that your
.env.localvalues match your database exactly. - Stuck? Ask in Discord or open an issue.
Issues and pull requests are welcome. If you're planning a larger change, please open an issue first to discuss it — this project is actively maintained by a single developer, so a heads-up saves everyone time.
Questions or feedback? Join the Discord or open an issue. Underpeaks is built and maintained by one person, so please be patient with response times.
Underpeaks Core is licensed under the Apache License 2.0.
