Live data from Hacker News

I run multiple $10K MRR companies on a $20/month tech stack

stevehanov.ca

441–450 of 539 posts

Re: I run multiple $10K MRR companies on a $20/month tech stack

#441

Earlier quoted context omitted.

My understanding is litestream can lose data if a crash occurs before the backup replication to object storage. This makes it an unfair comparison to a Postgres in RDS for example?

Last I checked RDS uploads transaction logs for DB instances to Amazon S3 every five minutes. Litestream by default does it every second (you can go sub second with litestream if you want).

Yes but there is still a (small) window where confirmed writes can be lost

Re: I run multiple $10K MRR companies on a $20/month tech stack

#442
All the title is telling me is that [M|A]RR has been so abused, they stopped making any sense.

A company selling dollar for cents would have infinite MRR, doesn't make it a "business", let alone a good business.

Instead, tell us how much do you make in profit/month, not your gross MRR.

Re: I run multiple $10K MRR companies on a $20/month tech stack

#443
post #430

Earlier quoted context omitted.

Not the person you are responding to, but sqlite is single threaded (even in multi process, you get one write transaction at a time). So, if you have a network server that does BEGIN TRANSACTION (process 1000 requests) COMMIT (send 1000 acks to clients), with sqlite, your rollback rate from conflicts will be zero. For PG with multiple clients, it’ll tend to 100% rollbacks if the transactions can conflict at all. You…

In your example, clients can't have their own transactions? You commit/rollback all requests for all 1000 clients together?

Sqlite supports nested transactions with SAVEPOINT so each client can have their own logical transaction that can be rolled back. The outer transaction just batches the fsync effectively. So an individual client failing a transaction doesn't cause the batch to fail. But, a crash would cause the batch to fail. Because, it's a single writer, there's no rollback/retries from contention/MVCC.

You could try to imitate this in postgresql but the problem is the outer transaction does not eliminate the network hops for each inner/client transaction so you don't gain anything doing it and you still have the contention problem which will cause rollbacks/retries. You could reduce your number of connections to one to eliminate contention. But, then you are just playing sqlite's game.

Re: I run multiple $10K MRR companies on a $20/month tech stack

#444
post #256

Earlier quoted context omitted.

Sqlite smokes postgres on the same machine even with domain sockets [1]. This is before you get into using multiple sqlite database. What features postgres offers over sqlite in the context of running on a single machine with a monolithic app? Application functions [2] means you can extend it however you need with the same language you use to build your application. It also has a much better backup and replication st…

FYI, the color gradient on your website is an easy tell that it was vibe coded: https://prg.sh/ramblings/Why-Your-AI-Keeps-Building-the-Same...

It's funny, we're now trained to see these things where they can't possibly ever have been (like in this case with the 11 year old blog). It's as if we all collectively forgot that whatever the LLMs are doing comes from somewhere, so it's obviously going to be found out in the wild.

Re: I run multiple $10K MRR companies on a $20/month tech stack

#445

Earlier quoted context omitted.

Last I checked RDS uploads transaction logs for DB instances to Amazon S3 every five minutes. Litestream by default does it every second (you can go sub second with litestream if you want).

Yes but there is still a (small) window where confirmed writes can be lost

Right and that window is bigger for RDS by the looks of it.

Re: I run multiple $10K MRR companies on a $20/month tech stack

#446
The real insight here isn't SQLite vs Postgres or VPS vs cloud – it's that for most indie/small SaaS, your bottleneck is never infrastructure. It's finding customers, keeping them, and shipping fast enough to stay relevant. I've seen teams spend weeks setting up Kubernetes for an app that serves 50 requests per minute. The infrastructure complexity doesn't just cost money – it costs cognitive load that could go into product work. The one thing I'd add to the article: this approach works brilliantly until you need a second engineer. The moment you're not the only person deploying, you need at least some reproducibility – even a simple Makefile and a documented deploy process goes a long way.

Re: I run multiple $10K MRR companies on a $20/month tech stack

#447

The real insight here isn't SQLite vs Postgres or VPS vs cloud – it's that for most indie/small SaaS, your bottleneck is never infrastructure. It's finding customers, keeping them, and shipping fast enough to stay relevant. I've seen teams spend weeks setting up Kubernetes for an app that serves 50 requests per minute. The infrastructure complexity doesn't just cost money – it costs cognitive load that could go into…

Looks like this may be on the wrong parent post!

Re: I run multiple $10K MRR companies on a $20/month tech stack

#448

Earlier quoted context omitted.

When I was a consultant we would plan out 25 piece cloud deployments for little pie in the sky apps that would never see more than 200 users. Everyone has been trained that 'cloud' means a lot of expensive moving parts and doesn't stop to plan their deployments beyond that.

Digital ocean has Kubernetes ffs. It's all of five minutes to write a deployment yaml and ingress and have literally anything on the web for a handful of dollars a month. I've written rust services doing 5k QPS on DO's cheapest kube setup. It's not rocket science. Serverless node buns with vite reacts are more complicated than this. Ten lines of static, repeatable, versioned yaml config vs a web based click by click…

It's like the old Herman cartoon - "Sure I could sell it to you for $50, but wouldn't you rather have a $5,000 painting?"

People often don't like admitting that their project does not require a rocket and the associated scientists. Often even Kubernetes and friends is a bridge too far for what is realistically a single-page PHP app.

Re: I run multiple $10K MRR companies on a $20/month tech stack

#449

> The enterprise mindset dictates that you need an out-of-process database server. But the truth is, a local SQLite file communicating over the C-interface or memory is orders of magnitude faster than making a TCP network hop to a remote Postgres server. I don't want to diss SQLite because it is awesome and more than adequate for many/most web apps but you can connect to Postgres (or any DB really) on localhost over…

Sqlite smokes postgres on the same machine even with domain sockets [1]. This is before you get into using multiple sqlite database. What features postgres offers over sqlite in the context of running on a single machine with a monolithic app? Application functions [2] means you can extend it however you need with the same language you use to build your application. It also has a much better backup and replication st…

I've slowly evolved from just writing to and looking up json files to using SQLite, since I had to do a bit more advanced querying. I'm glad I did. But the defaults did surprise me! I'm using it with php, and I noticed some inserts were failing. Turns out there's no tolerance for concurrent writes, and there's no global config that can be changed. Rertry/timeout has to be configured per connection.

I'm still not sure if I'm missing something, since this felt like a really nasty surprise, since it's basically unusable by default! Or is this php's PDO's fault?

Re: I run multiple $10K MRR companies on a $20/month tech stack

#450
post #376
post #365

Earlier quoted context omitted.

Yes! Why build a backup process before you know you have data worth backing up.

Why go live if you don't have a reasonable expectation of users? Worrying about HA when you don't have customers that need it is one thing, but I wouldn't want to be in a place where I have to put a banner on the website asking users to please make a new account because we had an oopsie.

To be fair, there's a big difference between "we do periodic backups" and "we can restore to any millisecond since product launch.
Post reply on HN