DEV Community

Cover image for How to build your own SaaS business
Kevin Naidoo
Kevin Naidoo

Posted on • Updated on • Originally published at kevincoder.co.za

How to build your own SaaS business

I know from personal experience how difficult it is to start a SaaS (Software as a service) business, especially if you are a solo founder who is self-funded.

In this article, I am going to go through some of my learnings on how to build a SaaS business.

I am no expert by any means in SaaS businesses but I have more than a decade of experience in building web products to draw on, so hopefully this will help you avoid some of the mistakes I have made and help you flourish as a new tech founder.

Build an audience

Before you even start writing a line of code, you should take some time to sit down and draw up an ICP i.e. an "Ideal Customer Profile" and a general business plan.

Build an audience

Most startups fail - this is the harsh reality of being an entrepreneur; which is why it's so important to first have a solid plan in place before actually building a product.

Once you have an ideal customer profile in mind (doesn't have to be perfect), you then can figure out how big your audience is and how to reach them.

To determine how big your audience is, you can:

1) Research your competitors. See how many customers they service and what their estimated revenue is. There are plenty of tools for this. e.g.: Similar web.

2) Look through forums and places such as Quora to see what customers are saying about your competitor's products. This will give you an insight into their pain points and will give you an idea of what key areas to focus on to build a better product.

3) Do keyword research using tools such as wordstream. You can find search volumes and other metrics to help you understand how big your audience is and what keywords to target.

Now that you have done some solid research, it's time to decide if there is sufficient market demand for the product you intend to build.

The best way to approach this is to find out where your customers hang out and build some kind of presence on that platform.

It's important to zone in on one or two platforms that you are comfortable with, be it YouTube, Quora, or Facebook - doesn't matter so much early on.

The goal is to pick a platform and stick with it. You need to be engaged for the long term. Don't just be involved in that community for the sake of advertising - you need to add value. Doing so will help you earn the respect and attention of the community you are targeting.

Once you achieve some sort of following, you can then start conversations with your audience and figure out if they would be interested in your product.

You should build a landing page or some sort of mailing list to capture leads at this stage.

💡If you want to ship your product to market fast and save hours or days of dev work, check out these paid and open-source: starter kits.

Django is great for SaaS

Django for SaaS

When building a tech product, as a developer myself, it's often very tempting to want to build everything out from scratch or use a shiny new framework.

This is a waste of time. The first iteration of your product should be a quick MVP. You should focus on shipping to the market as soon as possible (don't compromise on quality though).

Django is a solid choice for building SaaS products. Straight out of the box, it comes with a ton of features to help you build an MVP fast.

Furthermore, in addition to using a solid framework like Django, you should consider using a paid or open-source boilerplate, so that you can focus on your core products' business logic; instead of boring "plumbing" work such as building: auth, email workflows, subscriptions workflow and so forth.

SaaS Pegasus is a great clean and easy-to-use SaaS boilerplate that will speed up your dev cycle. It has a ton of features that nearly every SaaS business needs, saving you hours if not weeks of development time. [paid promo]

You can also check out an earlier article I wrote which goes more in-depth on why I think Django is the best choice for web backends here.

Free tier

Always have some kind of free tier. This allows for a low barrier to entry. Unless you have a product that's mind-blowing and a no-brainer, it's hard to convert customers the first time they land on your landing page.

It's far easier to just onboard them on a free tier version and then gradually educate them via email on why they should buy your product.

There are multiple ways to do this. I often find having an open-source version or offering a free trial works best.

If the market is relatively large, you could also consider an always-free version of your product that has some limitations on usage.

Be careful of the "freemium" model though. You want to make sure that your pricing allows for sufficient padding so that you can cover the cost of the free tier clients. Usually, it's just better to offer a trial.

Expansion revenue

You are going to eventually plateau and onboarding new customers will become more and more difficult.

Expansion revenue gives you that extra revenue potential to upsell to existing clients, as it's far easier to convince an existing client to spend more than onboarding a completely new client.

Expansion Revenue

What is expansion revenue?

Expansion revenue is simply an additional service such as an add-on that customers can bolt onto their existing subscription.

This usually entails adding extra user seats, purchasing SMS/Email credits, or in the example of a CRM, customers can pay for an extra "HR" module.

List your product everywhere

Content is king as you will know. Early on with a limited budget - it's difficult to drive traffic to your landing page or website.

Here are some free websites you can list your product on:

  1. producthunt.com
  2. alternativeto
  3. Killer Startups
  4. Beta List
  5. Reddit - be careful here, Reddit users hate advertising.
  6. Quora
  7. AppSumo
  8. Pitchwall
  9. Pinterest
  10. Betabound
  11. StartupBase
  12. Indie Hackers
  13. Designer News
  14. SaasSHub
  15. Launching Next

Learn from the best founders

When you learn how to program, especially if you are like me and mostly self-taught, the best way to learn is to seek out experts in whatever language you are learning and follow them, buy their courses, etc...

In a similar vein, there are a ton of successful founders out there. If you want to become better and learn the best practices, then seeking out and learning from these founders is a great way to grow as a founder.

Here's my list of expert founders (in no particular order), I often follow:

  • TK Kader. TK has started up many companies and is a coaching specialist for SaaS founders. I find his 3 step breakdown of concepts quite refreshing and easy to follow.
  • Neil Patel. Neil is an expert marketer and usually covers some great tips on how to build content around your brand.
  • Simon Hoiberg. Simon has a very cool and fun way of explaining advanced business concepts to developers.
  • Rob Walling. Rob's YouTube channel does an excellent job of explaining all the core concepts you need to learn as a founder. He's also written several books on the subject and is involved in funding many new startups.

Conclusion

Building a SaaS business is hard and many fail at first - including myself. Failure is okay - it makes you tougher and teaches you important lessons that will help you grow in the long run.

My goal with this article is to share some of the fundamental learnings from my journey to help you as a developer grow into this new space.

Happy building! And all the best for your next best idea.

Top comments (45)

Collapse
 
hseritt profile image
Harlin Seritt

Forgive my ignorance, but what do you think would be a good example of a SaaS as you mean it in this article? Thanks very much for the post, btw!

Collapse
 
kwnaidoo profile image
Kevin Naidoo • Edited

Thanks for your question. Not a problem at all. A SaaS - is any software product you offer on some kind of subscription.

You usually charge a recurring fee, either monthly or yearly or at some fixed period. There are some variations to this model; some products don't charge a fixed fee or will charge you a base fee, and then charge you for usage.

For example, you may subscribe to a monitoring service that notifies you of downtime. The service will charge you $20 for monitoring and allocate 20 SMSs for the month. If you exceed the 20 SMS limit, you then pay an add-on fee for extra SMSs (Expansion revenue).

An example of a regular SaaS app is Netflix, you pay a fixed monthly service fee and get access to their streaming platform.

Hope that makes things clearer.

Collapse
 
hseritt profile image
Harlin Seritt

Thanks very much for the response. Man, to build a Netflix type offering, you would have to invest in a lot of infrastructure.

Thread Thread
 
kwnaidoo profile image
Kevin Naidoo

Yeah, will be crazy expensive. Although - the bigger cost would probably be buying content rights. Streaming is just one example, there's plenty of room in smaller niche SaaS spaces like CRMs, email marketing, and so forth.

Collapse
 
olivia578 profile image
Olivia Anderson

Kevin, great article! Your step-by-step breakdown on building a SaaS business is clear and practical. The emphasis on user feedback and iteration is key—building something people want is at the heart of any successful venture. Keep sharing your insights!

Collapse
 
kwnaidoo profile image
Kevin Naidoo

Cool thanks for the feedback 🙏

Collapse
 
jaymgonzalez profile image
Jay M Gonzalez

Great informative article! I had tried to build a SaaS in the past but it didn't go anywhere.

I probably made most of the mistakes in the book - No audience, building most of it from scratch...

Thought I wasn't cut for it but maybe it was just the approach I took.

Collapse
 
kwnaidoo profile image
Kevin Naidoo • Edited

Thanks for sharing. Being an entrepreneur is always hard, there's almost no reward initially and lots of hard work and failures.

In programming - we write some code, we test it and we know it's going to work. As an entrepreneur - you can do all the right things and still fail.

I guess having a solid vision and persistence is the best way, and learning from mistakes as we go along.

All the best! - hopefully, you will keep going and will make a great success of it.

Collapse
 
prodbyola profile image
prodbyola

I've got lots of respect for you @kwnaidoo. Thank you for sharing your experience.

more than a decade of experience in building web products

That's a lot of years IMO! I would be happy to learn more about any of your products. Thank you.

Collapse
 
kwnaidoo profile image
Kevin Naidoo • Edited

Thank you so much for the kind words 🙏. I currently service the South African market but am expanding globally soon.

You can check out my open-source project:
plexscriptables.com/

There's a pro version launching later this year. My core area of expertise is DevOps tools.

Collapse
 
pavelee profile image
Paweł Ciosek

Thank you! 🙏

Collapse
 
rajaerobinson profile image
Rajae Robinson

Great recommendations!

Rob Walling and TK Kader are my favorites

Collapse
 
kwnaidoo profile image
Kevin Naidoo

Awesome thank you! Yeah, they have great content.

Collapse
 
vincanger profile image
vincanger

check out OpenSaaS.sh -- we just released a completely free, open-source SaaS boilerplate starter that's an alternative to paid ones like Shipfa.st and Supastarter

Collapse
 
kwnaidoo profile image
Kevin Naidoo

Interesting. Thanks for this - will definitely check out.

Collapse
 
aboubahaidara profile image
Haidara

Great content.
Thank you for your article!

Collapse
 
glennm profile image
Glenn Mullett

Thanks @kwnaidoo for the great article! Very informative. We are embarking on a project to saasify our current offering that is django & vue-based. Do you perhaps provide consultancy services, whereby we can soundboard ideas and get some input on structuring the control layer?

Collapse
 
kwnaidoo profile image
Kevin Naidoo • Edited

Thanks, much appreciated. I unfortunately just don't have the time these days to do consulting.

I am not sure exactly what your structure is, however, usually, SaaS involves tenancy - which can be a pain to implement on an existing codebase.

One trick with Django is to extend the default Manager (It's been a while since I implemented this - so this code may not work 100% - but you get the idea):


class TenantManager(Manager):
        def get_queryset(self):
            query = super().get_queryset()
            query = query.filter(tenant_id=SomeHelperClass().getTenantId()) 
            return qs

class MyModel(Model):
    ....
    objects = TenantManager()
Enter fullscreen mode Exit fullscreen mode

This way, you don't have to change code throughout your app. You then use a subdomain or the logged-in user to determine the tenant ID.

There's also the approach of splitting your tenants out into multiple DBs, and then swap the DB at runtime. This is less efficient. You could look at using: django-tenants.readthedocs.io/

Not sure if this helps.

Collapse
 
glennm profile image
Glenn Mullett

Thanks @kwnaidoo. I like the idea of using a Manager class to also apply some standard tenant-related filtering. We currently have a basemanager which we can extend a bit.

Currently, we would like to engage with some people/companies working in the Django/SaaS space, regarding minimizing frictions in our the user on-boarding experience and hooking up metering, metrics and billing. Do you perhaps know of anyone with such expertise who could assist in this space?

Thread Thread
 
kwnaidoo profile image
Kevin Naidoo

Off the top of my head, I do know a few Django devs - I'll have to speak to them and check if they are available (Will get back to you on that one).

Perhaps: twitter.com/czue, I don't know him personally but he's the guy behind Django SaaS Pegasus.

Thread Thread
 
kwnaidoo profile image
Kevin Naidoo

@glennm - here is another Django dev you can reach out to: linkedin.com/in/brian-m-a6a45645/

Hope this helps.

Collapse
 
catherinewee profile image
Catherine William

Hello there! What an insightful post on building a SAAS business! 👏 The step-by-step guide you've provided is incredibly user-friendly and has certainly demystified the process for someone like me who's been considering venturing into the world of software as a service.

I appreciate how you've broken down the complexities into manageable tasks, making it feel like anyone with a passion and dedication can take the plunge. Your emphasis on market research is spot on – understanding the needs and pain points of potential users is the foundation of any successful business.

The tips on creating a solid MVP and constantly iterating based on user feedback resonate well with the iterative nature of software development. It's a reminder that perfection isn't the goal at the beginning; it's about delivering value and refining over time.

I also found the advice on building a supportive community and fostering customer relationships particularly insightful. In today's digital age, the human touch in customer service can make a significant difference.

Lastly, I appreciate your commitment to ethical business practices. It's refreshing to see a focus on transparency and data security as integral components of a SAAS business.

Great job on this comprehensive guide! It's a valuable resource for anyone looking to embark on the SAAS journey. Thank you for sharing your knowledge!

On a related note, I've come across Impressico Business Solution in the past – they seem to be making waves in the industry. It would be interesting to hear your thoughts on how services like theirs align with the principles you've outlined in this post. Looking forward to more great content from you! 🚀

Collapse
 
kwnaidoo profile image
Kevin Naidoo

Thanks for the detailed feedback! I am glad that this is useful. I had a quick glance at "Impressico Business Solution". Honestly, this is the first time I have heard of "Impressico..." - judging by the website and brands like "IBM", looks very promising as a consultancy firm.

Collapse
 
zlresearch profile image
zhaoxiansheng

that's a good idea

Collapse
 
mykezero profile image
Mykezero

What do you do if there are already competitors in your market? Almost feels like everything has already been built and people are potentially doing it better. I get that feeling with almost everything I'd like to build, guess not really a SaaS question, but a more general one.

Collapse
 
kwnaidoo profile image
Kevin Naidoo • Edited

Competition is usually good - it means there's a market out there. You just need to find ways to stand out from the rest. I am not an expert on this subject, but I'll give you some general ideas that may help:

  1. Offer more value. E.g. Look at what most of your competitors are charging for vs the feature set. Then, simply add a few extra features for free or included in your package.

  2. Build a presence on YouTube, Medium, or whatever platform you prefer. When you have an audience - you stand out, people want and like that human touch vs some random salesperson. This is not scalable in the long term, but in the beginning is essential.

  3. Cold emailing - personally reach out to potential customers you find on Linkedin. Don't send bulk spam, personalize the messaging for whoever is on the other end. You might need to do hundreds of these but slowly and surely some will convert if your messaging is good.

  4. Study SEO keywords. Find keywords that have low competition and build content pages around those.

  5. Study forums and QA sites like Reddit and Quora. This will help you find gaps in the market, and then target your offering to fill those gaps.

Collapse
 
mykezero profile image
Mykezero

That makes a lot of sense. Maybe I shouldn't shy away from these opportunities, but find my own way to sweeten the offering. Thanks for the response! ^^

Collapse
 
rajaerobinson profile image
Rajae Robinson

Do you know of any good payment processor alternatives to Stripe (it's not available in my country)?

Collapse
 
kwnaidoo profile image
Kevin Naidoo

Yes, lemonsqueezy.com and paddle.com/. For Africa you can try: paystack.com/

Collapse
 
rajaerobinson profile image
Rajae Robinson

Thank you!

Collapse
 
proteusiq profile image
Prayson Wilfred Daniel

Could you share one or two of your SAAS web products? I am thinking of starting a plugin 🫣 but will like to know how much it is going to require of me.

BTW: thank you for the learnings

Collapse
 
kwnaidoo profile image
Kevin Naidoo

Thanks, I provide managed services to private clients - so it's not open for plugin development. I however have released Scriptables (plexscriptables.com/) recently as an open-source MIT license - you are welcome to fork the code and build your product around it.

Collapse
 
proteusiq profile image
Prayson Wilfred Daniel • Edited

Oh no! Plugin is for my own AI powered SaaS 😹. Thank you for sharing

Thread Thread
 
kwnaidoo profile image
Kevin Naidoo

Oh aha, I see 🙂 , cool best of luck with that!

Collapse
 
zlresearch profile image
zhaoxiansheng

I don't think Django is the best choice,using springboot can greatly improve stability of website

Collapse
 
kwnaidoo profile image
Kevin Naidoo • Edited

Thanks for your feedback. This is an opinionated piece from my experience. You most certainly can use whatever framework or tool you like and get the same result. This is why I say Django:

  1. Python is one of the easier languages to learn. Remember not all SAAS founders are professional programmers, some know enough to build an MVP and can hire developers later on.

  2. Django has been around since the early 2000s, it's battle-tested and several companies have been using it for decades including large websites like Instagram.

  3. Django SAAS Pegasus is one of the best SAAS boilerplates I have ever seen. Early on with a SAAS, you don't know if it's going to succeed or not. You need to get to the market fast - so that you can get real people to use the product and give you feedback to build a better product that the market wants.

  4. Django has a clean architecture with the MVT pattern, including separating your code into projects and apps.

Collapse
 
gq23401 profile image
Gbenga

Thanks you for this feedback.

Collapse
 
sambenskin profile image
Sam Benskin

Can you share what the ideal customer plan looks like? You say to make one but not how or give an example.

Collapse
 
kwnaidoo profile image
Kevin Naidoo • Edited

Thanks for the question. Unfortunately, building an ICP is an entire article on its own so it was not possible to cram everything into this one article. Furthermore, I am not an expert on this matter - please consider looking at some of the content from the experts listed in this article (e.g. youtube.com/@TKKader). To give you a starting point:

  1. Figure out what is your broad market. E.g. if you are building a CRM, which group of people is this best suited for plumbers, lawyers, doctors, etc...

  2. Once you have a group of people in mind. Now break this group of people down even further until you get to the smallest possible group of people. For example, if you chose doctors - which type of doctors: GPs, Dentists, etc...

  3. Now write down attributes that your perfect customer should have. Example: earn $200k a year, male/female if gender is relevant, location if relevant, and so on. Write down as many attributes as you can.

  4. Now look at the group of people from point 2 and draw up some profile avatars. Keep these somewhere visible so that you can refer back often.

  5. Design some messaging that is specifically targeted towards this group of people.

  6. Find out where these people are, and find a sample size either via social media or paid adverts (but don't go overboard here) or whatever channel you prefer. Thereafter, introduce them to your product and get some feedback. You may need to rinse and repeat points 3,4,5,6 as you go along.