Part 1 of 2
Your startup is going to the moon 🚀, your mom and sister are super excited. Nobody else cares, and until they do here are my thoughts on the tools stack most solo founders should use for a micro SaaS startup.
Hopefully this list will help you avoid the burnout and disappointment that I and other founders experienced.
TOC
As much fun as it was the last time around, there's only so much JWT's vs Sessions & Cookies Vs Local storage arguments you can have in one day. 🥱 It's not worth building a scalable user authentication system on your own. But sure you can take a deep dive down the endless rabbit hole and watch this and this oh and this and dont forget to read this. But in production, go with one of the big boys.
Auth options
Don't waste time learning that new tech stack you saw on fireship.io. Astro with CloudFlare Workers & Solid JS comes to mind; Instead, go with what you know to get traction quickly, then tweak/learn/improve. If it's Rails, then go with it; if it's Django, perfect. In my case, Vue 2.x SPA with pre-rendering. Just no PHP. 🤭
There is no excuse for not loading fast in 2Ø21. Indeed, not all cities are within reach of edge locations, but sub 3 second load times for FCP is certainly doable. Managing servers are great, but handling both the front and back end coupled with SaaS marketing and two crying kids is HARD. Focus on the fronty part of the site and spend the rest of your time figuring out how to GO TO MARKET. Let cloud functions and server less do the rest. IMO don't bother with managing or scaling hardware.
If you need to scale hardware, that's a high quality problem to have, and perhaps you should be writing articles instead of reading this one.
Hosting options
Or they might have said keep it open source and hosted stupid, whatever, I did exactly that. Simple was using either documentDB's or SQL.
Hosted DB options
If this is your first SaaS, then I'm going to tell you the exact opposite of what I would recommend everyone else. Go on, spend 3 weeks fluffing about with some fancy Adobe package crafting that awesome abstract logo, you're going to do it anyway, after all its all part of SaaS building fun 🤗, hugs and rainbows and unicorns 🌈🦄.
Once your done wasting your time, come back to reality and just TYPE in your logo, shove it in the top left of your <nav> and your done. You can thank me later. 👏🏻
For second time founders these tools take 10 mins and the result is a million dollar logo :
Finding your unicorn domain name, has almost zero effect on the success of your business but is inherently exciting. I always recommend searching for a domain while you build and not before. If you lose interest in your idea 7 days in, at least your not out of pocket 24.99. More importantly you save yet another domain name from biting the dust in your already lengthy list of dreams in your GoDaddy account.
Don't use traditional registries like GoDaddy when searching for your perfect name, they tend to store cookies and increase pricing on subsequent visits! Clear your cookies when searching for the same domain over again. Their also known to buy up your domain just before you do.
Instead use tools like:
DomainR Scans several registries at once with a really nice UI.
Cloudflare Register No markups, nice UI.
Hover - No ads, no upsells, costs a little more but worth it My Pick
Introverts tend to mourn the thought of actually reaching out and saying 'hi, hello, how r u'. Sadly in SaaS, you do need to talk to people... Well, at least your app does, so it's not all that bad, below are some options to help you with your SaaS communication. There are many options above $60 per month with automation and drip marketing, but they might be overkill for a solo founder, so I will not list them here.
Email Options
Back in the early 2000's I remember setting up a lengthy merchant account with Authorize.net, the days before PCI compliance! Yes this does date me, but if you think dealing with payments is hard now well, you should have seen it then. Merchant accounts, discount rates, customer service, paper reports, thousands in setup fees, it was a real mess especially for beginner devs like myself.
Thankfully two Irish boys saved us all from dying a slow poor death. Thank you Stripe 🙏🏻🍻☘
Still even with Stripe, don't get too excited and build out your custom payment flow too early, get traction first. In my early failed startups, I've spent countless days, weeks setting up custom billing, accounts, upgrading and downgrading all for nothing, no-one visited, nobody paid, hence please don't do this.
I now use a fake payment page for new projects 😁, and when someone tries to pay me, only then do I implement Stripe. The user gets an error message and is contacted later to the stripe payment form a day or two.
I highly recommend Stripe for two reasons. Their API is relatively easy to understand, and if you get lost in the docs, they have live chat support for all account levels. Support is friendly and super cool.
Payment Options
Stripe Checkout - Simple way to build checkouts quickly hosted on stripe.
Stripe Elements -Custom styling, more finesse , inputs on your page.
Braintree Yeah I would now say there API is as good as stripe, not sure about the support, but they do have PayPal payments built in!
Paddle - Lots of SaaS using this now
Charging Bee - Looks cool too.
Did you find this post helpful? Let me know what other tools you use?
Part 2 will be landing soon.
Follow me on IH and twitter for more opinionated views on building SaaS
So many golden nuggets in your post. So on point. After a lot of pain and trial and errors what you wrote is pretty much what I follow.
I vouch for :
Btw, I'm tackling "Do not roll your own Auth" with neologin.co
Awesome, glad I could relate.
Cloudflare workers looks pretty cool, although its more like a worker then a real function as you cannot add all node modules as yet; technically workers cant use TCP/UDP and only HTTP hence wont work with some third party apis like cloud databases. However I'm eager to switch all my functions to them due to the no latency stuff.
Caard yup you're right - for a one page front end site, launchaco does allow for multiple pages, duda for saas is another option -- however I don't use them as usually build out my own in a few days, but my UI may show it! 😛
neologin - good idea right now, looking forward to your updates.
my 2 cents — do not implement everything from scratch - use starter kits/templates (I have a list here https://github.com/smirnov-am/awesome-saas-boilerplates )
personally not a big fan of starter kits, you probably have to maintain them anyway., plus a lot of those tools are not free. IMO i would go with tools like i mentioned above that you can stitch together and maintain without complexity, but that is just my opinion.
Good post—I agree with the vast majority of what you've shared here. There are so many tablestakes required to launch a SaaS product and at the earliest stages, getting something to market quickly and efficiently should be the priority so you can focus as much time on what actually matters—product development.
My start-up, www.outseta.com, is building a tool for founders like you that delivers these tablestakes functions so you can launch faster. We cover authentication, Stripe billing, and transactional & marketing emails out of the items mentioned on your list.
The product is very much a kindred spirit with many of the ideas shared in this post. This will likely resonate if you appreciated this post as I did! https://www.outseta.com/twitter
I think one of the major issues with billing services isn’t billing itself. It’s dealing with the taxes of gazillion countries and states out there. Yes, there is Stripe tax but it’s still challenging. I think a merchant of record like paddle has advantage here.
Hi Geoff, thanks for your input, im going to be checking out outseta, looks like it covers a lot of bases.
Best, Rishi
Awesome! If you have any questions at all, just let me know or feel free to book a 1-on-1 with me here: https://calendly.com/geoff-outseta/45min
Hey Geoff.
Great product!
Can it be used for an API-only product, such as https://ipinfo.io/ ?
Do you have any examples? Was not able to find it in the online demo.
Hi @graileanu! Outseta does support usage based pricing models, but from a quick look at your pricing page it's not flexible enough to support your current pricing model (the part where you pay an additional $50 per 100k API calls).
https://go.outseta.com/support/kb/articles/dpWr3mnq/how-to-setup-usage-based-or-metered-pricing
You might want to take a look at saasify.sh—this product is meant for monetizing APIs.
Geoff
Thanks!
Good posts, thanks for reminding these again
sure thing.
Good Post, really helpful
Thanks!
Love this!! -> "Collect dollars only when your fake billing page breaks"
"Just no PHP"
Lol, ok.
" Just no PHP. 🤭" 😂😂😂 Love it!
You know, I failed on this one "❌Do not roll your own Auth" and I feel like I could do better definitely I'm going for this path on the next product I create
I wish someone else told me the same, thanks for your reply.
Great post! Looking forward to part 2!
Excellent post. Im throwing Namestation in there for hunting down excellent domains. They also have name contests which can save you alot of time for a small fee.
Thanks. Nice addition with namestation. I do like the contests, that would distract me for hours!
Great post full of excellent info. Cannot wait for part 2. 👍
I like this post. Possibly one of the best posts on IH for devs to take a look at.
As you talked about stripe payment. I have few questions:
If I want charge users based on usage then how can I do that using stripe or do I need to implement some logic on backend side?? Eg: Lets say I have social media site and first 100 posts by user are free but for next every 100 posts I want to charge user $1 how can I do that? Any suggestions?
If I want have multiple plans for my micro saas product for example free plan then paid plan or enterprise plan etc then how to segregate features & users based on that? Any suggestions or resources which I can follow?
Thanks in advance :)
Hi! I would highly recommend either talking to the free live support on stripe.com or jumping on their awesome discord channel : https://discord.com/invite/stripe, replies are usually very quick.
All of what you said is possible, with either stripe , paddle or chargebee, however i am sure Stripe is the most malleable as you can handle all the logic in your backend using their api.
For no.1, it seems like the user roles will have to handled on the backend, stripe only handles payments, acts as your customer database, and keeps records of subscriptions. You can use meta data and your backend will pull data from stripe, check the meta data and you assign the roles yourself.
For no. 2 i have exactly this setup. Segregating features and users is all done on your side, not stirpe.. Stripe has no idea what features you want to add.. and why should they..
You can create different subscriptions in stripe, Free, Pro, Business and thats all you need. Your backend / front end handles the rest.
Remember this very forum IH is also owned by Stripe!
Thanks a lot for discord link I will check it out. Regarding second point which I mentioned how should I implement backend side I want to segregate features and users depending on plans they sign up for. Any tutorials or reference material? Note: I am use supabase with React and some APIs on Nodejs + Mongo atlas.
Great post - thanks for your sharing,
but whats wrong with php for saas building like laravel 8
is use other is more faster or easiest.
hi Yash. sorry maybe my sarcasm did not translate well.
Absolutely nothing wrong with php, its just a common internet meme to make fun of php (said many js developers better then me). I also know that there are many laravel utilities that help you build faster.
use nocode!
ha! yes quite possibly, i just came across https://automatio.co/ a fellow indie hacker @kinder , however i do feel even with no code you need to pick and choose your tools. You're also very much in a walled garden perhaps not being able as flexible as you are with just code. ask me in 10 years my opinion might change.
Thanks for mentioning Rishi. Indeed no-code space is most likely come with a cost of hitting some limits or customizations. It's depend on the tool/platform it self, how much is invested in it.
But I believe more time it pass, the no-code tools becomes more flexible, powerful etc
What a grateful post you shared here and I would like to share some best saw tools that they have been collected here.
This is a solid list! As a Laravel Developer, I personally use Laravel Wave, it is a SaaS starter kit that comes with a lot of things out of the box like:
https://devdojo.com/wave
Forgot to mention that it is free and open-source too
if only the JS eco sytem had such tooling.. oh wait npm.. 😱
Isn't npm a package manager and not a SaaS starter kit? 😅
yes indeed it is, ultimately any JS starter kit would be using parts if not all packages from npm.. this post which is admittedly opinionated is basically my starter kit, you could say.
A lot of great points and tools here, thanks!
I’d add that Netlify is another simple option for hosting JAMstack. I’d say it’s comparable to Vercel, though personally I’ve enjoyed using it more. It was just easier for me to pick up. And they provide some additional features like their own Auth or Forms you can add fairly easily.
The MongoDB realm sounds interesting. Wondering about how secure it is to trigger DB updates from the client? I’ll have to read their docs to better understand.
Hi Rain,
Tks for the reply.
Sure Netlify, I didn't add it as i've only played around with it and found with all the services and auth it quickly gets expensive, and this is a opinionated piece. Moreover their CDN nodes at the time were not as wide spread as cloudflare, but def a excellent choice for static hosting and functions.
MongoDb Realm is similar to firestore, where you can make queries from the client side. Their SDK will only allow queries to be done if the user is authenticated using rules etc and must be combined with Realm authentication or your own JWT, its quite flexible and more secure then any auth i could roll! Realm Docs
That's interesting about Realm, I'll check that out for sure. I've never used Firestore either, though I constantly hear about it. Keep telling myself I'll try Firebase/Firestore one of these days.
you can check out sawolabs for passwordless Auth too!
Looks good, do you use them? whats good and bad about them? and how is the interface and account management?
This was an awesome post, @Rishi_Uttam
The fake payment page is interesting. Had heard @levelsio on YouTube mention using this strategy
i need to follow @levelsio, thanks for your feedback. what you working on?
Sure, definitely an awesome entrepreneur.
So I'm currently working on https://www.astramind.io where a community of SaaS makers, founders are building in public & engage with potential customers watching their product timelines
cool like a mastermind buddy system!
Great read!
Hey philip, thanks man, what you working on?
Totally agree with "spend zero time on logo". Also I use https://leandomainsearch.com/ when I look for a domain name (especially if you want a .com)
will check them out, did you buy your last domain from them? how was the process?
Auth0 is still cool! I've been super happy with it on my stack.
thats great! thanks.
The fake billing page tip was priceless. Thanks Earl
Yup, believe it or not its true! Combine this with logrocket.com for session reply and you can see what your customers do on your site. When the intention to give you money is there thats when you can continue to build.
Thanks for sharing. I think that technical suggestions are doubtable, but keeping it simple totally makes sense to me.
The email marketing tips are especially useful as we are currently working on, so double thanks for them :)
Thanks for your comments.