If you've ever built the same app for web and mobile, you know the tax: two codebases, two sets of backend glue code, and one data model you keep in sync by hand. Change a field, update it in both places, miss one, ship a bug.
Underpeaks Core is a free, open-source, self-hosted headless CMS built to get rid of that. You define your data model once, and it gives you a backend, a content editor and a REST API. It can also generate working Flutter and Next.js apps from the same model. It's compiled, not AI-generated, so the same model always gives you the same code.
The video above shows the whole install. Here's the written version, so you can follow along or come back to it.
What you need
- Node.js and npm
- Git
- A database: Supabase, PostgreSQL, MySQL, MongoDB or Firebase. Have the connection details ready.
- A free Underpeaks account for the license key (step 5)
1. Clone and install
git clone https://github.com/underpeaks/underpeaks-core.git
cd underpeaks-core
npm install
2. Start Core
npm run dev
Open http://localhost:3000. On a fresh install you're taken straight to the installer.
3. Run the installer
You don't write any environment variables by hand. The installer does it for you:
- Choose your database
- Enter your connection details (it writes your
.envfor you) - It tests the connection
- It creates the system tables
- Optionally, it seeds demo content so you have something to explore
- You create your admin account
When it's done, you're sent to the sign-in page.
4. Sign in
Use the admin email and password you just created.
5. Add your license key
The first time you sign in, Core asks for a license key:
- Create a free Underpeaks account. It takes about 30 seconds.
- Copy the license key from your dashboard.
- Paste it into Core.
Then you land in the console.
6. Look around
| Section | What it does |
|---|---|
| Shared Models | Define your data models |
| Pages | Build pages from your models |
| Menu | Control the admin sidebar |
| Navigator | Connect pages to each other |
| Theme | Colours and branding |
| Storage | Upload and manage media |
| Users | Manage who can access your instance |
| Settings | Project name, license key, SMTP, API keys |
A good first move is to create a model and attach it to a page. The admin views for it show up straight away.
7. Generate your apps
npm install -g underpeaks-nxf
nxf login
nxf generate flutter # or: nxf generate nextjs
nxf login opens your browser to connect the CLI to your account. After that, generate gives you a real project you own, with models, an API client and auth flows included.
If something goes wrong
- The installer can't connect: check your connection details, and make sure your database accepts connections from where Core is running. Cloud databases often need your IP address allowed.
-
Something looks off after setup: check that the values in
.env.localmatch your database exactly.
If you get stuck, tell me which step and which database you used. I'm a solo developer and I read every comment.
What's next
The next video in the series is Core vs Studio, the free self-hosted version compared with the hosted one. After that, we create your first model.
Core is free and open source: GitHub.
Which database are you planning to run it on?
Top comments (0)