Live data from Hacker News

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

stevehanov.ca

421–430 of 539 posts

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

#421

I think newer developers really need to learn that you can actually do production stuff using bare tools. It is not crazy, especially in the beginning, and it will save you a ton of money and time.

Strongly agree. Forget the savings. Learning the basic tools and understanding how and why the complexity is added (what problems does it solve) is a big one.

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

#422
post #73

Earlier quoted context omitted.

Looks like the overhead is not insignificant: Running 100,000 `SELECT 1` queries: PostgreSQL (localhost): 2.77 seconds SQLite (in-memory): 0.07 seconds ( https://gist.github.com/leifkb/1ad16a741fd061216f074aedf1eca... )

Would be nice to see PGLite[1] compared too 1: https://pglite.dev/

Interesting, but I'm not sure how relevant it would be for a SaaS that on average queries hundreds to thousands of rows.

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

#423
I run a python flask app on Docker on AWS EC2. Including Dozzle (logs), Beszel (monitoring) and Unami (analytics). Runs on three t4g instances. One being a dedicated caddy exposed to the internet, one being a NAT gateway (self managed) and the main Docker worker host (private). All in cost is $35 a month. You’re splitting hairs and being the typical overly frugal developer instead of founder mode if you optimizing dollars when you have $20k / mo revenue.

What do I get as an advantage being on AWS? S3 (literally like a $1 month) SQS (free tier) and Lambda (async jobs; free tier). Capacity if needed, just scale up t4g instances.

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

#424
post #339

Earlier quoted context omitted.

How about pg on Unix socket?

Running 100,000 `SELECT 1` queries: PostgreSQL (localhost): 2.84 seconds PostgreSQL (Unix socket): 1.93 seconds SQLite (in-memory): 0.07 seconds SQLite (tempfile): 0.06 seconds ( https://gist.github.com/leifkb/b940b8cdd8e0432cc58670bbc0c33... )

seems about right

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

#425

Earlier quoted context omitted.

Yeah, 25 years in the industry, zero business ideas right here. I can build whatever, I just have zero clue whatsoever what to build. Never have.

What has your career looked like? I'm interested because I've spent 20 years in applied research and I've only more recently realized the continual stress that I've felt for 20 years from trying (and mostly failing) to innovate in the "what to build" space.

Working for a salary on other people's ideas, LOL. Mostly incredibly boring ones. One interesting ones that fizzled due to too-low investment and too-safe management (odds are it would have fizzled anyway, of course, though I do think if that one had had the eyes of the right investors it probably could have done a "successful exit"—this was like 15 years ago though)

Same as 95+% of people.

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

#426

Earlier quoted context omitted.

> SQLite on the same machine is akin to calling fwrite. Actually 35% faster than fwrite [1]. > This is also a system constraint as it forces a one-database-per-instance design You can scale incredibly far on a single node and have much better up time than github or anthropic. At this rate maybe even AWS/cloudflare. > you need to serve traffic beyond your local region Postgres still has a single node that can write. S…

May be an "out" there question, but any tech book suggestions you'd recommend that can teach an average dev on how to build highly performant software with minimal systems? I feel like the advice from people with your experience is worth way way way way more than what you'd hear from big tech. Like what you said yourself, big tech tends to recommend extremely complicated systems that only seem worth maintaining if yo…

Not specific books per say. Though I'd advise starting with some constraints. As that really helps you focus.

Your reading/learning material can spin out of those constraints.

So for me my recent constraints were:

1. Multiplayer/collaborative web apps built by small teams.

2. Single box.

3. I like writing lisp.

So single box pushes me towards a faster language, and something that's easy to deploy. Go would be the natural choice here, but I want a lisp so Clojure is probably the best option here (helps that I already know it). JVM is fast enough and has a pretty good deployment story. Multiplayer web apps, pushed me to explore distributed state vs streaming with centralised state. This became a whole journey which ended with Datastar [1]. Thing is immediate mode streaming HTML needs your database queries to be fast and that's how I ended up on SQLite (I was already a fan, and had used it in production before), but the constraints of streaming HTML forced me to revisit it in anger.

Your constraints could be completely different. They could be:

1. Fast to market.

2. Minimise risk.

3. Mobile + Web

4. Try something new.

Fast to market might mean you go with something like Rails/Django. Minimise risk might mean you go with Rails because you have a load of experience with it. Mobile + web means you read up on Hotwire. Try something new might mean you push more logic into stored procedures and SQL queries so you can get the most out of Postgres and make your Rails app faster. So you read The Art of Postgresql [2] (great book). Or maybe you try hosting rails on a VPS and set up/manage your own postgres instance.

A few companies back mine were:

1. JVM but with a more ruby/rails like development experience.

2. Mobile but not separate iOS/Android projects.

3. Avoid the pain of app store releases.

4. You can't innovate everywhere.

That meant Clojure. React native. Minimal clients with as much driven from the backend as possible. Sticking to postgres and Heroku because it's what we knew and worked well enough.

- [1] https://data-star.dev

- [2] https://theartofpostgresql.com

There's no right answer. Hope that's helpful.

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

#427
post #162

Earlier quoted context omitted.

Nothing would happen, ssh is designed to be open to the world. Using tailscale or a vpn to hide your IP is fine, but using tailscale ssh maybe not.

Well continuous attempts definitely bogged down my desktop pretty bad. Also, getting OOM on a 64gb machine multiple times a day is quiet annoying. And one simple mistake, and we're screwed

Yeah that sounds quite annoying, but has nothing to do with ssh log noise. Maybe investigate what's causing the OOM. I have multiple 1GB vps with ssh open to the world and they never OOM, and they're obviously not just running ssh. It sounds like you've been compromised.

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

#428
post #351

Earlier quoted context omitted.

There was always tech content. I'd say it was even a more important part back in the days, and it was more diverse. There were always some trends (Ruby on Rails, Rust, etc.) but it was never like these days with LLM-related content which is almost all of the tech content. Because of that I've gone back to Reddit like two years ago, and now spend even more time there than here, which hadn't been the case in almost 15…

Where on reddit? It's even more LLM heavy than HN.

r/programming, awful as it's always been, is trialing a ban on all LLM-related articles on the basis that most aren't really about programming.

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

#429
post #11

I learned nothing. Most of this seems like common basic advice, wrapped up in AI written paragraphs... Initially from the title, I thought it would be about brainstorming and launching a successful idea, and that sort of thing.

I gladly spend $5k a month if I could make $10k. I too need to figure out how to start the "making XXX a month" part.

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

#430

Earlier quoted context omitted.

> for inserts only into singe table with Actually, there are no inserts in this example each transaction in 2 updates with a logical transaction that can be rolled back (savepoint). So in raw terms you are talking 200k updates per second and 600k reads per second (as there's a 75%/25% read/write mix in that example). Also worth keeping in mind updates are slower than inserts. > no indexes. The tables have an index on…

Thank you for clarification, I was wrong in my prev comment. > - [1] An interactive transaction is a transaction where you intermingle database queries and application logic (running on the application). could you give specific example why do you think SQlite can do batching and PG not?

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 could configure PG to only allow one network connection at a time, and get a similar effect, but then you’re paying for MVCC, and a bunch of other stuff that you don’t need.

Post reply on HN