Running a Profitable SaaS Company Is Brutal, Brutal Pain

You might think that running a SaaS business is great. And you’d not be alone! Every software developer, Indiehacker and would-be startup founder is thinking like “oh man, working at <boring day job> sucks, but if I just had a SaaS, I could just lean back and enjoy that sweet, recurring revenue”.

The reality, however, is that running a SaaS business is quite similar to winning the lottery: Everyone wants it, very few people have it, and even fewer people talk about it, how it really is. Winning the lottery, in reality, makes many people very unhappy. Running a SaaS might be the same.

Let me show you why.

As a quick caveat, I’m talking about running a profitable SaaS business here. You know, the type of business which makes more money than it spends, not the venture-capital-rocket-fueled-craziness where the laws of physics don’t apply, growth is all that counts and money is mainly spent on fancy office furniture.

Marketing

When you build it, will they come? The answer is no. You will have to do marketing. If you have no clue about marketing, let me tell you this: You’re screwed.

The bottleneck towards SaaS success is not building it (that’s easy), it’s whether 1) you find your target customers and 2) whether those people are actually willing to pay for your product. Those things are super, super hard, mostly because they’re hard to predict.

I won’t write much more about marketing here (we have to move on!), but I’d only like to share a few crappy situations I’ve experienced in the past:

  • I once built a SaaS product for 2-3 months, only to discover that buying Google Ads for it would be super expensive because all my competitors were heavily VC-funded. Prices per click were around 50€. That’s crazy!
    That instantly made Google Ads not viable for the product. And I didn’t have any other idea how to market it, so that was the end of it.
  • For another SaaS, we realized that one of our best marketing channels was getting ranked well on Google (SEO), and people subsequently visiting our website. However, scaling any sort of SEO marketing is super painful: Can you find a content writer who writes content just as well as you do? Or, if not, will you risk putting up crappy / AI generated content which will possibly penalize your Google rankings in the future and sink your entire business? Do you even have the money to hire a SEO guy? Likely not – suddenly you’re juggling SEO stuff all day instead of coding. Not fun!
  • If your marketing channel is to go viral on reddit, Hacker News, TikTok, whatever, well.. good luck. It’s entirely unpredictable. And once it fizzles out (in days), you’re back at square one.

If you’re already feeling demotivated, no worries, I’ve got more!

Customer Support

You’ll need to provide customer support. You might think this is solvable.

Personally, I think it’s actually not, at least if you expect to find a solution which 1) makes customers happy, 2) reduces your overhead and 3) doesn’t cost much. No such solution exists, only trade-offs, and all are somewhat crappy.

I mean, just look at the customer service of the big SaaS providers out there. You regularly see people complaining about getting locked out of Stripe on reddit, or getting locked out of Google Workplace on Hacker News. Even the big companies with oh-so-smart engineers haven’t solved this.

So here are your options:

  • You could do customer support yourself as a one-person company, the Indiehacker way. But now you’re juggling yet another additional task during the day. You have to prioritize your time ruthlessly to not get distracted by support requests trickling in every few hours. Worst of all, you now feel like you no longer can step away from your computer for longer than one day – neither to go on vacation, nor to focus on coding.
  • You could delegate it to your software developers after hiring them. This assumes you have enough revenue to hire developers in the first place, and that those developers won’t stage a rebellion if they realize their role includes being customer support agents. So this only works if 1) your volume of support requests is not super high and 2) your customers are not terribly annoying. It is possible though. So if this works – great!
  • You could delegate it to “customer support people”, usually people sitting in a building without windows in some low-salary country. This is what most SaaS companies (including Amazon and Google) do, by the way. While it sounds great on the surface as you now don’t have to deal with the customer support problem anymore, the reality is that.. you still have to deal with it, because those customer support people lack all the knowledge and skills your developers had: You’ll have to train them (they don’t know your product!) and you’ll have to build some sort of admin interface with which they can actually help customers (they can’t just ssh into the server!). Remember: When your developers hear about a customer problem, they access the server, correct it, then jump into the code and fix it long-term. Developers are magicians. Customer support people are not.
    So, at the very least, there’s some significant upfront work here for training and admin interface engineering. And it doesn’t stop there, because that UI might break, so now your developers have to be the customer support for your customer support people.. oh man, customer support inception!
  • Or: Don’t do customer support at all. This is a surprisingly elegant solution if you can make it work. It usually involves a “magic confluence” of factors: Being B2C because humans, in contrast to businesses, have low customer support expectations anyway (thanks, FAANG), being low-price and adding as many self-service features as possible (reset password, re-send invoice, get a refund, etc.).
    Needless to say, this only works for a fraction of all SaaS businesses out there.

So what’s the optimum solution here?
Doing it yourself is out of the question if you want to preserve your sanity. Delegating to customer support people almost always results in a bad experience for your customers (yet this is how the big companies do it).
Providing no support at all might work well for you, but some customers will be furious.

So if you have any sort of morals towards providing a good customer experience, you’re only left with one option: Delegating it to your software developers.

This automatically leads to some serious constraints for your SaaS business: If software developers should provide support, the support volume must be low. This means that you probably should have a small number of customers which pay a high price. Likely businesses. Also, the customers shouldn’t be annoying. So likely businesses again. B2B it is. Talking about pricing and customer counts..

Pricing And “Scaling”

Let’s talk about how many customers you need to become profitable. First off, how much revenue does your company need to make?

I’d say the bare minimum team size would be 3 developers. We’re talking about European salaries here, not the hugely inflated US salaries which kill almost any profitable SaaS idea instantly:

  • 3 developers at 6k€ / month each: 18k€ / month
  • Expenses (Google Workspace, cloud hosting, company overhead costs like bookkeeping etc.): 2k€ / month

So you need to bring in at least 20k€ / month to break even.

Why 3 developers, by the way? With 3 people, someone can always go on vacation or be sick (both of these things tend to happen often here in Germany) while at least one other person stays around to make sure the servers are actually up, nothing is crashing and the customer data is still there (more on that later).

Sure, you could make your team even smaller, but then “going on vacation” technically means “still checking your emails and spending the night coding when something happens” (yes, more on that later).

So yeah, 3 developers. And that’s a very conservative estimate. If you’re B2B, you probably need at least 1-2 people doing sales and demo calls. I’ve spent the last 5 years of my life trying to sell a B2B SaaS product without sales calls and it seems to be impossible, regardless how many free YouTube videos and self-sign-up free trials we provide. Human beings, that is B2B SaaS sales leads, seem to have the switched off their prefrontal cortex entirely. Instead of making a rational decision (does this software work for me?) and performing rational steps (sign up, try it out, enter credit card details), they seem to be fixated on this ritual called “I would like to schedule a demo call”. Needless to say, it’s entirely useless as it’s literally a human showing them the software in the same way like the video on the landing page.
You can see I’m frustrated by this. Or maybe they just want to make sure that the company they’re dealing with is actually staffed with humans. I don’t know. Regardless someone needs to do those calls, which sucks. So 1-2 people more on your payroll. Great.
(By the way: While you can delegate customer support to your developers, there’s no way in hell you can delegate sales calls to them. They will kill you.)

Anyway, back to topic. What was the topic? Umm.. right. How would your price and customer count need to look like under the assumption that you’d need to bring in 20k€ / month?

  • If your product costs 50€ / month, you’d need 400 customers.
  • If your product costs 100€ / month, you’d need 200 customers.
  • If your product costs 200€ / month, you’d need 100 customers.

I’ve selected those prices on purpose, because they reflect what I consider the upper and lower bounds of pricing and customer counts. Here are a few thoughts:

  • With 100-200 customers, it’s quite viable that your 3 developers handle customer support. With 400 customers, this might be unlikely, depending on how “high-touch” each customer is – you’re now faced with the crappy choices of either hiring separate people or not providing proper support at all. See above.
    So 400 customers might be the upper bound for your small team.
    This also means that you can’t price your product below 50€ / month.
  • If you price your product at 200€ / month or higher, you’ll likely have less customer support demand (due to less customers, of course).
    You might now say “great! let’s just price it much higher than 200€ / month and this is even better, right?” and my answer is “no”: Once you move towards 200€ / month and specially when you go higher, you’re now faced with the whole “B2B sales call ritual” all over again. There’s some magic cutoff value after which B2B people don’t purchase without having gone through this magic ritual. See above.
    Again, none if this is rational, but you’ll need to offer those calls.
    So 200€ / month might be an upper bound for your price if you want to avoid B2B sales calls.

So there’s probably a sweet spot where 1) people purchase by themselves without sales calls and 2) your customer count is kept to a minimum, so that your support effort remains low. But I haven’t found it yet. It certainly depends on the industry you’re in.

One more thought is that maybe a pricing model where prices start low and go up gradually over time, e.g. with seat count, might somewhat solve this problem. People purchase by themselves initially (no sales calls!), and then their price creeps up, which enables you to have less customers (less support effort!). Not sure. This is a double-edged sword though: What if all your customers remain at the low price? Good luck with customer support.

Anyway. Getting lost in details here again (but it was worth it).
My main point is this: Think about your pricing and how many customers you’ll need to become profitable. Too low pricing won’t work. Too high pricing might work.

But go too high and you need to offer B2B sales calls.
I hate those, as you might have noticed.

I randomly came across this page on PostHog which sums up the ridiculousness of B2B sales calls extremely well (their whole site is awesome – not using their product (yet), just saying). Here are their “steps” below. You might guess that they also haven’t solved the sales call ritual problem if they have to go to such lengths to explain that sales calls are entirely useless. My best guess is that they’re still receiving a ton of customer requests for sales calls. Oh man.

PostHog sales call “steps”.

Uptime and “Pager Duty”

When I coded up my first SaaS, I never thought about this. But here’s the thing: Depending on your industry, there will be expectations towards uptime and someone might need to be on pager duty. However, this wildly differs per industry.

Some examples of customer expectations:

  • Cloud providers like AWS and “cloud-similar” providers like Heroku, Postmark, etc.: Super high expectations towards uptime. Any downtime will be perceived as unacceptable by customers. You will need people on pager duty who will get up in the middle of the night to fix things.
  • “Essential” SaaS like Slack, Google Workspace, etc.: Very high expectations towards uptime. A few minutes downtime might be okay, but hours are not okay. You will also need people on pager duty here.
  • “Semi-essential” SaaS like compliance software (hey, that’s my current company): High expectations towards uptime, but you might get away with a few hours of downtime during the night or weekend. You might not need people on pager duty, but you definitely always need someone around, i.e. not all developers can go on vacation simultaneously.
  • Non-essential SaaS like typical Indiehacker products (examples later): It’s nice to have, people like to play around with it, but businesses won’t grind to a halt if it goes down. You might get away with multiple days downtime here, and you might get away with all developers being on vacation simultaneously.

So, depending on what you’re building, you’ll need to hire and plan your vacations accordingly. And if you can’t hire someone yet, it’ll be you on pager duty. That was me in 2021 – 2023. Here are some “highlights” from the incidents I had to handle:

  • While I was on vacation, our S3 provider went down. But it gets even crazier: Our cloud provider’s internal monitoring hadn’t picked up on this, so I had to 1) upgrade our account to a higher support tier so that I could 2) reach out to actual human support and 3) convince them that their S3 endpoint was indeed down. Luckily this was at the weekend, so not many of our customers noticed this. Then again, it sucks that this was at the weekend because it was a European cloud provider where they apparently only fix things on weekdays, so our SaaS was limping along with no S3 storage for 2-3 days until a fix was deployed.
    Since then, we’re doing regular backups of our S3 storage.
  • Our cloud provider rotated our encryption key multiple times without notifying us. This was a crazy one. It led to us losing all associations between customers and their S3 file attachments, because the file names were encrypted. This started me on a 48-hour coding marathon with some hours of crappy sleep in between. I was able to recover >99% of files with a trick I came up with (parsing log files – long story). However, I consider the fact that this was possible mostly luck. Worst case, we would have lost many S3 attachments or I would have to come up with a more complicated fix which would have taken days. This was extremely painful.

So yeah. Prepare for this. Or simply don’t build a SaaS which people might consider “essential”. There’s a reason Indiehackers usually build B2C SaaS products which look like toys from the outside (GenAI stuff, job boards, coding templates, etc.) – there are no uptime expectations there.

Conclusion

There’s a whole lot more I could talk about, but I’ll stop here as those are the main points! Hope this was helpful for you.

So the million dollar question is: What’s the solution?
I’d say there are a few local optima here:

  • Build a non-essential B2C SaaS with no customer support:
    Pieter Levels‘ products come to mind here, e.g. PhotoAi and Nomads. If those go down, people might be unhappy, but it’s not like businesses are breathing down your neck and suing you. So it’s probably fine to have no pager duty and customer support.
    Also, all of those “coding boilerplate” products out there. Oh, and ebooks and video courses.
  • Build a semi-essential B2B SaaS with semi-high pricing (>= 200€ / month):
    This pricing might be a sweet spot for B2B SaaS where support volume is still manageable and you might get away with not doing sales calls. Pager duty might be manageable as a few hours of downtime might be acceptable.
  • Build a semi-essential B2B SaaS with high pricing (>= 1000€ / month):
    The idea here is that, okay, now that you have to do sales calls, you fully embrace the crappiness of it and raise the pricing accordingly. Less support volume, and less customers you have to find in total. However, “enterprise” customers come with their own problems as they tend to behave like irrational toddlers. I’ll write about that some other day.

So the TLDR is: Building a SaaS looks great on the outside, but digging beneath the surface, building a profitable SaaS is actually brutally hard!

There’s a reason that most lower-priced SaaS products out there (Slack, Asana, etc.) are highly unprofitable!

But then again, my experience is limited. If you have any thoughts on this, I’d be keen to hear them – leave a comment below! 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *