How to Build a SaaS in Weeks. Spoiler Alert: I Don’t Know
Set out to build something? Don’t spend your time on building. Spend your time on talking to customers and marketing your product. That’s especially true for solopreneurs. The problem is that building a web or mobile app takes way more time then we’d like.
We’ve all heard of Pieter Levels’ 12 startups in 12 months, but most of us wonder how one can build apps in so little time. You have to validate your idea, design everything, market the thing and build your business logic.
To make things worse, you have to build an unnecessary amount of boilerplate. That can take multiple weeks for one coder. This might not be the biggest problem for big companies. But for indie hackers, like people who are running a business on their own, or even just as a side project, it’s a pain.
I have to be honest with you at this point. There’s no go to solution for building your next SaaS. Most people know that they’ll have to choose a tech stack, but that’s still a tedious task. I’ll try to make that job a little easier for you, by listing the options I know, with their pros and cons.
The question is still about which frameworks to choose. Even if you use a boilerplate, you still have to dig into these frameworks. You’ll have to work with them and make a reasonable decision whether they are the right choice.
The other option is to use a codeless web-app builder, like bubble.is.
Is there a third option? Not that I’m aware of. I’d love to see a hybrid between these two. More on that later.
There are alternatives to Bubble, but after my (limited) research, I think that this visual web app builder is the best for building a SaaS.
Like most visual editors, Bubble does a great job on the front end. You won’t have a hard time creating a responsive site. What Bubble thrives at are it’s other features: You can actually build any real SaaS with it. Take payment functionality as an example. You can’t only charge your users, but you could also let your users enter their own Stripe credentials and let them charge their users.
- It’s actually slower
- It takes away customizability
When you use such a tool, you realize what functionality a SaaS needs. It’s still a lot of work, even with a tool like Bubble. The problem is that setting some things up actually takes more time with their GUI than if you coded it. You also can’t copy and paste. Some developers become unhappy when they can’t work with a CLI, so only having a visual editor isn’t the best option for most developers.
Visual editors also lack a lot configurability. They are great for people who can’t code, but if you can code, you’ll most likely feel trapped with such a tool.
I still want to give the team at Bubble some credit here. They built an amazing tool which enables people who can’t code to build web apps. Using the tool will even teach people many of the concepts behind web apps. Bubble is a GUI for your code, with a lot of boilerplate and plugins in place. It’s also a pretty young tool, so pay attention to their future developments.
Even with my favourite stack, I can think of some things that could be easier. Having played with visual editors, I can tell you that there’s quite some potential in that market.
If you want to build a SaaS as quickly as possible you should be able to code. If you use a fully-featured boilerplate, you still have to master its underlying frameworks. Since we like configurability, that’s a good thing. It’s a thing that a visual app builder can’t give you. But creating apps with a great GUI also has its benefits when it comes to speed.
GUIs should be built with GUIs. Code isn’t the best design tool, but transitioning from visual design to code often takes too long.
Visualizing technical processes like the workflow of your marketing automation system are often a good thing. Being able to switch between code and visual editor would be a great feature at many stages of building a SaaS. Code should still be the basis, but visual editors could help at many places.
Boilerplates often lack a lot of things. By choice. That gives you more freedom, but also costs more time. A SaaS application often needs to integrate with many third party services. That’s a thing simple boilerplates don’t do. But if you want to move fast, you might even appreciate an opinionated boilerplate.
You might even want it to include a marketing stack. The marketing stack includes things like:
- Email service provider
- Live Chat
There are tools like Segment or Userengage which try to make it a little easier to integrate all these services.
Segment is an app that helps you capture data from every customer touch point and send it to the tools where it can be used most effectively.
Userengage offers a CRM, marketing automation, live chat, analytics and more in one tool. That reduces the need to integrate many services. It also integrates with Segment.
Choose Your Stack
There are many great boilerplates out there. If you’re a developer you shouldn’t have a hard time figuring out which one might be the best fit for you. You might want to try Laravel Spark. It handles many things for you that you shouldn’t have to write by yourself, as every project needs:
- Authentication (+ Two-Factor Authentication)
- Subscription Management & Billing (Payments, Invoicing)
But most other boilerplates only glue some frameworks together. You’ll still have to bring your own services for many things.
How I would build my next SaaS
You can use Stripe itself to handle subscriptions. But as of writing this, Stripe Billing still lacks some features, like Sales taxes. You’d need a third party provider for that, which will cost you about $30 per month. Have a look at node-sales-tax if you want to build that yourself.
You might be better off with a subscription billing provider like Recurly or Chargebee. They create proper invoices and handle EU-VAT without a third party service. They also provide you with a lot of SaaS metrics.
If you use Stripe directly, you might want to use Baremetrics to know your numbers. But don’t worry about stats too much, especially if you’re starting out. Subscription management software is another expense. Chargebee is free for your first $50,000 of revenue. Like with many other parts of SaaS, it’s often a question of Build vs. Buy.
Depending on which scale you’re operating at, you might not want to spend a lot of time here. Your customers don’t see your back end and most apps don’t need any special features here.
It’s a BaaS (backend …). Define your schema and you have a GraphQL API. No further setup boilerplate. If you don’t know GraphQL, it might be something worth learning, as it allows you to move faster in development. Graphcool has a free tier.
While mainly targeted towards mobile app developers, it’s also easy to integrate on the web. It handles things like your database, authentification and hosting. Firebase is a product by Google and has a generous free tier.
Building your own authentification system can make sense. It’s been done hundreds of times, which makes it easy to find something you can copy. But that also makes it more bizarre to build your own. You can also use a third party auth provider like auth0 which is free for up to 7000 active users. Paid plans are rather pricy. It’s easy to integrate with Graphcool.
If you use Firebase, you already have an auth system.
You could also use Amazon Cognito which is free for up to 50.000 users.
There are many CSS frameworks out there. If you’re already comfortable with one, stick with it. It’s not a bad idea to try new things, but it’s not the most time efficient thing.
Choosing a CSS framework takes less than an hour of research. But that sumes up, which is exactly the problem with all parts of your SaaS. You shouldn’t have to spend hours or days deciding on a stack. If you want to move fast and break things, you might just want to use the technologies I tell you to use here.
Smart Marketing Stack
Your marketing stack will include many tools, so it’s important to link them together. You’ll want all your data available in all your tools. That doesn’t only include sending data from your application to your analytics and email tools, but also syncing data between them.
Segment is the most popular tool to help with that task, but if you want to track more then 1000 people per month, it becomes pretty expensive.
Their pricing is such a pain. I still haven’t found a good replacement. 😥 — Justin Jackson
So, if you’re a solopreneur, Segment doesn’t make too much sense for you. If you are a team, go for it. Especially when you use many services that integrate with Segment, it’s worth it.
Email Service Provider
I personally like Drip, but there are many services that have similar features while being cheaper. I personally haven’t used many services in this space, so you might want to ask someone else here.
Mixpanel is a great tool to see the journey of every individual customer if you’re into that. Heap and Hotjar also offer free tiers. But if you’re just starting out, you shouldn’t worry about analytics too much. Setting them up should take you less than one hour.
Every business should have a CRM of some kind. Hubspot’s CRM seems solid as it’s free and plays well with others. I like Streak CRM for smaller projects. It has a mail merge feature, which lets you send semi-bulk mail directly from Gmail.
I mentioned all the above services to show how much trouble it is too decide which ones you want to use. Integrating them is even more work. I never used Userengage, but it sounds like a great solution. It does many things in one app, which means that they are already perfectly for you.
Like promised at the beginning of the article, there is no go to solution. I hope that this article could still help you on your way to build your next SaaS.