Lessons Learned From a 10 Year Old SaaS

By Cory LaViska on April 29, 2019

I launched a SaaS product in 2008. Here's how I got started and some of the things I've learned over the years.

Ship’s Wheel Faaborg SunsetLast November, I celebrated my 10th year in business running Surreal CMS. I've learned a lot over the course of a decade and it's time I finally wrote some of it down.

This isn't the story of how I moved to San Francisco, burned through millions of VC money, became a billion dollar startup, and got acquired by FAANG.

It's the story of how I built something I thought would be cool and bootstrapped it into a full-time business. It's admittedly not as glamorous, but I think most people have a better chance at succeeding with a lifestyle business than they do catching a unicorn. 🦄


How it Started

In 2007, I was studying for my bachelor's degree and working full-time. I had been tossing an idea for a CMS around in my head that I thought would be pretty neat — adding class="editable" to static webpages and using FTP to read/write them to a web server.

I started working on it in my spare time (which wasn't that much given my schedule) and I eventually had a working prototype. It was exciting to see my idea come alive, and I was quickly hooked on the concept. Soon after, every minute not working or studying was spent coding — usually until two or three in the morning.

I really wanted to turn my idea into a product so, with advice from random SaaS bloggers, I focused on building features that my own web design clients needed (I ran a small side gig for awhile). Turns out, they loved using my software because it was easy. I felt like I was on to something — I mean, nobody in the world was doing this yet!

Or so I thought. In April 2008, a product called CushyCMS launched into beta and it was shockingly similar to what I was building. Instead of class="editable", they used class="cushycms" — but holy shit was it similar.

I was devastated. 😭

What I've learned from this is that virtually nothing on the Internet is unique. Don't let that stop you from doing something you believe in. A lot of developers think they shouldn't build something unless it's completely new, and I think that's a myth. There's always room for one more, especially if you can do something better than your competition.


Being Second to Market

Needless to say, I was upset that I spent all my spare time building "my idea," only to see someone else release a product that did effectively the same thing. I was at least a few months from launch because I was working and studying full-time.

I decided that, despite the fundamental similarity, I was still going to build my product. The threat of competition only made me work harder to make my product better. I also decided not to rush. I took my time and finished building it on my terms. In hindsight, that was a good decision because releasing an inferior product would have hurt my brand and sent more customers to my competitor.

I finally launched Surreal CMS in November 2008 — six months after my competitor.

It was one of the proudest moments of my life. I built something that would eventually replace my full-time job. Of course, I didn't know that at the time, but it was still very surreal.

From a marketing perspective, being second to the game really sucks. Your competition gets all the attention and you get ignored. I didn't get a Mashable article. I wasn't featured in TechCrunch. It seemed like nobody gave a damn about my product except the handful of users I already had.

What I've learned from this is that you don't have to be first to market. Although the extra press would've been nice, it didn't break me. I never had an influx of users that brought the service down, I never had scaling issues, and I took advantage of the slow but steady growth to provide superior support to my users. (To this day, I still resolve a lot of support tickets minutes after they hit my inbox. Users tend to stick around when you show them you care about them.)


Acquiring Customers

I launched under the freemium model and got my first few users on day one. On day two I got my first paying customer. I almost couldn't believe it. The next day I got another. And then another. Soon after I had 10 paying customers and I felt invincible. ✨

To get the word out, I wrote a blog post and emailed some friends. I reached out to popular bloggers, but none were very receptive. I spent a lot of time commenting on blogs and forums, adding shameless plugs while trying to keep the conversation relevant.

My first web conference was An Event Apart in Boston. I met Dan Cederholm and had the chance to ask him what the secret for his success on the Internet was. He told me, "Blog, blog, blog." I'll never forgot his advice, even though I let it slip through the cracks in recent years. (I tend to go through phases where I'll blog a lot, then just stop for awhile.) I plan on rebooting both my business blogs this year. Do not underestimate the traffic you can receive from your own blog if you write useful content consistently!

For advertising, I bought countless banners through BuySellAds and similar websites. I brokered deals with bloggers to run sponsored posts and banner ads on their websites. I bought a book on AdWords and setup an account. Over the years, AdWords seemed to give me the best results.

At some point, I even took out magazine ads. I can't tell you how effective they were, but it sure was fun seeing them in print each month.

A magazine ad for Surreal CMS
This gem can be found in issue #196 of net magazine

What I learned from this is that marketing is the hardest part about running a SaaS, especially if you have little experience (or interest) doing it. I wanted a set and forget solution, but there isn't one. I'm still trying to figure it out 10 years later.


Listen to Users

For the first few months, I wrote a personalized email to every single person who signed up. I eventually automated the message to save time, but I still keep it simple and personal. I don't send out a fancy HTML email with swanky graphics and web fonts — it's just a boring, plain-text email with a couple sentences asking if they had any trouble getting started. I send this out about 10 minutes after a user signs up, and it continuously produces meaningful conversations.

I cut corners on support by using email instead of a fancy, third-party ticketing system. In fact, I still do this today. It works well for a one person operation, but I wouldn't recommend it if you have more than two or three people managing support. I tend to use my email as a TODO list so I can respond to requests anytime. (Airmail comes in handy thanks to it's snooze feature.)

When someone submits a help request, I respond quickly. If I'm coding, I'll shut my email off and check it at the beginning, middle, and end of the work day. If I'm not coding, my email is open and I'll usually respond within an hour or two. Tougher requests may get prioritized lower depending on what I'm doing that day. I guarantee that all my paid users receive a response in 24 hours or less, even on weekends and holidays.

I get feature requests all the time. First I try to understand why someone is requesting the feature. Oftentimes, there's a simple solution already in place. Other times, my response will be "that's not supported at this time." I don't seriously consider a new feature unless it's something incredible or multiple users have asked for it. Your TODO list can easily get overwhelmed with features that don't matter to 99% of your users if you say "yes" all the time.

Bug reports get high priority. However, a lot of reports that come in aren't actually bug reports, but misunderstandings of how something works. Legitimate ones get my attention as soon as possible, and if they're serious enough I'll drop everything.

What I've learned from this is that users want to be heard, and they love when you respond to them quickly. Even if your response is unfavorable, they appreciate a quick and courteous response, particularly if it includes a sensible explanation.


You Don't Need a Team

Early on I thought people wouldn't take me seriously if they knew I was a one-man-show. I used a pseudonym to manage support, which gave the illusion that there were multiple people working on the product.

It was a stupid idea. It didn't matter that I was working alone. What mattered was that I was building a useful product and supporting it better than most larger companies could possibly do. This was evidenced by the fact that nothing changed when I dropped the pseudonym.

What I've learned from this is that nobody cares if you're a one-man-show or not. If anything, they'll appreciate your hard work even more when they find out you're the one doing everything.


Forget About Scaling

Everyone is talking about containers and microservices and serverless and OMFG HOW AM I GOING TO SCALE MY APP?

It's fun to play with new tech, but why complicate things when you don't have any users? I didn't think about scaling until my SaaS had hundreds of paying customers. Even with over 1,000 customers, I was running it off a single, beefed up VPS.

These days, my infrastructure is more complex, but I've had plenty of time to figure it out. Most startups never get that far, so worrying about scaling in the beginning is silly.

What I've learned from this is that you can easily waste time planning for things that won't matter for years to come. Focus on the what makes your app great and worry about scaling it later.


Keep Moving

Even after you've established a healthy customer base, keep talking to users, keep iterating, keep delivering. The worst thing you can do is to let your SaaS go stale.

This happened to PageLime, one of my fiercest competitors. They came on the scene sometime in 2010 with great energy, a sharp website, and a strong a social media campaign. A few years later, the founders shifted their focus to other products and their business stagnated. Eventually, they decided to sunset the app and I ended up acquiring it.

I'll admit that I've set things aside from time to time to focus on open source projects and other ideas. After all, you have to do something different from time to time.

What I've learned from this is that you have to keep moving. No matter what else I get involved in, I always make sure my app is running smoothly, my users get prompt support, and my roadmap for future versions remains interesting.


I Don't Want a Unicorn

No, I'm not at the helm of a billion dollar company — odds are I never will be — but I've worked for myself full-time for nine years, I don't have to commute, I'm able to live in a place where traffic doesn't suck, my truck is paid for, and I don't really have all that much to complain about. My family is taken care of, and that's what matters.

I built a business from the ground up and I own 100% of it. A decade later, I still find what I'm doing to be interesting and I still have exciting things planned for it. In fact, I just launched a brand new version a couple weeks ago.

Some friends of mine moved out west to chase unicorns a few years back. I hope they find one, but I don't think it's for me. I want to enjoy my life, live comfortably, and call my own shots.

What I've learned from all this is that I don't have Zuck's bank account, but I also don't have his problems. I can't imagine how stressful life would be answering to VCs or worrying about exits all the time. I'm in it for the product, not the politics.

I'll take a lifestyle business over a unicorn any day. 🦄