Serial SaaS Devs, what's your workflow when starting a new project?

Aside from the non-technical stuff like validation, what do you normally do for a new project? Do you:

I've personally tried an out-of-box app template, there were some pros and cons though, so now I'm trying to start from scratch, with an eye toward building my own template. Am curious what everyone else does.

  1. 5

    That's exactly why I created the SaaS boilerplate - I use it all the time and it allows to start a new project in minutes.


  2. 3

    I have my own workflow that I've refined over the years. A lot of templates/scripts/services have come and gone over the years. The mainstays are still there though:

    • DNS Simple for my registrar
    • Github for source control
    • Heroku for hosting (have experimented with Netlify/Vercel and they're just as good)
    • rails new with most config options disabled. I like to have as much of a barebones Rails app as I can

    I've followed this workflow for so long that It finally hit me to start automating some of it. And thats what I did this past week with a CLI I've started hacking together.

  3. 2

    I packaged gems that I always use into a rails template that kicks off my new projects:


    It's a bit out-dated now but this is how Bannerbear.com began!

    1. 1

      Thanks for sharing! FWIW your story with Bannerbear is very inspiring!

  4. 2

    I have my own ever-evolving set of libraries that I reuse on multiple projects. Most of my projects are built with Node on AWS, from scratch, with these libraries.

  5. 2

    Use a previous project as a framework.

  6. 2

    I prefer starting from scratch. There are some common things for sure but every app is mostly different.

  7. 2

    I start from scratch. tech stack depends a little on what I'm trying to do.

  8. 2

    Good lord the boilerplate you mentioned has way too many dependencies for things that can easily be managed otherwise.

    1. 1

      The sjabloon or thoughtbot one? I agree in any case, which is why I’m trying to personalise one for myself. It’s good for learning though. Did you have a workflow to suggest?

  9. 2
    • Find a name using my tool, naminus.com

    • Design the screens, first rough mockups on paper, then several iterations on figma.com

    • I use Scala for the backend, so usually 'sbt new' (or the new project wizard from Intellij).

    • For FE, I use vue.js

  10. 2

    Personally I just reuse an old project. This consists of a Python backend (Flask + Postgres) and a Create React App front end with Material UI components. Then run everything on Heroku for hosting and use AWS for auth / storage.

    I like the idea of using someone else's template but I've found the amount of time it takes me to get up to speed / tweak things to fit with my workflow negates any potential time savings.

    Templates can be helpful though when you're not as familiar with something.

    1. 1

      Yeah I can totally see this. For me the more barebones a template is, the better.

  11. 1

    I made my own Next.js + Firebase Starter — https://hellonextapp.com/

  12. 1

    Mostly use a an old complex SaaS project that I made, and use that as a blueprint.

  13. 1

    My journey (in some ways typical until step 3)

    1. For my first few projects I started from scratch using my framework of choice. For me that was django-admin startproject
    2. Eventually I did enough boilerplate stuff on each new project, that I started copying my last project. This has pros and cons - you get a bunch of stuff "for free" but you also get a bunch of stuff you didn't want that you then have to remove. This is how you can end up with cruft in your codebase that isn't actually used but hangs around.
    3. I saw enough need (and market opportunity) and decided to make my own boilerplate product. This is SaaS Pegasus: the Django SaaS boilerplate. Now I use it for all my projects and it's amazing.

    Take point 3 with a grain of salt though. The boilerplate is perfect for me, precisely because I wrote it to meet exactly the development workflow that I liked. When you buy someone else's boilerplate you're going to get their workflow. This might be a good thing - and usually is, especially when you're new to the framework. However, it's never going to feel as "familiar" as if you'd gone through the trouble of writing it yourself.

    I think boilerplates are a good way to 1) ship something super quick, and 2) learn or familiarize yourself with a way of doing something in a framework from a trusted expert. If you're the type of dev who's already got 10 projects on the same stack and you know the ins and outs of it, you can probably keep copy/pasting from the previous project and you'll be fine.

  14. 1

    I try to follow Stephen Fry's (Podia's founder) advice as much as I can with regards to doing customer interviews at every stage of the process (https://medium.com/better-programming/podias-founder-on-the-importance-of-talking-to-customers-d68b1c28376a).

    I am in the process of building SEOly. I already had around 5 customer interviews without having any code to show. I am spending ~ 3 days a week reaching out to potential customers and 2 days coding.

    If you are looking for a tech quickstart, this is the template I'm using to start a modern rails stack (https://github.com/cionescu/rails_6_active_admin_crm)

    1. 1

      Thanks for sharing! This question is a bit tangential, I hope you don’t mind - how did you find and get in front of your potential customers?

      1. 1

        No worries, don't mind at all. Right at the beginning, we posted a few messages on various networks (Linkedin, Reddit, IH) offering people free lifetime access to SEOly if they agree to chat with us. That got us 4 connections. We got to 10 by continuously monitoring these social networks + Twitter and engaging in conversations when the topic was in our area of expertise.

  15. 1

    I have my own templates that basically have everything I need.

  16. 1

    I'm actually building my own web app starter kit/boilerplate: Nodewood.

    I've come to really appreciate using just one language for the front-end and back-end, since it means you can use the same validation/libraries/models in the browser as you do in the API, which limits the amount of code you need to write and maintain. Then, on top of that, I use MassiveJS as my data-mapping layer, instead of an ORM. This means I can have models that accept JSON (either from an API request or from the DB) to "build" them, and I can then use my models both in the back-end and front-end.

    This is all on top of the standard boilerplate stuff like user authentication/management, subscriptions, application/UI boilerplate, admin panels, etc. If you don't use at least some kind of starter kit, you're going to spend weeks at a minimum building all that out.

Trending on Indie Hackers
I watch how IH is turning into a marketing sink, and I feel sad :( 48 comments Bootstrapped my SaaS to $20,000 MRR. AMA! 33 comments Bootstrapped my productivity app to 700 paying customers! AMA. 27 comments How we got our SEO clicks from 1 to 1200 a day 14 comments Which is the best free websites to promote your product? 4 comments Would you unblock others for a fee? 2 comments