I use Supabase since 2022 when I originally wrote my first production Next.js app. I belong to the group of people that believes that managed is the answer to early focus of building, when time of development is (or was) more important on gaining speed than anything else. Supabase helped me gain exactly that, stay focused on shipping, while the database and authentication were solved for me.

Since AI solved that bottleneck (of writing code), it seems like integrating other tools became an easy part of the configurational setup of a new project and can be done in a matter of hours and not days as before. Modern services come even prompt-ready for integration, and even if they don't, there is a nice documentation on how to integrate them. The problem is when 3rd party services like Supabase hit you with their paywall and money get involved in the decision making during the early stages of building. Frugality should be a main focus of any poor bootstrapper.

On a gloomy Sunday evening I got the idea of creating a small blogging platform (the one this blog is hosted at), as a repurposed project from what Writings used to be (a writing app). Only this time I did that in a matter of a weekend.

This is when I wanted to create my 3rd project on Supabase. I thought I can solve the problem of having more projects by upgrading to the Pro plan. But that didn't work as expected because there is a thingie that not many, including myself, realize when building on managed services. You don't get to pay only for the upgrade, but also for the compute. If I wanted to continue using Supabase Pro with my modest amount of traffic, I'd still be paying variable cost of about 40€ a month, an amount very affordable, but problematic variability. Any spike, any higher usage, for whatever reason, will be charged. Which opens the question of more maintenance and management, setting up limits, proper architecture (whatever that is) and thinking outside the main focus which is building.

What Supabase does amazingly is solving a series of problems that one does not have as long as they don't look elsewhere. For example, for Writings I'd be using auth, database and storage. If it wasn't for Supabase I would not have thought it's three different services that I had to replace. I had to find a proper authentication that will integrate with my database logic and cheap storage solution.

The holy trinity I chose was: Neon, Clerk and Cloudflare R2. Each of them is a great service, each of them has its own way of integration and making things friendly one to another is not a problem at all.

With Neon, the great thing was that it was super agentic-friendly. Claude could figure out the integration paths easily and in no-time I had the database set. A great perk of Neon is its simplicity, it's basically a psql database, with all cool features other services offer, like managed database, auto-scaling, realtime data streams, database branching, generous free plan, etc. One thing I really love is their simple CLI that just works, especially helpful for agentic coding. Now if you want, one of the features Neon provides is also Neon Auth, which should work well with features like RLS, but it's still basic compared to features a dedicated auth service would provide, like Clerk.

Clerk - a new discovery for me, and a cool 3rd party authentication service, I can say all the great things I said about Neon too in terms of its integration paths and guideline. It literally has the easiest path of integration of the development environment in the app so that you can immediately start using it. Basically it does not need all the configuration the production environment does and skips a lot of that boilerplate, which can be a bit tricky and I will explain why bit later. As part of their integration guides, they provide detailed prompts that one can use to tell an agent to do the integration, and it works like a charm. Clerk is not only an authentication provider in isolation, they do offer a tons of features on top, like for example one I fancy is their bot protection layer. The tricky, yet not problematic, part is that you get used to the easy development environment "space" so much that you might forget to move to production, where things become slightly more complicated. But they do have a nice guide too that helps overcome those challenges. Not as straightforward as the development enablement, but does require an attention span of more than 3 seconds.

Going a bit back, Neon has a nice way to integrate with Clerk. Which I haven't tested, but it should provide the value of having Clerk authenticated tokens being used for their RLS rules.

In a matter of hours I had database and authentication solved outside of Supabase.

That left one more use case, the storage. And I did solve it just like anyone solves problems these days - by asking Claude. And then Claude had spoken "since you use this and this and this, try out Cloudflare R2". Not sure why it paired it with Neon and Clerk but that worked a charm. Another pleasant discovery, and a seriously compelling object storage service. I mean, it's Cloudflare, I'd not expect less, so much like what's said about Clerk, the developer experience here is just top notch. Getting started you create a bucket, grab your credentials, and you're basically up and running. The S3-compatible API means if you've ever worked with AWS S3, you already know how to use it, which cuts the learning curve down to almost nothing. The real kicker though is the pricing model - zero egress fees. They also offer a bunch of extras on top of plain storage, like their built-in CDN integration through Cloudflare's network, which is incredibly handy if you're serving assets to users globally. The part that requires a bit more brainpower is configuring custom domains. Not painful, but definitely not the "click two buttons and done" experience that the initial setup spoils you with. Their docs are solid though and walk you through it well enough.

This experience gave me a perspective of the dependency we build around managed all-in services and the size of Supabase as it is. Can be scary if you think in scale. It's literally a service that many bootstrappers pray to, and there is a reason, as Supabase does all of this for free up to a limit, and they do it amazingly.

However, if the question ever arises what would the logical path to replacing Supabase be, try this out, Neon, Clerk and R2 might give you those answers.