5 things I’ve learned while creating a SAAS

A graphic of a desktop with the word "SAAS" on it

I’ve been a freelancer for a long time- helping clients make their dream come true (I’m like Disney World!). My freelance work has always been about creating someone else’s vision. Well now that changes- I’ve started working on my own SAAS- Tap Keep.

SAAS? What’s a SAAS? Who’s SAAS? It stands for Software As A Service and it can be added to the list of really boring names that get turned into acronyms.

As a side note- every time I see SAAS, I always question how I’m supposed to say it. Is it “Sass” or “Sauce”. I always say “Sass”, but doesn’t double A have an “aahh” sound. (As you can tell, I’m not a linguist/grammarist/wordie).

Back in August, I started developing Tap Keep. It’s a service for freelancers that lets them easily track their time, expenses, and invoices. I wrote another blog about it if you are interested.

It has been a very long process and I thought it would be done by now. But it’s not. It’s been a fun, discouraging, exciting, tiring process where I have learned a lot about what it takes to create a SAAS.

Here are some of the things I’ve learned so far.

A sleepy baby instantly falls asleep

Sorry for all of the boring SAAS jargon. Hopefully you don’t fall asleep…


Sometimes the process can be discouraging.

The SAAS industry has heavy competition. Everyone wants you to get on their $10/month plan for their service. This is especially true in the small business/freelance world. A quick search for time-tracking solutions shows 26 million results on google. So yes, I am up against a lot of companies.

Seeing all of the competition has been pretty discouraging. It makes me second guess if I should even continue making my own software. It’s not just that there is a lot of competition out there, it’s that there is a lot of fantastic competition. Tracking time/expenses has been around for a long time and the software that goes with it is not new whatsoever. It’s a mature industry with great solutions.

Several pricing tables from around the web all in the same image

How many times have you seen a pricing table? Everything has a monthly cost these days.

It’s hard to think of anything that I can add to Tap Keep that would make it better than the millions of software solutions already out there. Everything has been done before. And done well.

I like to look at what others are doing, so I can get ideas on how to improve it. Unfortunately, this ends up being more discouraging because I see just how robust some of the solutions are. So I’ve learned to not think about the competition all the time.

Which brings me to the next thing I’ve learned…



When I first set out to create my own software product, I was thinking about what I was good at. Anyone that knows me well would say that I love efficiency and I’m not afraid of technical things that help me optimize my workflow. So I thought I would make an app that helps other freelancers also be efficient- which led me to wanting to build a time-tracking app.

The more research I did, the more I realized that I needed to adapt. I couldn’t simply add one more app to the pool of thousands of time tracking apps. I had to do something interesting and unique.

There is a lot of competition in the time tracking world, so I am changing the app’s focus. Instead of promoting it as a time-tracking app for freelancers, I am going to turn it into an app that lets freelancers easily interact with clients. It will still do the original features, but will also include some interesting features for clients.

For example, when a videographer finishes a video, they can submit it to Tap Keep which will send it to the client. The client would then be able to make comments on the video that would turn into a to-do list for the videographer. (There are similar services like Frame.io that are just coming out).

I’ve learned that adaptability is incredibly valuable. I love that I have been able to completely change the main focus of my app to better fit my niche.


Future proofing can be good and bad.

One of the big reasons why it has taken me so long to finish Tap Keep is because I am trying to “Future Proof” it. I want to design it in a way where it is easy to update and fix later. I’m putting in a lot of upfront time in the hopes that it will be worth it in the future. It’s a little bit of a gamble. I could be losing out on a lot of potential customers by waiting so long. I’ll probably write a follow up blog post on whether I think it was worth the time.

In some ways, my “future proofing” efforts have already paid off. Back in September 2015, I actually had a working version of Tap Keep. Unfortunately, it was not working as I had planned. And the big issue was that I was using a framework that wasn’t going to work long term. So I had to stop what I was doing. Scrap the month of work I had done and start over.

Scrapping the first version of my app was a very hard “right” decision to do. I’m glad I did it. It just wasn’t fun. I then moved on to using a framework called Angular.

Using Angular was great. It was easy to use, extensible, and there is a lot of code out there that the community has made. Then I found out that they were making Angular 2 and it wasn’t going to be compatible with Angular 1. I was in the same place I was in before. Either I continue making the app with a framework that potentially isn’t going to work in the future or I start over on a new framework. I started over.

They always say “third time’s the charm.” Well I say “third time better be the charm or I’m going to be in trouble”.

Writing my app for a third time (this time using Angular 2) has led me to learn a lot. In some ways I’m actually happy the process has gone this way. In a weird way, my app has benefitted from gained knowledge from my past failures.

My fingers are crossed hoping that all of this up-front time will pay off in the end. (also it would be great if Angular 2 got out of beta….but that’s a different story).

Stanley from the office nods his head.

After rewriting my app multiple times, I’m feeling pretty happy with how it is now.


Balancing freelance work and a SAAS is tough.

Lately I’ve been busy with my freelance work, so it has been hard to find time to work on Tap Keep. It’s like all of a sudden, all of clients have new projects. I love it, but I also would love to be able to spend more time on my app. It can be a tough balancing act.

The way I see it, I have two options- I can take 12+ months to develop Tap Keep while I also do other freelance work or I can take 6 months(ish) to finish Tap Keep and abandon my other work. I’ve actually chosen to do an option 3. I’m not actively searching and promoting my freelancing work, but I do projects when clients come to me. This keeps me at a healthy level of working parts of my week on Tap Keep and the rest on client work.


It takes longer than expected.

There have been so many times when I have said, “Oh I’m looking to launch this in ____ months” and then I miss that date. I’ve missed at least 5 self-imposed over-ambitious deadlines for my app to be finished. I know setting goals is important, but I’ve decided that I’m not going to set a deadline for my app anymore. It will be done when it gets done.

There are simply too many factors that go into creating a SAAS. I didn’t foresee developing the app 3 separate times or changing to new frameworks that I had to learn. When I started this process, I also had no idea how big of a project Tap Keep would become. Similar services are developed by whole teams of people and I’m trying to do it on my own.

I will be the tortoise that wins the race (or at least finishes the race). I’m not able to sprint to the end of my development of Tap Keep. But by golly, it will be finished. And I will be a proud papa of my app at the end.