DEV Community

Cover image for I solved the local database problem, so I built a tool
Bob Bass
Bob Bass

Posted on

I solved the local database problem, so I built a tool

I hit a massive pain point in my day-to-day work—and once I solved it for myself, I couldn’t not share it.

That pain point?

Local development databases.

The State of Local Databases (a.k.a. Choose Your Poison)

If you’re a working developer, you’ve probably rotated through some combination of these:

Docker
Powerful, yes—but often slow, bloated, frustrating, and wildly overkill when all you want is a database.

XAMPP on Windows
If you’re still doing this, I respect your resilience… but also, it’s not 2000 anymore.

Postgres.app / DBngin (Mac-only)
Nice UX, but usually limited to one database at a time.

Neon / Supabase / PlanetScale
Great products—if:

  • you don’t deal with migrations much
  • you’re solo
  • you’re always online
  • you don’t need to quickly replicate production or staging

Now let’s talk about real-world complexity.

Real Life Is Messy

What if:

  • You use Postgres on one project and MySQL on another
  • You also rely on SQLite for mobile or embedded apps
  • You work offline
  • You use Windows during the day and macOS at night
  • You need multiple versions of the same database engine running at once

And here’s the big one:

A PM shows you a bug that only appears on staging.

Your local database is a Frankensteined mess that looks nothing like staging—or production. Debugging turns into guesswork, tribal knowledge, and prayer.

Wouldn’t it be nice if you could just:

  • clone a real database locally
  • spin it up instantly
  • run multiple engines and versions side by side

...all of it from a simple CLI, an interactive CLI which doubles as a scriptable library

That’s Why I Built SpinDB

Just run:

npx spindb

Or better:

pnpx spindb

Or best of all:

pnpm i -g spindb

And then simply:

spindb

SpinDB is a cross-platform CLI that lets you spin up local databases—fast—without Docker.

It:

  • downloads database engines automatically
  • runs them in lightweight “pseudo-containers”
  • supports multiple versions at once
  • works across Windows, macOS, and Linux
  • is scriptable, so you can spin up databases programmatically for tests or tooling

I’m already using it professionally.

What It Can Do Today

Right now, SpinDB lets you do things like:

  • Run Postgres 14 on port 5432
  • Run Postgres 17 on port 5433
  • Run MySQL 5.7 on port 3306
  • Run MySQL 8 on port 3307
  • Manage SQLite databases directly inside project folders

All at the same time. No Docker. No VM gymnastics.

Docs live here: 👉 SpinDB

I bet this idea sounds a little bit crazy to you. But it works, and it works really well.

As of today, SpinDB supports Windows, in addition to macOS and Linux (which it already supported).

What’s Coming Next

Planned additions:

  • Redis
  • MongoDB

And more quality-of-life improvements as it approaches v1.0.

A Quick Reality Check

I completely understand why most tools don’t support Windows, macOS, and Linux simultaneously.

This is a hard problem—especially when you’re juggling filesystem differences, process management, networking, and platform quirks.

That said… I wanted it badly enough that I decided to solve it anyway.

Final Thoughts

This has been a labor of love. I’ve been chipping away at it for a while, and I’m genuinely excited to see if it helps other people the way it’s helped me.

If you think it’s neat

⭐ star the repo

If you think it’s dumb

💬 tell me why (politely or not)

Either way—thanks for entertaining my silly little side project.

Happy hacking.

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.