> 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 a Unix domain socket and avoid nearly all of the overhead.
It's not much harder to use than SQLite, you get all of the Postgres features, it's easier to run reports or whatever on the live db from a different box, and much easier if it comes time to setup a read replica, HA, or run the DB on a different box from the app.
I don't think running Postgres on the same box as your app is the same class of optimistic over provisioning as setting up a kubernetes cluster.
senkotoday at 8:52 AM
If this sounds like basic advice, consider there are a lot of people out there that believe they have to start with serverless, kubernetes, fleets of servers, planet-scale databases, multi-zone high-availability setups, and many other "best practices".
Saying "you can just run things on a cheap VPS" sounds amateurish: people are immediately out with "Yeah but scaling", "Yeah but high availability", "Yeah but backups", "Yeah but now you have to maintain it" arguments, that are basically regurgitated sales pitches for various cloud platforms. It's learned helplessness.
KronisLVtoday at 9:09 AM
> I use Linode or DigitalOcean. Pay no more than $5 to $10 a month. 1GB of RAM sounds terrifying to modern web developers, but it is plenty if you know what you are doing.
If you get one dedicated server for multiple separate projects, you can still keep the costs down but relax those constraints.
I put Proxmox on it and can have as many VMs as the IO pressure of the OSes will permit: https://www.proxmox.com/en/ (I cared mostly about storage so got HDDs in RAID 0, others might just get a server with SSDs)
You could have 15 VMs each with 4 GB of RAM and it would still come out to around 2.66 EUR per month per VM. It's just way more cost efficient at any sort of scale (number of projects) when compared to regular VPSes, and as long as you don't put any trash on it, Proxmox itself is fairly stable, being a single point of failure aside.
Of course, with refurbished gear you'd want backups, but you really need those anyways.
Aside from that, Hetzner and Contabo (opinions vary about that one though) are going to be more affordable even when it comes to regular VPS hosting. I think Scaleway also had those small Stardust instances if you want something really cheap, but they go out of stock pretty quickly as well.
gobdovantoday at 7:58 AM
Nice list! I'd say the SQLite with WAL is the biggest money saver mentioned.
One note: you can absolutely use Python or Node just as well as Go. There's Hetzner that offers 4GB RAM, 10TB network (then 1$/TB egress), 2CPUs machines for 5$.
Two disclaimers for VPS:
If you're using a dedicated server instead of a cloud server, just don't forget to backup DB to a Storage box often (3$ /mo for 1TB, use rsync). It's a good practice either way, but cloud instances seem more reliable to hardware faults. Also avoid their object store.
You are responsible for security. I saw good devs skipping basic SSH hardening and get infected by bots in <1hr. My go-to move when I spin up servers is a two-stage Terraform setup: first, I set up SSH with only my IP allowed, set up Tailscale and then shutdown the public SSH IP entrypoint completely.
Take care and have fun!
osigurdsontoday at 8:28 PM
Lots of debate about SQLite vs Postgres. One thing to note is you can certainly run Postgres (Kubernetes even if you want) and your app for $20 / month.
leaves83829today at 6:13 PM
I quite like the websequencediagram. looks like a cool product!
He's mainly talking about the tech implementation which is the easy part.
the hard part of creating a business is finding a problem valuable enough to solve and reaching the users who need that problem solved. that's where the real value is.
f311atoday at 8:17 AM
There are zero reasons to limit yourself to 1GB of RAM. By paying $20 instead of $5 you can get at least 8gb of RAM. You can use it for caches or a database that supports concurrent writes. The $15 difference won’t make any financial difference if you are trying to run a small business.
Thinking about on how to fit everything on a $5 VPS does not help your business.
elwebmastertoday at 7:41 PM
Can OP write another article focusing on the revenue side, how to actually bring in $10K MRR, forget about the tech stack, AI can solve that.
Leomucktoday at 5:31 PM
I do agree that the overall tendency towards cloud has made things much more complicated and expensive than they need to be in many cases. Cloud has its place, but so do simple server instances. Many projects won't reach any kind of scale that would exceed the capabilities of a medium-sized VPS. We're running a page with 600k users at work that could easily fit on a 30€ VPS. Instead, we moved to AWS and are now paying 800€ for it. No benefits whatsoever.
So yea, stick with what worked for decades if you don't see a reason not to.
Also, I remember reading that StackOverflow runs on a bunch of super powerful root servers?
elias1233today at 6:36 PM
With the Oracle Cloud Free Tier you can do this for a whopping $0/month. They give you a 4 core ARM CPU and 24 GB RAM for free, plus 200 GB storage.
taffydavidtoday at 10:14 AM
> I bought a GitHub Copilot subscription in 2023, plugged it into standard VS Code, and never left. I tried Cursor and the other fancy forks when they briefly surpassed it with agentic coding, but Copilot Chat always catches up.
> Here is the trick that you might have missed: somehow, Microsoft is able to charge per request, not per token. And a "request" is simply what I type into the chat box. Even if the agent spends the next 30 minutes chewing through my entire codebase, mapping dependencies, and changing hundreds of files, I still pay roughly $0.04.
> The optimal strategy is simple: write brutally detailed prompts with strict success criteria (which is best practice anyway), tell the agent to "keep going until all errors are fixed," hit enter, and go make a coffee while Satya Nadella subsidizes your compute costs.
Wow. I'll definitely be investigating this!
vxsztoday at 7:52 AM
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.
p4bl0today at 7:35 AM
Just in case, if there are others like me who where wondering what does "MRR" means, it seems to be "monthly recurring revenue".
brkntoday at 8:55 AM
The text feels incoherent to me and lacks some nuance.
It starts about cutting costs by the choice of infrastructure and goes further to less resource hungry tools and cheaper services. But never compares the cost of these things. Do I save actually the upgrade to a bigger server by using Go and sqlite over let's say Python and postgres? Or does it not even matter when you have just n many users.
Then I do not understand why at one point the convenience of using OpenRouter is preferred over managing multiple API keys, when that should be cheaper and a cost point that could increase faster than your infrastructure costs.
There are some more points, but I do not want to write a long comment.
t_mahmoodtoday at 8:17 AM
SQLite is fine, but I have ran Postgresql on a $20 server without any issues, and I would suggest if you have to deal with concurrent users and tasks, Postgresql is the way to go. SQLite WAL works, but sometimes it caused some issues, when you have a lot of concurrent tasks running continuously.
And, not sure I'm correct, but I felt Postgresql has more optimized storage if you have large text data than SQLite, at least for me I had storage full with SQLite, but same application on Postgresql never had this issue
aleda145today at 8:05 AM
Great stack! I'm doing a similar approach for my latest project (kavla.dev) but using fly.io and their suspend feature.
Scaling to zero with database persistence using litestream has cut my bill down to $0.1 per month for my backend+database.
Granted I still don't have that many users, and they get 200ms of extra latency if the backend needs to wake up. But it's nice to never have to worry about accidental costs!
Gooblebraitoday at 9:41 AM
I know this article is about the stack, but I'd like to point out that the success of the author has probably more to do with their marketing/sales strategy than their choice of technical infrastructure.
Something to remind to many tech folks on HN
ianpurtontoday at 8:09 AM
When he switches from Kubernetes in the cloud to Nginx -> App Binary -> Sqlite he trades operations functionality for cost.
But, actually you can run Kubernetes and Postgres etc on a VPS.
See https://stack-cli.com/ where you can specify a Supabase style infra on a low cost VPS on top of K3s.
yoasotoday at 11:28 AM
I'm taking the opposite approach - managed services all the way, and my monthly infrastructure costs are higher than what's described here.
No regrets. Infrastructure isn't the problem I'm trying to solve. The problem is: who's actually going to pay for this?
Optimizing infrastructure before you have customers is like designing a kitchen before you've written the menu. I launched within 72 hours of starting development and went straight to customer validation. The market feedback started coming in immediately.
Infrastructure costs show up in your bill. The cost of slow customer validation doesn't show up anywhere - until it's too late. That's the number I watch.
nerder92today at 1:03 PM
This is supposed to be a contrarian opinion yet this is a retoric yapped non-stop in the “build in public” community. Of course lean is a good approach, it makes sense, and most engineers know this. Is not a new concept, we’ve been doing this for years in every branch of engineering.
The invented “people start with a k8s cluster for 5 users” doesn’t really exist. This is just a story repeated ad nauseam to fit a narrative that help them justify their choices. This position is just as dogmatic, if not more, than the alleged dogma it attempts to disrupt.
Smart technical leaders knows that technical decisions only matter in context never in absolutes. The right answer is always “it depends”.
I can agree that there is a tendency to prematurely optimize infra, as a direct consequence of lack of measuring especially in young busy startups. One could argue that premature optimization might be the smart choice when you don’t have enough data, as in the best case scenario (your startup do well) you’ve saved some time, worst case scenario you’ve lost some money that depending on the situation might be less valuable than time spent in maintaining, and later refactoring, infra.
arc_lighttoday at 6:44 PM
Solid writeup and impressive experience. You can try Caddy instead of nginx. Automatic HTTPS, dead-simple config, and it proxies to your Go binary in about 4 lines. If you're still manually managing Let's Encrypt certs in 2026, stop. Caddyfile for a Go backend is literally: reverse_proxy localhost:8080 — that's the whole thing.
jmward01today at 9:05 AM
The basic premise, try to be lean, is a good one. The implementation will clearly be debated with everyone having their own opinion on it but the core point is sound. I'd argue a different version of this though: keeping things lean forces simplicity and focus which is incredibly important early on. I have stepped into several startups and seen a mess of old/broken/I don't know what it does so leave it/etc etc. All of that, beyond the cost, slows you down because of the complexity. Regular gardening of your tech stack matters and has a lot of benefits.
prakhar897today at 8:11 AM
Do these things actually work? I've seen way too many gurus on twitter claiming to make 10K+ MRR every month. And then they quietly start applying for jobs. or selling courses instead of cashing in.
wg0today at 10:47 AM
Anyone doing per tenant database with SQLITE + Litestream? Please share your experiences and pain points. I know migrations are one. The other challenge is locating the correct database from incoming request. What else?
plommetoday at 1:54 PM
The biggest cost when bootstrapping always seemed to be your salary to me, not infra costs. How long can you pay your mortgage and feed your kids off what should be your retirement or rainy day funds?
poncotoday at 8:33 AM
Always good to challenge the narrative - but I don't pay for RDS Postgres because of the WAL, replication, all the beauty of pg etc. I pay RDS because it's largely set and forget. I am gladly paying AWS to think about it for me. I think at a certain scale, this is a really good tradeoff. At the very beginning it could be overkill, and at the top end obviously its unsuitable - but for most of us those tradeoffs are why it's successful.
firefoxdtoday at 7:59 AM
I was writing about this recently [0]. In the 2000s, we were bragging about how cheap our services are and are getting. Today, a graduate with an idea is paying $200 amounts in AWS after the student discounts. They break the bank and go broke before they have tested the idea. Programming is literally free today.
Similar approach here. I run a side project on Next.js + Vercel (free tier) + Neon Postgres (free tier). Total hosting cost: $0/month.
The one place I'd push back on SQLite: if your app has any write concurrency from external processes (cron jobs, webhooks), WAL mode helps but you still hit lock contention. I have data collection scripts running every 30 minutes that write to the same DB the web app reads from. Postgres handled that cleanly from day one. Neon's free tier is 512MB with connection pooling — more than enough for a side project with real data.
jstanleytoday at 8:09 AM
The most interesting thing in here is https://github.com/smhanov/laconic which is the author's "agentic research orchestrator for Go that is optimized to use free search & low-cost limited context window llms".
I have been doing this kind of thing with Cursor and Codex subscriptions, but they do have annoying rate limits, and Cursor on the Auto model seems to perform poorly if you ask it to do too much work, so I am keen to try out laconic on my local GPU.
EDIT:
Having tried it out, this may be a false economy.
The way it works is it has a bunch of different prompts for the LLMs (Planner, Synthesizer, Finalizer).
The "Planner" is given your input question and the "scratchpad" and has to come up with DuckDuckGo search terms.
Then the harness runs the DuckDuckGo search and gives the question, results, and scratchpad to the Synthesizer. The Synthesizer updates the scratchpad with new information that is learnt.
This continues in a loop, with the Planner coming up with new search queries and the Synthesizer updating the scratchpad, until eventually the Planner decides to give a final answer, at which point the Finalizer summarises the information in a user-friendly final answer.
That is a pretty clever design! It allows you to do relatively complex research with only a very small amount of context window. So I love that.
However I have found that the Synthesizer step is extremely slow on my RTX3060, and also I think it would cost me about ÂŁ1/day extra to run the RTX3060 flat out vs idle. For the amount of work laconic can do in a day (not a lot!), I think I am better off just sending the money to OpenAI and getting the results more quickly.
But I still love the design, this is a very creative way to use a very small context window. And has the obvious privacy and freedom advantages over depending on OpenAI.
gloomydaytoday at 9:01 AM
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.
thibaultmoltoday at 8:03 AM
Pretty sure this is just written by AI... Why else would someone call "Sonnet 3.5 Sonnet and gpt 4o' high end models.
ZeWarentoday at 3:33 PM
I run a dozen PHP (Laravel) / MySQL / Redis apps on a single server which cost 45€ per month.
Applications each have their own FreeBSD jails, so they're isolated.
ZFS incremental replication on top of regular app backups provide a quick recovery process should the hardware of that machine fail.
Moving those apps to the cloud would cost orders of magnitude more, for benefits I don't need.
skeeter2020today at 1:14 PM
I get that the focus of this article is on the tech portion, but I don't know anyone pitching today (aside from OpenAI) who is asking for big funding for the tech costs. It doesn't really matter if you built a system that costs you $200/month or $20/month if your lifetime value is $1000 and CAC is only $10 but you've got no money. That's what people want to fund. VC funding is gasoline you pour on a fire (or fuel for you rocket if you're being charitable) - it makes you go faster; a pitch that focuses on "slightly lower monthly op costs" is not attractive.
shireboytoday at 12:44 PM
This is my life goal right now. I have a bajillion ideas, know how to code them (even faster now), and just not enough time due to day job. A few questions:
How do you market them?
Is customer support an issue?
Do you see risk since ai makes it so easy to build/copy?
dwa3592today at 3:40 PM
>>The optimal strategy is simple: write brutally detailed prompts with strict success criteria (which is best practice anyway), tell the agent to "keep going until all errors are fixed," hit enter, and go make a coffee while Satya Nadella subsidizes your compute costs.
100% agreed.
ronbentontoday at 10:01 AM
I want to know how he’s identifying and monetizing businesses
BobBagwilltoday at 12:13 PM
Modern tech stacks always remind me of this cartoon:
Would be handy to actually see what these companies do…
cagztoday at 8:11 AM
Nice tech read, but without information about which companies, doing what, just feels way too click-baity.
cmiles8today at 11:54 AM
The biggest risk to cloud revenues is that everyone wakes up and realizes they could slash their cloud bills by 60+% quite quickly with just some minimal leaning.
hackingonemptytoday at 7:32 AM
> If you need a little breathing room, just use a swapfile.
You should always use a swap file/partition, even if you don't want any swapping. That's because there are always cold pages and if you have no swap space that memory cannot be used for apps or buffers, it's just wasted.
pdimitartoday at 11:37 AM
I do appreciate the technical simplicity argument and I'm always advocating for it. And the few neat tricks i.e. Copilot.
That being said, I'd much rather read a few ideas for good recurring passive income. Instead, the author kind of flexes on that, then says "I get refused VC money because they don't see how their money would be useful for me" -- which is one more flex -- and moves on to the technical bits.
It's coming across as bragging to me.
pelorattoday at 9:17 AM
This is how every website used to be run before everyone fell four the cloud trap.
nodesockettoday at 7:56 PM
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.
the__alchemisttoday at 1:26 PM
I concur with some of the commenters that this read as a bit of a brain dump. It has a thread connecting several loosely-related topics.
Observation #1: You can also solve the tech stack problem with Heroku. I think the author's stack probably has a steeper learning curve, but is a cheaper option. I think it's a bit of an odd comparison (I won't say straw-man, as I don't doubt some people do this) to go from a fully-controlled simple setup to using AWS with a pile of extra crap. You can also, for example, run something similar to what he or she is describing on AWS, Heroku etc. (I.e. without the things in the AWS diagram he indicated like kubernetes and load balancers.)
Observation #2: I have not found WAL mode is an antidote to SQLite locks during multiple concurrent writes. (This is anecdotal)
I think regarding Go vs Python/Ruby etc. I completely get that. I would now like to check out Go on web. I use Rust for most of my software writing, but am still on Python for web servers, because there is nothing I can use for Rust that is as powerful and easy as Django.
WolfOlivertoday at 10:08 AM
20$ vs 300$ does not really matter if you have multiple 10K MRR.
mstaorutoday at 8:56 AM
While I applaud the acumen, this reads like watching a kid standing on the 3rd floor balcony shouting "look what I can do!"
$20/month. Yeah. Great, but why? You get a lot of peace of mind with "real" HA setup with real backups and real recovery, for not much more than $20, if you are careful.
Another half of article is about running "free, unlimited" local AI on a GPU (Santa brought it) with, apparently, free electricity (Santa pays for it).
niedbalskitoday at 3:14 PM
Truth has been told.
peter_retieftoday at 1:45 PM
AWS is not value for money, I do have a DO account that is great but my development is mostly hosted locally with tunnels from cloudflare, it is remarkable how far you (I) can get with that setup.
ilikestarcrafttoday at 1:04 PM
One thing that I noticed was the mention of Claude 3.5 Sonnet or GPT-4o as cutting-edge models when the blog was written 25 days ago. This sadly makes me suspect that this was written by a LLM instead of a person...
podlptoday at 10:51 AM
I love SQLite and have ran it even on networked drives with queued writes for read-heavy applications. It’s an incredibly robust piece of software that’s often cost me pennies per month to serve 100k+ monthly users. But there’s definitely a time and place for solid, dedicated database servers like Postgres.
ilikestarcrafttoday at 1:04 PM
One thing that I noticed was the mention of Claude 3.5 Sonnet or GPT-4o when the blog was written 25 days ago. This sadly makes me suspect that this was written by a LLM instead of a person...
stavrostoday at 10:47 AM
Forget about the tech stack, how do I get multiple $10k MRR companies?
jjjgggggggtoday at 12:34 PM
Where do you get your eh-trade.ca stock price data? Given the licensing fees, that seems like one of the greater challenges of bootstrapping anything with market data.
xxxxxxxxtoday at 11:17 AM
This is similar to what I do. Linode, Debian, Go, HTMX, SQLite (with modernc.org/SQLite so I have no CGO dependency) and Caddy. If I have apps that need a lot of storage, I just add an S3 bucket.
44za12today at 8:18 AM
I read it as an article in defence of boring tech with a fancier/clickbaity title.
Here’s the more honest one i wrote a while back:
This is really what 10k mrr can get you? A badly designed AI slop website that isn't even mobile correctly compatible. The logo is white background on black website like a university project.
I can't believe that people are willingly spending money on this.
deletedtoday at 9:33 AM
pipeninjatoday at 7:22 PM
Dude you are my spirit animal. Ive been building lean like this forever and thought I was the only nutcase out there...I too have had the same pitch problems as you, when a platform is hella efficient and there is no spending to be had on fixed assets, its not very appealing to investors.
krypttttoday at 10:52 AM
We have gone full circle haven't we?
diebillionairestoday at 2:49 PM
Agree with a lot of this except sqlite, and the fact that if I commit to building something I typically put it in the cloud with basic scaling from the start for efficiency.
Myzel394today at 9:22 AM
Does anybody know a good service to self host Ai? My graphics card is shit, I want to rent hardware to run my own models
> Here is the trick that you might have missed: somehow, Microsoft is able to charge per request, not per token. And a "request" is simply what I type into the chat box. Even if the agent spends the next 30 minutes chewing through my entire codebase, mapping dependencies, and changing hundreds of files, I still pay roughly $0.04.
Really? Lol. If it's true why would you publish it? To ensure Microsoft will patch it up and fuck up your workflow?
esskaytoday at 10:06 AM
It always make me both roll my eyes and smile a little when i see someone daft enough to think they need some obscene setup - you dont. You never have. You are not Amazon, Microsoft, Google, etc. If you get to the point where you need that kind of setup you're already employing a dev ops team thats telling you that.
Stick whatever you're working on onto a ~$5/mo cheapo vps from someone like Hetzner, Digitalocean, etc and just get on with building your thing.
dnnddidiejtoday at 7:56 AM
Is infra where investors money is going? I imagined salaries would be it. Marketing costs maybe.
bradortoday at 7:53 AM
You already have and had everything you need to scale the business to max and it hasn’t happened so more money won’t help.
What do you want VC to do?
You didn’t bring a plan.
ValtteriLtoday at 8:38 AM
>The feedback was simply: "What do you even need funding for?"
Not clear from the text, but what was your plan using the funding on? If you did not have a plan, what did you expect? VCs want to see how adding more money results in asymmetric returns.
phendrenad2today at 5:10 PM
This seems extremely spartan. Live a little, splurge on the 2GB server and MariaDB instead of SQLite!
hirako2000today at 10:43 AM
Very interesting insights on long running Llms locally.
Edited.
m00dytoday at 9:59 AM
I think making is the easiest part, would be really cool if you also reveal how you distribute what you are making for $20/mo.
nickandbrotoday at 3:52 PM
Pieter levels would love this.
sailingcodetoday at 8:06 AM
AI has solved the "code problem", but it hasn't solved the "marketing problem"…
petesergeanttoday at 8:23 AM
If you can’t articulate what you need funding for, don’t be surprised if nobody will give it to you?
blurb2023today at 9:46 AM
well, the guy runs what he runs and can't complain
nulloremptytoday at 12:06 PM
Eh-trade.ca eh? The name spells the exit strategy this is seeking. Awesome idea and a great execution. Vertical scaling will take this simple setup far and probably far enough.
deletedtoday at 9:24 AM
deletedtoday at 8:44 AM
petesergeanttoday at 8:22 AM
You can get all the advantages and almost none of the constraints by buying a bigger base server for $50/m
traderteftoday at 6:00 AM
Not my website. I found this interesting.
turdfergusonsrtoday at 10:13 AM
eh the super low cost only comes from low complexity. If complex, people pay more, features cost more, infra costs aren’t that big of a cost compared to dev time.
globalnodetoday at 8:06 AM
nice article, validates some of the things i already thought. although im sure things like aws and database servers etc are still useful for big companies
Madmallardtoday at 8:32 AM
So is the slopaclypse gonna destroy HN too? 2nd from the top AI written non-proofread article
jimmypktoday at 4:18 PM
[dead]
sanghyunptoday at 9:17 AM
[dead]
joongixtoday at 11:12 AM
[dead]
6stringmerctoday at 8:35 AM
What a fascinating article. I especially love the part about writing extremely detailed requests which only cost $0.04 versus the token approach most “vibe code” devs use. Fortunately his tactic is almost impossible to emulate for 90% of the YCombinator audience / HN commentators.
Why do I know this? Because there had to be a declaration here to stop using ChatGPT and other Agents to write YOUR OWN GODDAMN POSTS. Thinking isn’t your strong suit, Greed is, and taking the time to learn the power of English doesn’t satisfy the latter, so you minimize it to your own detriment.
This guy is not at my level and multiple $10k MRR is possible but unlikely.
deletedtoday at 8:19 AM
codemogtoday at 7:34 AM
A lot of this advice is good or at least interesting. A lot of it is questionable. Python is completely fine for the backend. And using SQLite for your prod database is a bad idea, just use Postgres or similar.
komattoday at 7:30 AM
Cool but missing the Claude Code or Coding Agent part imo