Developers September 25, 2020

What tech stack do you use to bootstrap your projects?

Ben Wilkins @nobossio

Hi all,

I'm fairly new to the IndieHacker community and hacking in general. I've been a long time employed developer and recently made the decision to pursue financial freedom and independence like most of us here.

I left my job and I am now working full time on bootstrapping my MVPs. I'm currently working on my second project @FormBox but already I've noticed there's a lot of functionality that I need in each project which has lead me to create a boilerplate app with basic functionality for login, logout, signup, email verification, reset password, HTML email templates etc to allow me to get to that MVP as quickly as possible. I use Python/Django for this.

It got me thinking that the boilerplate project itself could be a good product for people pursuing the same goals. It could save people a lot of time in getting to that MVP stage.

What tech stack do you use to bootstrap your ideas? Do you have a boilerplate app of your own? Would you pay for a boilerplate app loaded with common features and functionality to enable you to build faster?

  1. 16

    I still absolutely love Ruby on Rails. Every single day I use it I do something that would have taken me forever with a different framework. Can always mix in Vue where needed.
    Small projects hosted at digital ocean, big projects with Amazon.

    1. 7

      I’ve been using Rails since it first came out and recently started using StimulusReflex in my new Rails projects. If you haven’t checked that out yet, it’s a game changer!

      1. 4

        Seriously StimulusReflex rules!

    2. 1

      I agree that RoR is still the best choice for indie hackers/startups. There are a lot of ready to use libs which speeds up application building. Ruby on Rails rules!

    3. 1

      What do you mean "still"? ;)

  2. 6

    I use Python/Django for building out MVPs as well. I currently use https://github.com/pydanny/cookiecutter-django for getting started - it comes with a lot of nice out of the box things you need, including relevant libraries (e.g. django allauth for registration related workflows) for bootstrapping your app. This works well.

    What I do sometimes is purchase themes from bootstrap (https://themes.getbootstrap.com/) - they look great, but I often find myself spending a decent amount of time integrating them. I think what might interesting here is marrying the two worlds - cookiecutter with X bootstrap theme already integrated. I could see value in that and worthy of a one-time purchase. You'd likely have to apply this across multiple frameworks or you might have to small of a niche (just guessing here)

    1. 9

      +1 for Django! There are dozens of us! Dozens!

      Also, you are almost describing my product SaaS Pegasus :) https://www.indiehackers.com/product/saas-pegasus

      It currently uses Bulma CSS, but a Bootstrap skin is on the roadmap!

    2. 1

      I guess that's a +5 for Django :)

      I also use Tailwind (for the looks) and StimulusJS (for some action, but rarely)

    3. 1

      I'm finally getting around to investigating Django for a project after a decade or so of using...just about everything else, I guess? Once I've finished reading through the tutorial, I'll have to give Cookie Cutter a look. Every choice I don't need to figure out how to make is a bonus...

    4. 1

      cookie cutter looks like a great project. I remember seeing this a long time ago and obviously I had just forgotten about it! Typical, I have been implementing most of this stuff manually haha.

      That's an interesting idea for pre-themed cookiecutter templates 🤔

    5. 1

      Glad to see someone else using Django :) and cookiecutter

  3. 3

    I used a boilerplate called jumpstartrails.com for TaskBill.io. It was well worth the $149 to have a foundation to build my new SaaS on without having to waste a lot of time on basic things like user auth/accounts/billing etc.

    If you make your boilerplate available, I'm sure you will be able to find people to pay you good money for it.

    1. 2

      Thanks. Yeah I'm thinking it certainly can't hurt after all I've already done most of the work.

  4. 2

    Backend: Golang
    CSS: TailwindCSS
    JS: AlpineJS

    Hosted on: Digital Ocean
    DB: CockroachDB or Postgres
    CI/CD: GitlabCI

    There's a bit of boilerplate, but because I've used the same tech stack several times, the "base" is pretty much copied, like my own personal development framework

  5. 2

    Finding React + Firebase + Tailwind pretty solid for prototypes

    1. 2

      Another vote for React + Firebase. Haven't tried Tailwind, but I hear good things.

  6. 2

    I use Netlify to host my static site (Nuxt.js), Heroku to host my CMS (Strapi) and Cloudinary for images. The great thing about this stack is, that it lets me iterate very fast, as well as it is completely free of charge. Having a small burn rate lets me iterate over products, without having to look at my budget.

    To answer your question: "Would you pay for a boilerplate app loaded with common features and functionality to enable you to build faster?"

    If it comes to me, I wouldn't pay for a boilerplate app, because there are a lot of open source projects out there, that enable you to prototype fast and which are also completely free to use. I also don't like to spent time on bending a boilerplate prototype to fit my own needs.

    But I can't speak for everyone, because I'm a developer and know how to set up a prototype fast. Maby there is a niche for people, how are either starting to code, or have trouble setting things up.

    1. 3

      That's a nice setup if you can churn out prototypes and get feedback for free. Javascript seems to be a very popular choice for rapid development. It's been a while since I tinkered with JS for backend work but I know the JS ecosystem moves a lot faster than others resulting in more choice of libraries for common tasks like this. I may have to do some investigating and see if it's worth looking into again. It's just a shame it's such a horrible language 😄

      1. 1

        I could't agree more. JS is a horrible language, thats why I'm often using TypeScript, to negate some of its pitfalls. But when it comes to prototyping it is like a swiss army knife :D

  7. 1

    For me Nuxt and Vue has been the best boilerplate, since I mostly develop Single Page Applications and I am comfortable with Vue.

    I use
    Frontend : Nuxt + Bulma
    Backend : NodeJS + Express

    Here is my recent project I bootstrapped with that stack in 45 days, an smart-directory of online tools : https://kitdb.app/

  8. 1

    I’m using React + Tailwind CSS for front end and FastAPI for the backend. PostgreSQL for server and hosting it on digital ocean!

    Loving this stack. I work at a consulting company and have tried lots of stacks but this one has been very enjoyable :)

  9. 1

    For landing pages (product info, pricing, etc.) using a 3rd party website builder works great, IMO. You can even use a free plan, and put it under a custom domain name using Cloudflare Workers as a proxy:

    https://github.com/kriasoft/nodejs-api-starter/tree/main/proxy

  10. 1

    We're using JavaScript/TypeScript cross-stack for building web-based products (Node.js, GraphQL, React, Material UI, PostgreSQL). It allows to reduce the amount of things a full-stack developer needs to be proficient in (you can even configure a reverse proxy with it, using Cloudflare Workers).

    Deploying to Google Cloud (GCP) using serverless instrastucture.

    See https://github.com/kriasoft/nodejs-api-starter

  11. 1

    For mobile development lately I am experimenting with Flutter + Firebase and it works well so far.

  12. 1

    My surprise would be jquery; it’s too functional to give up 😹
    Otherwise I use a cloudformation pipeline I built specifically to pump out node js projects left and right

  13. 1

    PyTorch and a large cluster of GPUs :-0

  14. 1

    I would definitely pay for something like this with Python/Django. The https://www.saaspegasus.com/ looks great, but is way outside of my budget. Especially when I'm just trying to get an MVP going with little to no traction.

  15. 1

    NestJS or Python Flask for backend. Hasura for database/graphql. Angular for front end. Bulma or Tailwind for CSS.

    Netlify or Firebase for hosting static web app. Hetzner for cheap VM hosting. All backend runs in docker containers. If project takes off then I move to a Kubernetes cluster, hosted in Hetzner. K3S is my Kubernetes distro of choice.

  16. 1

    For any of the backend functionality, I love node.js to get up and running quickly and for being able to integrate many other services.

    However, for my MVPs and for validation, I always aim to make it as simple as possible to be able to perform the gist of the idea via the frontend only. I then host my frontend code on AWS S3 and Cloudfront. This lets me get something up and running really fast.

    Then as I slowly build it out, I use my node.js server for my API endpoints leading my stack to be essentially a mutant JAMstack. I say mutant cause I know most people go the Netlify route - but I guess this kind of works for me.

    Go ahead and roast me for this but as a self-taught developer I guess I really am just making things up as I go along.

    1. 2

      Hey, if it works for you nothing else matters

  17. 1

    Same here, I use Django too

  18. 1

    For me it's Flutter for client, TailwindUI + Publii for the website & Firebase for the backend (I chose Firestore over RTDB).
    I doubt you can get much faster than this (except if you go with a drag&drop site builder). It might not be the most optimal way for every scenario, but I have yet to find something more enjoyable.

  19. 1

    I use Jekyll templates with an AWS S3 bucket hosted behind an AWS CDN for most single-page apps.

    In lieu of that, I'll run a Python Flask application on AWS ElasticBeanstalk.

    If the architecture isn't fast enough for me to buy ads, it isn't a good test for me. I have to be really cognizant of latency.

  20. 1

    I'm using the post graphile starter https://graphile-starter.herokuapp.com/ for my project (collaborama). As it says in the README its not aimed at beginners, but it is fantastic.

    I was tempted by https://www.saaspegasus.com/ months ago, and might have thrown down for that if the same existed for js/ts... I didn't want to use Django personally.

    So yeah, if the stack was right, the price and the terms were right, I would definitely pay for a solid boilerplate in the future. I don't want to spend hours or days laying out a project, rolling or plugging in auth, etc.

    1. 1

      The documentation for graphile starter is outstanding. It clearly tells you the prerequisite knowledge to get going with the code which I appreciate. Great way to entice people to using postgraphile haha (which I've no problem with since postgraphile docs is also excellent). Although I would still say it's pretty intimidating to look into the code for the first time with so many config files and code to get familiar with. Thanks for the suggestions :D. What was your experience like using this and what do you use it for?

      1. 1

        My experience has been great, the starter has taken care of a lot of things that I have wasted a lot of time with in the past. There wasn't much config to change after simply downloading and starting the app. I have been able to make changes as I need to, starting with the UI, then the data model via built in migration system, then adding background jobs with the built in queuing system, etc.

        I am building Collaborama (collaborama.ca) which is an integration platform for software development teams.

        What are you working on?

  21. 1

    It is nice to see people using Django.. It is an awesome framework! I stick with Django as well.. I have made a Docker setup for small projects which handle ssl, database, nginx etc.. you can find it here: https://github.com/cr4zyd3v/django-docker-ssl

    django all-auth, wagtail for cms functionality, celery fork async tasks and so on.. well, it is awesome!

    While in the front I keep with bootstrap mostly.. django template engine helps a lot when using bootstrap.

    1. 1

      This is a cool little setup. I use docker quite a bit too, especially for local development to mimic production environments. I would recommend Caddy server for the SSL stuff, I set it up recently with a one line config file and it just takes care of all the SSL certs for you automatically 👌

      1. 1

        Oh yes! saw this one in the cookie cutter template. Just went for nginx as it serves static files with good performance.. Whitenoise is also good for static files I am sure and I will definitely test it as well

  22. 1

    Django all the way up :) as backend. I don't try another backend framework yet but it's the only that allows me to set up my user auth in few hours.
    For Front-end, I'm using Bootstrap as CSS framework.

    1. 1

      Just so I understand... Django is the only framework you've tried, but you're confident that it's the best?

      You might be interested to know that you can have a Rails app with Devise-based user authentication in <5 minutes. Authentication is not a compelling reason to choose Django over Rails. In fact, the only good reason to choose Django is if you already know Python and you're under tremendous time pressure to finish ASAP.

      1. 1

        Great! I'm Python developer and I don't touch another programming language yet .
        In the future, I'll give a look at Ruby.
        Thank.

    2. 1

      Same here! It is perfect!

  23. 1

    Current tech set up includes:
    NodeJs on AppEngine
    React CRA Front End
    Cloud SQL
    Cloud Functions
    Google Cloud Storage
    Jekyll - GitHub pages for marketing site.

    What's nice is some people might not realize most of the above is free at such an early stage. The only real cost currently is Cloud SQL which is about £8 per month.

    And of course stripe for payments and plausible for usage analytics.

    1. 1

      Same here, most of our MVP hosting costs come from Cloud SQL ($8/month) and the rest of the GCP stuff we're using is almost free - Google Cloud Function for Node.js GraphQL API backend, Google Cloud Storage for user-uploaded content and static files. Cloudflare / Cloudflare Workers as CDN layer.

    2. 1

      Have you gone with this setup because you're most familiar with it, or are you setting it up this way to be able to scale quickly?

      I ask because not long ago I would have done something similar, I was looking into setting up a Kubernetes cluster for my small projects but more recently I have tried to reign in my obsessive need for perfection and my tendency to over engineer everything to the point I'm now considering launching FormBox with an SQLIte database

      1. 1

        To be honest a bit of both, it's similar stack combination to projects I have done in my day job recently. Have also worked a lot over the last 2 years with a lot of the GCP product set, particularly across the Data space (BigQuery, DataStore, DataProc etc... so very familiar with them platform. Haven't personally used Kubernetes as much as I would have liked so far, we do have a few services deployed to it, things like Elastic Search and Julyter.

        I also feel it's so easy to get everything up and running and on-going deployments are simple, connecting between different products is easy and finally as you say, if you need to scale it's a flick of the switch.

        And as I say even without the trial credit most of the stack is still free under their free monthly allowances.

        Would however say this is a slightly biased view, in my past I have mainly worked on GCP and AWS. I haven't yet fully tested other platforms like Netlify and Heroku for live projects just briefly had a play with them.

        Will probably test one of them properly for my next project.

  24. 1

    Laravel, along with bootstrap and Vue.js - This is a stack that's very easy to get started with. I use it Laravel for Amezmo.

    1. 0

      Oh man, I could never go back to PHP 😄

      1. 1

        You'd be very surprised by the developer experience of Laravel. It's really nice

  25. 1

    At the moment I'm enjoying building with Firebase, Node and React. Firebase comes with its annoying bits, and does mean you're tied to a vendor, but gosh if it doesn't do a whole lot for you.

    Personally I've never liked using other people's boilerplates. I always end up heavily modifying them anyway to match how I like to do things. I much prefer to just maintain my own little boilerplates and starters. I know exactly how they work and why I set things up the way I did. Zero learning curve, no surprises.

    1. 1

      Yeah I've certainly experienced this and normally end up doing the same. There's always something you need to change. Do you write all your templates/css from scratch too?

      1. 1

        I do! I actually really dislike all the CSS frameworks. Bootstrap just looks like Bootstrap. Tailwind moves your CSS into your HTML with a thousand classes. SASS, PostCSS and CSS Modules work great for me.

  26. 1

    For setting up a landing page with a form to capture leads I like to use Netlify. I can just take a template like, throw the files for it on Netlify and be done. There's a free hosting tier and you can use a custom domain name too.

    Every project needs version control and I use git (w/ github ever since they made private repos free).

    My go-to stack is Elixir and Phoenix. I like it as a full-stack dev because of the ecosystem of tools and libraries for the the backend and the frontend, and all of the built-in conventions for facilitating concurrency. There are libraries that add authentication with just a few lines of code. It also has a lot of functions that generate code, e.g. create scaffolding for your typical CRUD operations.

    For deployment since I'm a solo founder I typically am pushing directly from my git repo to a cloud service that is hosting my web app like heroku or render.

    It got me thinking that the boilerplate project itself could be a good product for people pursuing the same goals. It could save people a lot of time in getting to that MVP stage.

    Many of the things you mentioned (login, logout, signup, email verification, reset password, HTML email templates etc) are encapsulated in libraries that are accessible to junior devs. With rails you could do $ rails generate devise MODEL.

    It's also my experience building mvps that I'm wanting the app to be tailored very specifically to a target user, sometimes this even comes down to how I authenticate them. For my current project Feature Coach the most important authentication is happening b/w my server, Stripe, and the user, and it's non-trivial.

    What could be easier than using a battle-tested and community-loved library in your favorite programming language? Maybe a no-code solution could have a bigger tam.

    1. 2

      Yeah there's certainly a lot of functionality provided for you in modern frameworks and libraries but from my experience it's very rare to be able to add a library or use a framework as is for a specific use case. It's either not quite enough and needs tweaking or it actually ends up making things more difficult and I end up writing it myself anyway.

      I'm certainly seeing from a lot of responses here too that I think a one size fits all solution for this would be extremely complicated if not impossible. I can certainly relate to the specifics of handling users differently in different apps.

      Also fair play to you for using Elixir! I took a look at Elixir a few years ago but the switch to a functional paradigm was too much for me at the time. I tried again recently with Haskell and as much as I love the concept of it I never seem to be able to stick to it long enough to use it fluently. It normally goes something like this:

      Me: "Wow, this is so cool. No state, no weird runtime errors. Easy, predictable and safe concurrency etc etc etc ... "

      Three hours later

      Me: "Python will do."

      More recently I've been really keen on using Rust but I just end up going round the same cycle.

      1. 1

        Oh ya elixir is a pleasure. But at the end of the day I would recommend to someone who wants to make an mvp, just use what you're already comfortable with and SHIP!

        I may be in the minority when I say this but coding is a means to an end for me. My goal is to leverage it to accomplish some business task or enable some business capability. I'm not trying to become the next Stephen Wolfram or anything.

        1. 2

          Haha yeah! I have to remind myself of this quite frequently. I'll pick up a new tool and get all excited about it then get stuck in a state of analysis paralysis trying to choose the 'best' tool. I've wasted a lot of time doing this

  27. 1

    I use Wordpress. I use it for generating landing pages, forms and blogs. I push boundary of Wordpress to the fullest and then add subdomain with nodejs + react + materialui

  28. 1

    I've used Next.Js + Chakra UI + Firebase + Vercel for my latest project - http://stackpal.me/

    It is SO easy to build a good UI, get auth rolling and create a database structure and evolve the schema!

    You can actually see the stack used for the site - on the site!

    https://stackpal.me/profile/YYDVWgBG2VhXhZnog1rlqyTAORX2

    1. 1

      I'm learning about a lot of cool frameworks and libraries from this post!

  29. 1

    👉 NodeJS - Express (REST) - Apollo (GraphQL) for backend development
    🔥 Swift -SwiftUI for iOS Development
    👉React with Antd for control panel front-end
    👉React Native for android development (instead of learning Java 🤔)

    1. 1

      Cannot blame you for avoiding Java!!

  30. 1

    You’re me haha. That why I built NetcoreSaas, its a Codebase with .NET Core + VueJS

    1. 2

      Site looks great ❤️ for Vue + Tailwind

  31. 1

    Frontend: React (CRA) / Typescript
    Backend: Hasura (on AWS Fargate) / Postgres (AWS RDS)
    DevOps: Gitlab CI / Terraform.

    Sample project here: https://gitlab.com/maxcan/hasura-react-auth0-lambda-starter

    If anyone wants, I can pull the CI code from another project.

    1. 1

      We are building this as a service at https://nhost.io. Nhost is basically like Google Firebase but with Postgres, Hasura and 100% open source.

      Might be interesting for you and others who want to try this stack.

    2. 1

      That sounds... expensive. Am I right?

      1. 1

        Adds up to something like $80 / mo for 2 environments.

        I've been looking at Render which seems to solve a lot of my problems but kind of afraid of falling into the heroku trap.

        1. 2

          Yeah I've been afraid of the same thing but also trying to avoid falling into the trap of over-engineering.

          Are you using that env to spin up concepts or do you have something running that's at least covering the cost?

          1. 1

            First project literally just launched and fortunately our price point is such that our single launch customer covers all those costs and more.

            Will absolutely be sharing our experiences here.

  32. 1

    Hosting

    1. Netlify for static websites.
    2. Digital Ocean for big projects and Heroku for simple APIs.

    Frameworks

    1. Laravel or NodeJS + NuxtJS.
    2. Bootstrap as a CSS framework.
  33. 1

    .net Blazor on Azure
    a lot of Azure functions, azure web apps
    some airtable if I'm lazy, but mostly SQL, nosql

  34. 1

    I use Node.js, AngularJS, MongoDB for my current stack. Redis is used as well.

    My next project, I would use Node.js, React, PostgreSQL (of course assuming it is similar use case to my current projects).

    I use AWS Elastic Beanstalk for my production deployments. I actually just recently started using Heroku just for my Staging environment deployment (free tier). AWS Elastic Beanstalk supports autoscaling functionality for free and is part of Amazons own stack, which is why I prefer it. It does have a steeper learning curve though.

    1. 1

      Yeah I've used AWS EB myself and then transitioned to a Kubernetes cluster on GCP which I preferred but I think AWS have a k8s service now? AWS scares me though because it always starts off quite cheap and then sky rockets in price.

      1. 1

        AWS does have hosted k8s and I've always thought about taking that plunge. The hasura people love k8s but I've been scared of overengineering. On the other hand, I already super overengineered my TF AWS stack

  35. 1

    So, while not Python/Django, so it might not be right up your alley, I'm working on a boilerplate app called Nodewood written entirely in JavaScript, specifically to set you up with an app skeleton with all the common tasks completed. It's just about ready to launch in beta, but when it launches, it will have an application skeleton, user creation/auth flow (including email confirmation, password reset, etc.), and will handle subscriptions for you. I'm hoping beta customers will provide me with feedback to help "sand off the rough edges," and what features to focus on building post-launch.

    As for why pure JavaScript, I strongly feel that there's a lot of time and effort to be saved by building your back-end and front-end in the same language, and Nodewood is built around that. Form/API validation is all written once and then shared between the server and the browser, so if you ever need to update a form, you change the validation in one place, and it works - no duplicated code for validating on both ends to forget or introduce a subtle bug. Models and libraries again, can be shared, so you only ever have to write and maintain them once, and they'll work correctly regardless of if they're being used on the server or in the UI.

    If your heart is set on Python, well, I can't blame you, it's a nice language. But if you're looking to branch out, and Nodewood interests you, let me know! I'll be sending out beta questionnaires shortly.

    1. 1

      Cool! Yeah, after doing some research I'm beginning to see that it seems to be a popular problem to solve. I can certainly see the appeal of writing both the FE and BE in the same language, it's just a shame that language has to be JS 😄

      It's been a long time since I tinkered with JS on the backend though so I think I will do some research on it once I've finished the project I'm working on at the moment. If it can save me more time then it's got to be worth a try and I suppose I can at least mask most Javascript's ugliness with TypeScript.

      Your project looks good. I'm a big fan of Tailwind and Vue 👌

  36. 1

    Honestly I know AWS and others cloud platforms but I think that the fastest way to launch a product is prepare a backend with node.js for example (I love fastify framework, really simple and powerful) and then a frontend with angular or react. For the thing related to payments I love the stripe checkout really really simple and fast.
    For the server I use contabo's server cheaper than all the cloud service and more powerful.

    1. 3

      Another JS fan 👍 I will have to check out fastify and just generally catch up with all the JS frameworks and libraries. It's been a while since I wrote anything serious with it. I would probably stick to Vue.js though. I've written apps in AngularJS and Angular2 and I attempted to learn React but I really didn't like JSX, or Facebook for that matter...

      I'm certainly going to start looking at stripe checkout again, I know they've recently updated it. I found out after I wrote a load of code to handle stripe payments in my last project which is just my luck.

      As for hosting I'm going to investigate Render (https://render.com) which I heard about on IH. It looks to be really reasonably priced and has some good reviews but I know cloud services are generally more expensive than VPS.

      1. 1

        With the recent stripe checkout you only have to setup some callbacks and stop it's really easy, perfect for fast mvp, obviously for big project is better to use the stripe payments system but the express checkout is perfect for MVP

  37. 1

    At the moment I use Netlify&CloudFlare&Typora&CloudFlare for ZeroToUsers.com

    1. 1

      Nice. Does Typora generate a static site from Markdown ? I used Hugo recently which sounds similar

Recommended Posts