DEV Community

Cover image for I got tired of building the same backend twice, so I built a tool that generates it for me
UnderPeaks
UnderPeaks

Posted on

I got tired of building the same backend twice, so I built a tool that generates it for me

Every time I shipped a product that needed both a mobile app and a web app, I ended up doing the same thing: build the backend, build the Flutter app on top of it, then build a whole separate Next.js app on top of the same data, and keep both in sync by hand every time the schema changed.

That got old fast. So I built Underpeaks.

How it actually works

You define your data model once in the console, fields, types, relationships. From that one schema, Underpeaks generates:

  • A real Flutter app, with your choice of Riverpod, Provider, or BLoC
  • A real Next.js app, with your choice of Zustand, React Query, or Jotai
  • A REST API
  • An admin dashboard with KPIs and charts, if you want it

Not scaffolding. Real, readable source code, using the state management pattern you already know.

The database question

Underpeaks isn't tied to one database. Five adapters ship out of the box: Supabase, Postgres, MySQL, MongoDB, Firebase. Same interface regardless of which one you pick, so if you start on Supabase and later need to move, your schema and generated code come with you.

Self-hosted, actually

Underpeaks Core is free, open source, and runs on your own infrastructure. No calling home, no feature gates you didn't agree to. Underpeaks Studio is the hosted version if you'd rather not run it yourself.

Launching on Product Hunt today, would love feedback from people who've hit the same problem: https://www.producthunt.com/products/underpeaks?launch=underpeaks

Happy to answer anything in the comments, architecture, tradeoffs, what's still rough around the edges. It's a solo build, so there's plenty.

Top comments (0)