10
18 Comments

Show IH: SaaS Starter Kit with subscriptions, Docker, Kubernetes, CI/CD, tests, and more.

I have just created a discount coupon for the first 10 people to grab, extra 10% discount on both of the packages for the IH community as a thank you: indiehackersearlyaccess


Hi everyone,

https://saasstarterkit.app

I have worked on various SaaS products in the last couple of years, and I have noticed that I really didn't like the repetitive parts of the work there. You have to

  • build authentication, email, local development setup
  • pick UI libraries, CSS frameworks, dashboard templates
  • build payments solutions, payment method management, invoices
  • figure out how to deploy your product to live

To be fair, Laravel simplifies quite a lot of these things already; however, there is still some work that needs to be done to publish assets, build dashboard setup, and more. That's why I decided to build a boilerplate that includes everything for a maker to get started:

  • Ready-made dashboard template
  • TailwindCSS & FontAwesome
  • Pre-built auth pages using Tailwind
  • Settings pages that allow things like
    • Changing name / surname
    • Changing password
    • Managing subscription details
    • Listing invoices
  • Subscription management using Stripe
    • Including support for SCA payments
    • Price management directly through the Stripe dashboard
  • Docker & Docker Compose support
    • Run the whole project with all the dependencies using a single command
    • Allowing reproducible builds of the product
    • Simplifying the whole flow of adding more developers to the process
    • Simplifying the deployment options
  • Full unit and feature tests for various pages/modules
  • CI/CD Setup that works with the first push
    • Lints the configuration
    • Build the Docker image for the project
    • Runs the tests on every push
    • Deploys to live when the changes are merged to master
  • Kubernetes & Helm support for live deployments
    • Push to deploy directly to any Kubernetes cluster
    • Standardize the deployment process

Some of these tools and technologies might be foreign to some people; however, throughout the years, I have iterated through various setups and came to the conclusion that this is the best setup for increased productivity and keeping the quality high during the development. For makers, time is money. I don't want to lose more time trying to integrate payments into my product, or build settings pages, or pick a deployment solution, let alone automating it. With Nana, all of these come pre-made.

All in all, Nana is a boilerplate that gives access to all these things. It is not meant to be an updated product; it is a buy-and-fork type of product where one uses it as the basis and starts doing business changes. Nana follows the standard Laravel project layout, therefore all the Laravel upgrades can be done just like any other Laravel project, but Nana will not send updates because it is not the goal: Nana gives the basis, you build your product on top of it.

I hope this explains the product a bit better. I am currently exploring Early Access options with more than a 65% discount, and I'll be giving direct personal support to early adopters through email and video calls.

I have also created a coupon for IndieHackers community for an additional 10% discount during the checkout for the Early Access period, use the code indiehackersearlyaccess during checkout and the additional 10% discount will be applied automatically.

Feel free to hit me if you have any questions or feedback!

https://saasstarterkit.app

on December 14, 2020
  1. 2

    This is a cool kit. But FYI to new indie hackers out there: don't get intimidated by this. You definitely do not need most of this giant list of stuff to get started.

    Personally I would not position this as a "starter kit". You don't "have to" do pretty much any of this when starting out.

    My day job is engineering for a billion dollar tech company and we don't have a lot of this stuff in place.

    1. 2

      I develop a competing SaaS starter kit (different language, though, so I hope we can be friendly competitors =) ), so obviously I am biased, but though you can argue on the specifics, I think you definitely do need all this stuff in general:

      • You need to set up a development environment
      • You need an application framework to add your business logic to
      • You need to be able to get paid
      • You need to be able to deploy your work to production

      Now, there's a million ways to do every step there (maybe you prefer setting up a VM with Ansible instead of Kubernetes), and every starter kit will have their own take on each, plus a bunch of other features to make your life easier. But just having those four things solved for you means you can start building your business logic today instead of a month from now.

      And if this is where you want to end up eventually anyway, even better! No need to take time yourself later to develop it, it comes built-in!

      1. 2

        Just playing devils advocate now, but all of this is possible without writing a single line of code. You don’t need to start writing business logic anywhere to “get started” with a SaaS. I agree about getting there eventually. But this post was about getting started.

        1. 2

          Maybe we're misaligned on the definition of "business logic"? That's the code that make your business unique. So for Stripe, it's payment processing; for an email client, it's the email transfer protocols; for a CRM, it's the stuff that handles saving and updating and contacting clients/customers. That's the one thing you do need to write to get started with a SaaS, it's the stuff that literally defines your business.

          Technically, I suppose, you can Flintstone it, i.e. you can put up a static webpage and perform manual processes to get your business started, but that's almost by definition not a SaaS (missing the first S). Eventually you're going to want to start writing code, and (IMHO) you're generally better-served by writing business logic instead of infrastructure code, unless your infrastructure is somehow your competitive edge.

          1. 2

            I agree we’re misaligned. You’re talking about what you eventually need and I’m talking about what you need to get started. It’s all good.

            1. 2

              I'm curious - what would you say you need to get started, if not business logic? Like, assuming you know the product you want to create, how would you get started?

              1. 2

                To answer that particular question: I’d glue together no code tools. But we’ve deviated very far from my original point now. My comment was about needing the things OP listed in his post to get started. It had nothing to do with the point in time at which “business logic” is needed and how you define it.

                1. 2

                  Ah yeah, nocode is also definitely a way to go. I guess we're just coming from the "if you're writing software, write the software the differentiates you, not the boilerplate stuff that customers only care about when it's missing." =)

              2. 1

                I gotta run so I’m good with this thread. Gonna go back and upvote all your replies because this was an interesting convo. Cheers

    2. 2

      I completely agree! I too have worked at a Unicorn that didn't do all of this and have seen multiple small startups tanked by going down the infra astronaut rabbit hole.

      Recommended listening:

    3. 1

      I think the things in that list are to make development more fun. Once you set them up, it's easier to develop and progress.

      I'm personally a lazy developer and hate repeating the same things. Of course, it's not a have to list. I still think it's always good to have a similar setup to this product.

      I do really wonder which one is unnecessary in this list for unicorns, though. Can you please explain a bit more about it?

    4. 1

      Hey, thanks a lot for the input!

      I, by no means, have meant this to be a "have to" list for people to get started; completely opposite, I just want people to take every opportunity they can to get started with some stuff somehow. This has been a tech stack that I have found myself and some others to be productive in, that's why I decided to make it into a product, but this is not at all a "must-do" list in that regard.

      Whoever is out there looking at this, do not get intimidated by the stuff mentioned here. If you have questions or would like to learn more about any of the tech mentioned in Nana, I would love to have a chat, regardless of whether you use Nana or not. We are in this together, and we should be supportive of each other.

      I am sorry if it came forward in that intimidating way to anyone.

      1. 2

        I, by no means, have meant this to be a "have to" list

        Ah, ok. Maybe rewording these parts of the post would prevent others from reading it they way I did.

        You have to [list of things]

        everything for a maker to get started: [list of more things]

        All good, though! Its definitely a cool project and good luck on your journey!

  2. 1

    This looks really, really great - actually recently I spend considerable amount of time looking for something I can use to prototype / build stuff ,but I hate using no-code tools as I always have some edge situation, which, to solve it feels like back in assembler times with building stuff on top of already compiled code....

    Probably I would convert into customer when you would also offer API first approach. But I would really need opportunity to add my own endpoints without much overhead.

    In addition I read though the license and I could understood what I can and cannot after couple of minutes so I recommend using some standard type of license.

    1. 1

      Hi there, thanks a lot for the feedback! I fully agree with you, I would rather have the code to be able to change things than to have a no-code solution, like you said it is usually the edge situations that make things way harder.

      I have a couple of questions to understand your points better if you don't mind:

      • When you mean an API-first approach, do you mean a SPA, powered by an API, or do you mean just the API itself to be able to build stuff on top?
      • For the license, do you have one in mind? I am asking this genuinely, because I have looked around for proper licenses to use with this, but I couldn't find an example other than the custom ones like this, that's why I used it. I am very open to suggestions here.

      For now, SaaS Starter Kit doesn't change the default API capabilities of Laravel, which means with a couple of lines of code you can expose API endpoints and reuse majority of the existing code. I have also experimented with a Vue-based SPA with the Laravel API, but, even though I liked the setup there, it was still more complicated to build and deploy than to server-rendered templates in many ways, that's why I decided to start with that setup. I'd love to hear your suggestions there to see what can be improved for those who'd like to have an API as well, and I can release a new version with those improvements maybe.

      Cheers!

  3. 1

    This should be what arctic monkeys is to indie music but to indie hackers: Every indie band's starting point. Good luck and keep IH updated!

    1. 1

      Hahahah thanks a lot mate, I wanna bet we all look good on the dancefloor when we launch!