Database not required
One of the biggest challenges I’ve faced in going from developer to indie entrepreneur has been fighting my tendency to overbuild. As devs, we love getting into the weeds and building everything from scratch, but that mindset really slows down your ability to ship faster. When I built needvault.com (a site that sells user research reports for founders in PDF form), I made a few key decisions to not waste my time. One of these has been shipping without a database.
Now, that’s not entirely true because I still store some data about users using Clerk. But I completely avoided spinning up a “real” database like Postgres or MongoDB. Here is what I actually needed to track:
- Whether a user has paid
- What files they downloaded
- Their Stripe customer ID
That’s it. All of that lives in the private user metadata field that Clerk provides.
Why was this the right move?
As a product builder, your biggest risk isn’t technical debt, but rather building something nobody wants. If you can reduce complexity, ship faster, and test your assumptions sooner, that’s a win. There’s no shame in skipping the database. There is also no shame in outsourcing auth. Those things don’t make your product better at this stage. Focus on what matters.