Lesson: Your time is the most valuable resource, so get comfortable spending money to save it.
Or in other words, Don't Cheap Out.
When I started, I really had it stuck in my head that I wanted timestamps.fm to run for free. Other than the domain, I wanted to run on some cloud free tier and be a widely used service that didn't need to charge, because it had no costs.
This led me to my first big mistake.
I initially set up on Heroku's basic hobby plan ($7 /month).
"This isn't sustainable" I thought (still in "free web app" mindset), so I made plans to port over to Google Cloud (I was already using their S3 equivalent) because they had a nice looking free tier. The I could run my app for free, "sustainably"!
What I thought would be a couple hours of rewriting config files and porting the app evolved in 50-60 hours of constant pain and debugging.
I first investigated Cloud Run - Google's serverless container platform. You get millions of invocations for free, so this was potentially a good fit for my simple, stateless utility app. It ended up being a lot of overhead to generate container images, and deploy them, and inexplicably, logging to stdout seemed broken.
I then moved to App Engine, which seemed like a better fit, and said it's a good fit for applications "Intended to run for free or at very low cost, where you pay only for what you need and when you need it" . Did you say free? Sign me up.
Here's what happened next that eventually drove me off the platform:
All of this was time spent purely on backend infrastructure tasks that did absolutely nothing to drive the product forward.
If I conservatively value my time at $30/hr, I spent 50hr * $30 = $1500 on this. With Heroku hobby tier being $7, I could have run my app for 214 months, or 18 years, with the time I wasted on Google Cloud.
For much of that debugging, I was convinced I was always just around the corner from a nice, free infrastructure, but things just kept coming up.
I ultimately decided to move back to Heroku and am now gladly paying the $7 / month for infrastructure that just works. This move has paid off time and time again, as I've done more infrastructure tasks like setting up a staging environments, which I've been able to do quickly so I can get back to driving the product forward.
I have definitely learned my lesson. Your time is the most valuable resources as an early founder, and it's worth every penny to invest in saving it.