I wrote a SaaS product because the internet made me believe it'd make me rich

I wrote a SaaS product because the internet made me believe it'd make me rich


In May of 2018 I decided I wanted to launch a SaaS product.

There was only one problem.

I'd never worked on, built, designed or even coded a fully fledged web app or SaaS product.

y tho

SaaS was to be the holy grail. A magic money machine that you create once and that spits out money over and over again.

I'd done a lot of reading around the SaaS model and I'd read things like Tyler Tringas' storemapper, IndieHackers, and MakeBook. VC is for losers and bootstrapping is a way of life.

I've always been an entrepreneur and SaaS was the clear path forward. Automated, technical, scalable, x-able y-able, and z-able.

In the Fall of 2017, I'd done a ton of freelancing on the (garbage) website Upwork. Upwork is a bit of a grind. Users can search for a skill they'd like to freelance in ( Cisco Networking, Python programming, Painting Dogs, whatever) and apply for freelance jobs via proposals. The crappy thing about Upwork is that once a job is posted, the heat is on to apply. The longer you let the job sit, the more likely it is that other freelancers will apply for it and get the work. Being early was an extreme advantage, even if you weren't the best fit for the job.

After googling around a bit, I found that Upwork had no way for users to get alerts on new jobs, even though many users requested it. "Hmmm, I thought, a market need". There were, though, countless forum posts and low-quality YouTube videos explaining how to set up alerts via IFTTT and Upwork's RSS feeds feature.

Let's Build

Tyler Tringas had made a tiny store mapper application and scaled it to 50k and sold it. This is hardly complicated. I don't need to do everything, just something simple. I went to a whiteboard and drew my app dashboard. Then I mocked it in some crappy free software I found online. (Now I use Balsamiq for mockups) Here's how it looked:

Cool, yeah, just pop in your RSS feed and decide if you want alerts or not. Simple enough. This was a glorified RSS feed reader. Would anyone even pay for this? Who cares – it's my idea and I want to build it now. #yolo

Secret: I'm not that great of a coder

I'd written some python code to automate things and made a few utilities here and there that I've been paid for. I'd never worked as a bonafide Software Developer at this point. This couldn't be that hard, right?

The advice I'd heard over and over again was to "just ship". Make it happen. Ship the thing. It doesn't matter what language you use. You can use a soldering iron, raspberry pi, and an old Dell Server. Just go go go.

That was actually OK advice. Because I was familiar with python, I decided to learn the Flask web development language. I learned via YouTube videos, books, and this guy called PrettyPrinted.

It was a major pain in the ass. I was okay enough to code some basic Flask but MAN was it a lot of work. I had basic web security in place with things like CSRF but I was hashing my own damn passwords and doing raw SQL calls via psycopg2. Shit was nasty. This was hard.

Forcing myself to SHIP 🛳

From May 2018 to January 2019, I fell between feelings of doubt and motivation. This was so stupid, why was I doing this? It's just an RSS feed reader. Make something else. Don't do it. Don't finish. The resistance was much.

Around December or so I decided I was going to finish this thing, disgusting or not, and launch it to the world, whether they liked it or not. I'm REALLY glad I did.

In January 2019 I launched to HackerNews and some subreddits and the CASH came FLOWING IN. I was on the Lamborghini site trying to decide which color I wanted. 🤑

Nah, actually it didn't go that way at all. Some people were interested and some shot it down. I made literally TENS of dollars. Doesn't matter, I shipped and earned some cool guy points 😎

Tech Stack

My Tech Stack for EarlyBrd.io as of today is:

AWS ec2 (free credits fam, otherwise I'd go DigitalOcean, probably)

Docker-Compose for containers that run the app, scraper, database and a python container that slacks me if all of the containers are not up.

Python's Flask for Web App logic

Postgres

Uptime Robot for Up/Down alerts

Cloudflare for DNS

Lots of Slack Alerts written in Python for system notifications and for new user signups. The feedback loop of new users signing up for your service is very powerful!

I've rewritten EarlyBrd in Laravel (which I love – it's a lot quicker for me than Flask, but that's a story for a different day) and I'll be migrating really soon, I'm just afraid of breaking shit 😬

What's Happened Since

I've kind of just maintained the site since I launched it. Resistance is really hard.

Despite that, I get new trial customers quite a bit, I support the product and fix bugs.

Around December of 2019, I got my first actual customer that paid with zero interaction from me. I actually fielded a support ticket from them because my payment system didn't even work! Despite that, I fixed it quickly and got them up and running. That felt pretty damn good!

My internet friend, Reilly Chase took pity on my soul and became my second customer. He's been an inspiration for me to keep going on this thing! Reilly uses EarlyBrd to find folks who need help with Ubiquiti Wi-Fi gear and tell them about Hostifi. Check out his blog, he's got good stuff.

Learnings

This would be useless to write if I didn't share what I learned

Here it is distilled as best I can:

  • Don't charge 5-10 bucks for your product. It's not really worth it and the customers who pay that are generally cheap-asses anyway. Go for B2B if you can. Freelancers aren't rich.
  • Solve a real need and research it prior to building. Either build something tiny and get feedback or get feedback before you even start building! I stuck with EarlyBrd because I wanted to learn how to write code better.
  • Framework / Language really doesn't matter that much. Choose what you're comfortable with, even if it's PHP. If your project is promising or makes money, you can usually rewrite or make it suck less later.
  • Set a schedule for working on your thing if you have a real job and limited time.
  • Share as much as you can in public (something I'm trying to get better at)
  • Don't hire people for stupid things. Adobe cloud is 20 bucks a month, read a few books, watch a few videos and make simple designs yourself. If your thing takes off, you can always hire for better later.
  • Keep good documentation and keep your stuff organized. You might want to sell your SaaS later on and having things together will make it a lot easier.
  • Put basic monitoring and "playbooks" in place. Back up your database, monitor your service, and keep an eye on things. Give customers good support. It doesn't have to be quick, but make expectations clear between you and your customers.
  • JFS - Just F&*$ing Ship!

Overall, I don't regret building EarlyBrd by any means.

I've used the momentum from EarlyBrd to launch other projects for my own use like LinkPig.co. I've talked about the project in job interviews. I've used it as an "in" to meet other SaaS people much smarter than me. I don't regret it, but it didn't make me rich, exactly.

Maybe I'll get off my ass and promote it more soon... ;-)

This article was translated to Russian! If that's preferable – give it a read:

Я написал продукт SaaS, потому что интернет заставил меня поверить, что это сделает меня богатым