I originally published this article on Medium, where hundreds of folks already read it.
I got the inspiration for this article here on IH, while writing my answer to “AskIH: What tech should I use for a basic web SaaS?”.
I guess that most of us still spend a couple of hours on choosing their tech stack. Yet still we question whether it’s the right decision. Could we have built our app quicker?
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 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 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, even if you use a boilerplate. I’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? None 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 one is the best for building a SaaS.
Like most visual editors, Bubble does a great job with 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 et 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 don’t get 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 and enable 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 quick 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. This is 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 and code should be written with code. Visualizing technical processes like the workflow of your marketing automation system is 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 should 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 you first $50,000 of revenue. 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. They have 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 with less than an hour of research. But exactly that’s 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 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. (This article has affiliate links). 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.
This article was originally published on Hackernoon.