101
57 Comments

7 opinionated tools I always use to build my SaaS, and how I go to market faster.

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

  1. Do not roll your own Auth.
  2. Do use what you know.
  3. Serverless + JAM stack Hosting.
  4. Database - Keep it simple stupid.
  5. Don't waste more than 45 mins on logo design.
  6. Do spend at least a week on your domain name.
  7. Transactional & marketing email.
  8. Collect dollars only when your fake billing page breaks.

❌Do not roll your own Auth

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

  1. Firebase Auth
  2. Magic Links
  3. Supabase Auth
  4. AWS Cognito
  5. MongoDB Realm Authentication My pick
  6. Auth0 & Okta are the OG's but pricey when you scale. Also, I'm not sure if they're still cool?

✅Do use what you know.

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. 🤭


✅ Serverless + JAM stack Hosting

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

  1. Vercel
  2. Cloudflare - My Pick.
  3. Render
  4. AWS S3
  5. Alibaba Cloud Object Storage Service
    The last two are object storage which works great for hosting static files, but do need to be managed and shoved behind a CDN.
    plus literally 100 more options.

✅ Database - Keep it simple stupid... said someone mean 🙄

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

  1. MongoDB Realm.
    My pick Realm allows me to execute database updates/queries from the client which is a game changer, no backend needed and fiddling around with backend API's to make a db connection. Time saver and a joy for my clients to use.
  2. Supabase looks promising postgres managed DB.
  3. Firestore You already know this, not opensource.
  4. Fauna DB Simple pricing, auto scales, worry free, but has a learning curve, *FQL whaat? - Not opensource.
  5. AWS has a tonne of hosted options, but apart Amazons own DB option, none of the others are native, I would rather go and sign up with the provider direct like MongoDB, if I was looking for a document store.
  6. Air Table, Google sheets are options too, but not really opensource and you need to learn their API.

❌Don't waste more than 45 mins on logo design

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 :

  1. No Logo just use a 24px font size and <em> tags and voila.
  2. Logology Ask for Lucie she's amazing with an eye for design. 10 mins svg and eps logo done.
  3. NameCheap Logo Maker formally Launchaco nice free option and done is 7 mins.
  4. Whatever you decide save your logo as a SVG.

✅ Do spend at least a week on your domain name 😜

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


✅ Transactional & Marketing Email Options

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

  1. 👍🏻 Postmark Transactional One of the best and easiest API for sending transactional messages, support is genuinely remarkable, ask a question, get a helpful reply within a couple of hours. $10 for 10K transactional, you can't go wrong. I use this for email verification, lost password, etc. Lots of customizable options via the API. The downside is Postmark is not a marketing suite, and they don't want to be. You can send broadcast messages, but they kinda want to stay away from the whole drag and drop template builder and automation aspect of marketing. Still an amazing transactional service.
  2. 👎🏻 Mailjet Not for me, tried them several times, support wasn't there , dated UI Don't use them; could be wrong but I have nothing else to say.
  3. DRIP Good if you have an eCommerce site or selling tangible items, but if it's SaaS, I think they are more focused platforms.
  4. Courier I'll be using this one soon. The cool thing about Courier is that it scales, and you can get started for free. You bring your mail service to them. So if you have a Postmark Account or Amazon SES, Courier will use your keys to send all your Email through their beautiful interface. You now get templates, automation, transactional, and other shiny things all within Courier. IMO Postmark + Courier could be a winner.
  5. 🙏🏻 Noteworthy mentions I have tried and used in past projects include:
    a. Sidemail Patrik a fellow Indie Hacker built this, great UX.
    b. AutoPilot
    c. ActiveCampaign
    d. MailerLite
    e. Parcel For coding your email templates, ask for Avi.

💰 Collect dollars only when your fake billing page breaks

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

  1. 6

    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 :

    • Cloudflare Workers so much enjoyable to use than Lambda
    • Carrd for single page sites. Crazy cheap $49 year for 25 sites. No brainer.
    • MailerLite really good for marketing emails, reminds of basecamp/37signals in the early days
    • Postmark like you said they rock on transactional emails
    • Stripe Payment links, don't even need to setup a fake page anymore
    • Namecheap for cheap domains payed 4.99 for neologin.co

    Btw, I'm tackling "Do not roll your own Auth" with neologin.co

    1. 1

      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.

  2. 3

    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 )

    1. 1

      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.

  3. 3

    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

    1. 1

      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.

    2. 1

      Hi Geoff, thanks for your input, im going to be checking out outseta, looks like it covers a lot of bases.
      Best, Rishi

      1. 1

        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

    3. 1

      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.

      1. 2

        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

  4. 2

    Good posts, thanks for reminding these again

  5. 2

    Good Post, really helpful

  6. 2

    Love this!! -> "Collect dollars only when your fake billing page breaks"

  7. 2

    "Just no PHP"

    Lol, ok.

  8. 2

    " 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

    1. 1

      I wish someone else told me the same, thanks for your reply.

  9. 2

    Great post! Looking forward to part 2!

  10. 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.

    1. 1

      Thanks. Nice addition with namestation. I do like the contests, that would distract me for hours!

  11. 2

    Great post full of excellent info. Cannot wait for part 2. 👍

  12. 1

    I like this post. Possibly one of the best posts on IH for devs to take a look at.

  13. 1

    As you talked about stripe payment. I have few questions:

    1. 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?

    2. 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 :)

    1. 2

      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!

      1. 1

        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.

  14. 1

    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.

    1. 2

      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.

    1. 2

      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.

      1. 1

        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

  15. 1

    What a grateful post you shared here and I would like to share some best saw tools that they have been collected here.

  16. 1

    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:

    • Authentication
    • User Profiles
    • User Impersonation
    • Subscriptions using Paddle
    • Subscription Plans
    • User Roles
    • Notifications
    • Announcements
    • Fully Functional Blog
    • Out of the Box API
    • Admin Panel
    • Customizable Themes
    • Simple integration with the DigitalOcean App Platform

    https://devdojo.com/wave

    1. 2

      Forgot to mention that it is free and open-source too

    2. 1

      if only the JS eco sytem had such tooling.. oh wait npm.. 😱

      1. 1

        Isn't npm a package manager and not a SaaS starter kit? 😅

        1. 1

          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.

  17. 1

    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.

    1. 2

      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

      1. 1

        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.

  18. 1

    you can check out sawolabs for passwordless Auth too!

    1. 1

      Looks good, do you use them? whats good and bad about them? and how is the interface and account management?

  19. 1

    This was an awesome post, @Rishi_Uttam

    The fake payment page is interesting. Had heard @levelsio on YouTube mention using this strategy

    1. 1

      i need to follow @levelsio, thanks for your feedback. what you working on?

      1. 2

        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

        1. 2

          cool like a mastermind buddy system!

    1. 1

      Hey philip, thanks man, what you working on?

  20. 1

    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)

    1. 1

      will check them out, did you buy your last domain from them? how was the process?

  21. 1

    Auth0 is still cool! I've been super happy with it on my stack.

    1. 1

      thats great! thanks.

  22. 1

    The fake billing page tip was priceless. Thanks Earl

    1. 2

      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.

  23. 1

    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 :)

    1. 1

      Thanks for your comments.

Trending on Indie Hackers
After 10M+ Views, 13k+ Upvotes: The Reddit Strategy That Worked for Me! 27 comments 🔥Roast my one-man design agency website 18 comments Launch on Product Hunt after 5 months of work! 16 comments Getting first 908 Paid Signups by Spending $353 ONLY. 13 comments Started as a Goodreads alternative, now it's taking a life of its own 12 comments I Sold My AI Startup for $1,500 and I'm Really Happy About It 11 comments