Written May 10, 2020.
It’s early 2019. Looking for places to host my apps, I have the idea for a cheaper, faster and easier Heroku alternative.
I found Heroku’s $7 / dyno pricing crazy as for the same price you could have a VPS with 5x the power / RAM if you knew where to look.
Then you add the database, usually that meant using an external service with expensive resources and added latency.
Most database uses aren’t heavy, so having the DB live on the same machine as the app is fine for most use-cases (at least for a couple bucks a month).
My ideal PaaS would have:
Hereby, in the start of 2019, I started working on it while visiting my brother in Paris.
After 3 days of hacking, Backery’s MVP was born (I always sucked at naming).
The idea was pretty simple.
I made scripts to spin low-cost VPS instances (hosted on Scaleway & Hetzner) and install dokku over them.
A small Python server was used to control the instances from Backery’s side.Then, I built a simple dashboard that communicated with dokku via the Python server.
It basically abstracted over dokku + a few of its plugins, and made it easy to add databases, deploy zip archives and a few others nice-to-have like generate HTTPs certificates.
My masterplan was to first validate the demand with solo developers, then move to targeting agencies with a referral program to incentive them to use Backery for hosting their client’s projects with a revenue sharing.
I launched on Hacker News, expecting to get roasted the fuck out, but to my surprise it went good.
Ready to answer HN comments after a surf session in Bali
It brought a few thousand visits, about 200 signups, ~20% of which actually went past the credit card step.
Google Analytics during the HN launch
After that, I shared the projects online on a few places (Quora posts worked great).
Growth kinda died although there was constant stream of new users from the online content.
I started working on a new project shortly after, thinking that I’d keep improving this one incrementally but my interest in the project dipped after I started understanding the issues.
Small margins means high volume. With an average $5 / app / month margin, that means I had to host 1000 apps just to make $5000 monthly.
As the pricing was the biggest selling point, I couldn’t just increase it 5x overnight.
I removed the lowest $3 / app / month plan, which helped a bit, but it was obviously the one that attracted most people. Big spenders are usually savy enough to go with cloud providers directly.
That, plus the fact that it’s a highly crowded market means it would have required a full-time marketing effort (a lot of content marketing) to make it work.
high volume = more support
I had to do a lot of support to help people prepare their apps for hosting, accounting for their weird use-cases, using languages I wasn’t very familiar with.
I spent a lot of time on this, to win people that ended up bringing at most 5 bucks a month. Not worth it.
Having a good documentation helps, but it’s really hard to cover all those specific use cases and environments that developers use.
On a note, the positive side for support is users were developers: they understand tech.
The straw that broke the camel's back and led me to abruptly close signups was abuse.
A good fine morning, I woke up with a billing alert from Hetzner (it was just the 5th of the month).
A handful of accounts, with shady emails, were signing up and creating apps in the highest Performance plan (8 cores dedicated, 32gb RAM , 250gb SSD) .
Problem was, billing was done at the end of the month, after metering the usage. So I tried adding mandatory payments if the monthly usage went over $13
They probably used virtual cards with tight limits, because of course the payments failed.
I even received a couple copyright notices along with a threat to disable my Hetzner account (which hosts all my other stuff).
Running seed-boxes on my servers. At least do something useful…
Of course I couldn’t just delete the app after a payment failure because we don’t want true users to lose data if payments fail.
That gave them a few days runway (which was costing me a lot), and they kept re-creating accounts after their apps got deleted.
I could have probably beaten those bots with a tighter Stripe Radar integration, a system of upfront billing and reputation for big-resources apps, but didn’t want to invest more time on this at this point.
I once was on the other side of this (made bots for creating Google Cloud and AWS accounts - that’s a story for another time) and I know the witch-hunt can go deep down the rabbit hole if these guys are motivated enough.
Overall it was a good learning experience and something fun to experiment with, without sinking too much time into it either.
In hindsight it’s pretty obvious that the business model couldn’t work to satisfying scale without raising $ but I’m glad I gave it a shot anyway.
I never see those failures as a waste of time but as coins added to a chest of experience.
Now to the next one :)