My First SaaS: 7 things I learned

In this post I discuss 7 things I learned while building my UniFi controller hosting platform, https://hostifi.net. In its first 5 months it has gone from 0–85 customers.

I’ve also written about Choosing the Tech Stack, Defining the MVP, Building the MVP, 9 Tech Platforms HostiFi depends on, how we got our first 10 customers, and 20 Marketing Platforms we use.

If you’d like to follow my journey as I grow my first SaaS business, you can follow me on Medium, and Twitter:

1. Complete the entire MVP and launch in 30 days or less

You have to force yourself to make a list of the absolute minimum amount of features required in order for someone to be willing to pay money for your SaaS, and build only that. It is a hard thing to do, because often the MVP is not something to even be very proud of, and is just a tiny piece of the actual vision for the product.

But launching an MVP in 30 days or less is extremely important. Even the simplest SaaS idea can be a huge undertaking — you have to pick a tech stack, deal with user registration, design a landing page, setup subscriptions, integrate a payment processor, come up with a marketing plan, all of this before you even begin working on your actual idea.

It can be very overwhelming, and without a clearly defined MVP and a timeline, it is easy to get buried in the code for months, eventually losing interest and moving onto a new project.

2. Don’t tell anyone you are working on it until after you release

I didn’t follow this because I read about it after I had already started working on HostiFi and had already told my friends, but I plan to follow this principle on my next project. It’s a psychology hack — when you tell people about the company you are working on, they congratulate you, and you get this kind of false sense of accomplishment for not having actually done anything of value yet. So much so that you might even slow down because your brain has already rewarded you for doing nothing.

On the other hand, if you don’t talk about your project until it launches, you delay that gratification and it can become a motivator — I want to finish this thing, because if I don’t then it’s like it never happened to begin with.

3. Don’t pay for a logo or any branding materials

Here is HostiFi’s logo:

I literally spent $0 and about 15 minutes making HostiFi’s logo in GIMP. I have no graphic design training or artistic abilities.

I paid a design firm $1,500 to create a logo for my first IT services business, Locklin Networks.

I also paid $300 for Locklin Networks polo-shirts, and $100 for extra thick business cards. Waste of money. None of that is needed, especially for a SaaS business.

Learn to create a simple text logo in GIMP, or just use plain text, that’s it. Your customer doesn’t care about the logo, only you do. This was great advice that I learned from the Micro-SaaS Ebook.

Another reason for this: you might go through several ideas before one gains some traction and proves to be a viable business, don’t waste your time with any unnecessary spending of time or money on marketing or branding materials.

4. Find what is going to motivate you to not give up

When you start your first SaaS, you will probably lose motivation and give up a few times before launch. It happened to me. What’s going to keep you going when you’ve sunk hundreds of hours and or dollars into a product that’s generating nothing or next to nothing in income, and now you’ve just hit a huge programming hurdle that makes you rethink the entire concept of what you started out to do?

For me, I think of it this way — if this project completely fails and I can’t get a single customer, was it still worth my time? The answer is usually yes — I am learning skills in programming, business, and marketing, which are valuable and transferable to my next business.

5. Automate as little as possible, at first

What absolutely must be automated? Be realistic. If its going to take a week to figure out how to add a button for customers to be able do something — cancel a subscription, reset a password, upgrade to the higher package subscription, skip it. You can do it manually for a long time, until you have so many customers you literally can’t keep up with the manual task, then you can automate it. Until then, make the button trigger a pop up that has a message “Please email us to do this, and we will take care of it ASAP”

Later on, automation will be the key to profitability and save time. But at first, automate as little as possible. The goal is make the solution as fast as you can, launch the product, and get customers. You haven’t proved that this is idea is worth your time yet, spend as little time as possible building the MVP.

Only automate when it becomes absolutely necessary.

Here is an example from HostiFi right now — I wrote a script that backs up all the servers to a DigitalOcean Spaces bucket (similar to AWS S3). It’s working right now, but I didn’t finish writing the part that should check for backups older than 30 days and delete them in order to keep the size down. In a month I will either log in and do it manually, or finish writing the script. But by putting it off, I can focus on growing the business and more pressing issues.

6. Don’t worry about writing terrible quality code, just make it work

I’ve never been employed as a programmer. I am self taught with about three years of programming experience, a basic understanding of OOP concepts, databases, front-end stuff. No computer science degree. I write terrible, ugly code, and I know just enough about programming to know that my code sucks.

I rarely write my own functions or classes when programming. I just straight up “make stuff happen”. Usually consecutively rather than in parallel. I’ve never written a test case. For debugging, I print things like “Something bad happened here…” to the console.

One thing I do give attention to is security. But other than that, as far as optimizing, writing less lines of code, making it DRY, I don’t do any of that, I hack it together, copy and paste chunks of code, debug with my print statements and keep trying until it works. I’m not even using git right now. The code won’t scale. If we get more than a few orders per minute, it will completely bottleneck the system.

But I don’t have that problem yet (unfortunately), so I will worry about it when I have to.

Nobody knows that my code sucks (well my secret is out now), but my customers don’t care. Because that pile of code does exactly what its supposed to — build cloud hosted UniFi servers with 24/7 monitoring, nightly backups, and keeps them updated and running smoothly.

7. Learn from others

My point is, you don’t have to be a good programmer to make an awesome, useful program. You might even have an advantage over good programmers if you are oblivious to how bad your code is. That way you won’t worry about constantly and needlessly refactoring and optimizing it, and you will get more done faster.

And the goal is to create a solution, launch it, and get customers as fast as possible, not build an immaculate pile of code, right?

I never would have launched HostiFi if not for the inspiration from other solo founders, books and blogs I’ve read, and podcasts that I listen to.

  • “Fastlane Millionaire by MJ DeMarco was a huge inspiration to me to put aside my services business and start working on something more scalable — my own SaaS, a product, video classes, a book, something that is not a direct trade of time for money.
  • “Micro-SaaS Ebook by Tyler Tringas. The single most important guide on starting your own SaaS that I have come across. This was the foundation for everything in my SaaS journey. Most of this post was inspired from what I learned from Tringas.
  • “Omer Kahn’s SaaSClub Podcast I listen to this every time I am in the car driving somewhere for work. It is a continual source of inspiration to not give up, and learned a ton from every single interview I’ve listened to.
  • “The One Person, Million Dollar SaaS Business — with Mike CarsonI was particularly inspired by Mike Carson’s story with park.io, loved his hacker world view, and persistence to keep trying after dozens of failed projects before park.io took off

Originally published at https://www.linkedin.com on July 20, 2018.