Tech News
← Back to articles

Why building a self-hosted SaaS is harder

read original related products more articles

In the 90s, we flew in technicians to install Oracle databases in server basements. Today, Supabase spins up a backend, in seconds, for free.

Over the past 30 years, software has gotten faster, cheaper and easier in almost every way.

Some engineers might miss 24-month cycles of tranquil coding, but nobody wants to do code reviews over email or contort software to run on a 10 year-old server rack your eighth-biggest customer is still using.

As an open source SaaS startup, we need to be able to do both: Ship quickly while also offering a self-hosted version.

This makes shipping updates harder because customer instances are a black box. We have no way to know what jobs a customer has running. This is especially difficult because no two customers use Lago the same way. One customer might aggregate usage data in real-time while another does so monthly.

Even low-risk fixes like renaming a database column can break a billing run when a job is currently using that data.

But as a startup, we need to ship quickly and frequently. In this piece, I want to explain how we balance the two: Shipping quickly without neglecting self-hosted customers.

Before the details, let’s answer a valid question: Why go through the pain of offering self-hosting?

C’mon, it’s 2025. Why even offer self-hosting?

Just about everything has moved to the cloud. If you shut down AWS, Azure and GCP, you’d shut down the software business.

... continue reading