AWS is massively overcomplicated for an indie SaaS business, and it costs way, way too much.
You can have a box with plenty of room for $5 - $10 / month and it takes about 25 seconds to launch it.
I had 20k concurrent users with a $5 server and Cloudflare. Other people are using serverless solutions, which drive the price even lower.
The author stated as much: keep it simple and boring. He thought he was going boring for a SaaS, but he went way too exciting for what an indie SaaS needs.
So instead of talking with customers and growing your business you are busy wasting your time installing a web server, database server, configuring build tools, etc?
Getting root access to a barebones linux install is conceptually "not complex". But that is only because it pushed all the actual complex stuff up the food chain and into your head. A head that needs to be thinking about everything but how to configure apache or the load balancer or postgresql.
> keep it simple and boring
Installing a web server from a package manager and configuring it in a repeatable way is not simple and boring. A single person startup doesn't have the bandwidth to do that.
I'm not trying to be rude, just genuinely curious if I'm missing something complex that could be making my services less secure.
Every second you spend configuring web servers and stuff is a second you should be spending adding value to your business.
Cloud has much value but please dont' consider it a panacea.
You can get a lot of value out of those 30 minutes installing a webserver; and it can save you a significant amount of cost.
Not to mention when you want to actually scale you'll see the reason why pretty clearly, unlike in cloud providers where inefficiencies can just suck up money until you notice.
And I definitely take exception to the "every _second_ you spend doing something other than business is a waste" because by that logic I shouldn't use the bathroom or take time to have a coffee.
Your goal in a startup shouldn't be all about saving money like some cheapskate penny pincher. Penny wise, pound foolish.
Worrying about $100/mo in heroku bills instead of $10/mo "bobs budget webhost" bills is a waste of time. If your startup cannot afford $100/mo or even $1000/mo in infrastructure costs you probably should exist. Especially given smartly spent infrastructure costs (eg: using heroku) let you deliver value far faster than cobbling together infrastructure yourself.
Penny wise, pound foolish.
A dollar saved is a dollar earned. AWS is a terrible choice unless you have a huge amount of free credit. Also, an income of $4000/mo puts you into the average American household income bracket. Why would you throw away 25% of that on infrastructure to save 2 hours on the front end?
Not every startup needs to be the next Instagram. There are tons of people out there happy with their small and medium sized SAAS companies which have allowed them to leave the rat race.
Source: I worked there for years until very recently for this reason.
And then, every 4 to 8 months you'll spend some 2 hours making sure everything is working right and up to date. If you get into another user-base class (like, from 100 to 1000, or from 1000 to 10000), you will spend all those 3 days again.
Compare that with cloud services, where you'll spend a week up-front, and 2 days at random when something changes. But well, that comes with the bonus of a much higher price and a slower development speed.
There is the safety to know that you can move between user-base classes without any cost. You'll just be taken by surprise when it actually happens and you discover that those 3 days are a rounding error compared to what it costs to update your software.
If you go big and realize an IaaS solution is right, great, you are ready to go on to IaaS with no trouble
If you IaaS from the beginning, you've cornered yourself and have to build your way out.
You are not ready to go IaaS with no trouble if you've already built your own. It's just as hard to do that as going from IaaS to your own custom infrastructure!
Your first paragraph is exactly what the OP of the article did who is now writing about how it failed.
Oh come on. It takes maybe an afternoon of work to do everything you’ve described.
Let’s say you’re utterly clueless about all aspects of sysadmin, and you need to learn how to do it from scratch: 2-3 days, tops.
No matter how much you pad the schedule, it’s far worse to have to learn 5-10 “managed solutions” to do what you can do on a single VPS with an Ubuntu install.
Can you do it all with something like heroku? Sure, but you’ll probably spend at least an afternoon learning heroku (speaking as someone who has extensively used heroku, it’s not a panacea.)
If I heard this objection in the real world, from a dev who worked for me, I’d be seriously reconsidering my hiring decision. You’re either irrationally afraid of basic syadmin, or you lack fundamental knowledge.
LOL. Good developers are the most lazy people on the planet. Laziness is a virtue, not a sin!
If my developer told me our company could outsource all our sysadmin tasks to some third party I'd be a fool to not listen. If I was a developer and my boss called me lazy for trying to help the company move faster (which is far more important for a startup than saving a few bucks) because boss-person is a penny pincher, I'd reconsider my choice of employer.
A startup focused on pinching pennies is doomed from the start.
If you've hit a seam such that each feature you develop nets you more revenue, you'd be a complete idiot to optimize for costs. But a company in search of a business model hasn't gotten that far yet.
This mantra that good engineers are universally lazy is absurd. I absolutely will find the easiest way to solve a problem... as long as that problem can tolerate that solution.
IaaS is a minefield and plainly saying IaaS >> barebones is absurd.
Engineering 'magic' is great until you realize you need something slightly different but you are locked into their framework, system, whatever. You then have to spend a bunch to engineer yourself out and end up with an inferior solution when you could've just done it 'simple' the first time.
An early engineer should have zero trouble pulling up an Ubuntu box, installing Nginx and Supervisor and pulling some default configs from StackOverflow. I have been re-using the same config for both for years now.
A great developer doesn't ask his boss to hire a third party to manage the server. They ask the boss to hire someone in house because getting anything non-basic done over trouble tickets is a non-starter. A great developer can handle pinching pennies because they use open source at home.
Indeed, which is why there were no web startups before about 2010.
Something that's more geared towards getting you up and running quickly (eg Heroku) might be another story.