8
33 Comments

Tech stack struggle

I'm currently working on building a few apps locally, to keep my skills sharp for when the right idea comes along. I was curious what people are using for their stacks. I'm struggling to decide if I want to use Reactjs + FastAPI + Postgres for my stack, or if I should be using a framework that helps with faster development like Django + Postgres and the templating system that comes with it. Any advice or suggestions would be great!

posted to Icon for group Developers
Developers
on November 22, 2022
  1. 1

    Both stacks are solid—React + FastAPI is great if you want a modern, scalable API-first setup, while Django shines when you want to move fast and ship features with less boilerplate. If speed and simplicity matter right now, Django is hard to beat; if flexibility and frontend freedom matter more, go with React + FastAPI.

  2. 4

    Based on your post, I see you are at a point to pick the tech stack, learn it and use it to build profitable products.

    I would rather suggest to think about an idea, build a landing page, get a few signups and then worry about the tech stack. I have been writing to 20K subs around Micro SaaS at Micro SaaS HQ. This could be a good starting point.

    But as a general guidance, ReactJs+NodeJs is a decent suggestion from my side without thinking too much of what tech to pick.

    1. 2

      Who doesn't know Micro SaaS HQ?

      @NathanN here is the practical proof, you can go on.

  3. 3

    Ditto everyone - use what you're best at. However, if you don't know the answer I'd invest in the tech that has shown to have lasting power + a strong community (e.g. don't fall for the latest and greatest toy). To me, it looks something like this
    1.) FE - React: FE means js, which means you need a js framework and React isn't going anywhere. I wouldn't invest too heavily in the templateing languages - they're good/ok for things like internal views/pages, and quick POCs, but you're going to outgrow them super fast
    2.) DB - some SQL server, Postgres, MySql are good options, but its sql at the end of the day (also lots of BE frameworks have ORM's to abstract the sql anyways)
    3.) BE - pick your favorite language. If Python is for you, Django/Flask are two perfectly viable options. Java -> Spring, Js -> Node, etc.

    Bonus:

    • For FE, utilize component libraries like MUI. This will save you a ton of time and your site will look professional and responsive very quick. CSS and styling is not something you want to be spending hours on in the early prototyping phase (save that for hires down the road)
    • For anything JS, use Typescript. Small upfront investment, saves a bunch of time debugging + strong industry support
    • Having an all JS stack is nice because you don't have to context switch between languages (e.g. React, NodeJs backend)
    • If you're ML/AI heavy, python backend probably makes more sense
    1. 3

      The perfect explanation man 👍

      For the past few years, I adopted JS stack for the front as well backend, believe me, it has helped me a lot to increase my productivity. The super good news is a community is actively working on AI/ML with JS, few of the trending libraries are ml.js, brain.js, and stdlib.

      But as said by fellow, most important is you must stick to the technologies you're comfortable with 😊

      Best luck, Happy coding!

    2. 1

      This is great, thank you for the response. My background is heavy Python(framework agnostic), Postgres and a little JS. I definitely want to stick with Python for the backend, I also love ML projects so want to keep those skills sharp. It seems like Django DRF is the way to go. The framework is mature, the community is big. Like most engineers, I got caught up in the lightweight and async nature of FastAPI. Django can provide everything I would need. Thanks again!

      1. 1

        NP and good luck! Also don't rule out React FE, Django BE. That's what I did for 90% of my personal projects

  4. 2

    I made a Rails SaaS starter kit exactly for this reasons. Personally cannot imagine building things without a good framework. Of course if you know Django, pick Django. JavaScript eco-system is a mess to me.

  5. 2

    I use react.js + aws amplify now. I'm planning to spread my wing to a little lower level of the backend soon like Django.

  6. 2

    My 2 cents:

    As a mobile developer, I didn't know anything about Web Development and wanted to learn. I picked JS, NodeJS, ExpressJS and React (NextJS). Eventually switched everything to TypeScript. Having a type system makes me more comfortable.

    But why did I pick them?

    • There are countless videos, tutorials, courses for this stack
    • Easy to find answers online
    • Learning curve is not steep

    But, if I would chose the same stack again? YES.

    I have tried Go. Wanted more performance even for a smaller web server (because of working with mobile devices with very low performance). It didn't go well. Because I need to learn Go from scratch but what I was looking for is executing ideas more rapidly.

    Conclusion: Use whatever you are comfortable with. Don't let searching for "best stack" be a procrastination reason for you.

    When you have enough time and money, you can always change the stack with the help of new developers on your team, or even with freelancers and contractors.

  7. 2

    ASP.NET Core, Blazor, MudBlazor, hosted on Azure. If you are strong with js, reactjs is a good option, but why bother, just use Blazor...

  8. 1

    Hey @NathanN, some time back I was in the same place, and of course, determining the technology you should employ when developing your solution is essential to its success.

    After a lot of research, I decided to go on with the MERN framework as it was easy and cost-effective.

    You can refer to this article to get a deeper understanding of tech stacks > https://www.dronahq.com/tech-stack-for-startups/

  9. 1

    Choose whatever you're comfortable with. I always reach for React/React-Native, Prisma (ORM because it helps me with my poor SQL skills), and NodeJS. Everything is written in Typescript and hosted on Render.

  10. 1

    The technology should follow the problem. Often dev's tend to choose the technology because of interest or because it's new and fancy. More relevant is if the technology can fulfil your requirements (ecosystem, performance, libraries ...) and if you are major in it that you can build things quickly.

  11. 1

    I'd use something like supabase or appwrite with any front-end library you know e.g., React, Vue etc.

    The only time I would use a custom backend is when the aforementioned tools cannot get the job done, i.e., the task is too complex.

  12. 1

    Been testing a couple of things out and so far very happy with:
    Remix, Prisma, Postgres, React, TailwindCSS
    Still need to see where I am host it. Any recommendations?

    1. 1

      Ditch Remix for Next.js would be my advice ^^

      1. 1

        Haha maybe I will soon, let's see what Shopify does with it

  13. 1

    I've been super happy with the following stack: React, TailwindCSS, Firebase, Netlify. https://get-vidmateapp.com/
    https://get-mobdroapk.com

    1. 2

      goated stack for sure

  14. 1

    In my opinion, you should use what you're best at and feel most comfortable with. If your MVP ends up being a success, you can always rewrite it later.

    Personally I use React/Next with TypeScript for all frontend needs and .NET for backend solutions.

  15. 1

    As many have already said, if you already know/like a web technology or language, use that one. If you don't, I'd take Django all day.

    Unlike the JavaScript world you will start with opinionated, fully-functional ways to do user management, authentication, database access and modeling, and so forth. The template language is just a small extension of HTML, which makes it super easy to learn. You will be blown away by the speed you can achieve.

    The main downside of Django is that it's trickier to have a snazzy and dynamic front end, though this can largely be solved by things like Alpine.js and HTMX, as described in this guide.

    1. 1

      I have worked with Vue in the past, a little with React. I want to build skills that will make me successful in the future. So I do want to stick with a frontend framework with a large community, but flexible for the future. I think the happy middle here is React + Django DRF. Any opinions on DRF?

      1. 1

        Yeah that sounds right then (and I agree in choosing React over Vue for its adoption alone).

        DRF is great, though if you end up building the whole site as a React SPA then you'll give up a lot of the Django batteries for the stuff that would have been fine with server-side-rendered templates. My personal preference is more of a hybrid, setting up React just on the pages that need a lot of interactivity and serving them via Django. Have talked about this more here.

        1. 1

          Ah, this seems like the best approach. Take advantage of the speed and development with Django templates, while having the ability to use React components when needed. I'm trying to break myself of over-engineering simple problems. This seems like a great compromise.

  16. 1
    1. Pick something that ensures steady release velocity for you.
    2. Pick something that will not be difficult to hire people for

    I had the same struggle when a month ago. I have limited front-end experience. I started my project with Svelte. Then I realized that it is a bit hard to get things done unless I spend a lot of time tweaking the UI. Then I bought Tailwind UI, which only supports React & Vue. Then I made the switch to NextJS.

    Nextjs with (Vercel/Netlify) for the most, Python for the most backend stuff.

    I recruited my ex coworker as a founder as well. I am pretty happy with the progress we are making at the moment.

    1. 1

      Agreed -- I was recently recommended Vercel + Nextjs. See here: https://vercel.com/docs/concepts/next.js/overview

      Made by the same company, lots of support, good CI/CD, quick to get started. Lose the hassle :)

  17. 1

    I've been super happy with the following stack: React, TailwindCSS, Firebase, Netlify.

    But really, your users won't know the difference. Whatever you can use to get the product into their hands sooner rather than later is the best option. If you think you can best do that with a Django app, then go for it!

  18. 1

    It doesn't matter. Users don't care. Just use whichever stack will drive you the (least) crazy to develop and maintain. Got to preserve as much sanity as possible, as a dev!

  19. 1

    Use whatever you are most productive with. I see a lot of software developers chase the most performant and the "right" way to build things, but there is no such thing as all of that is subjective and changes based on the developer, the scope of project and more.

    I personally love the following stack right now: Next.js, TailwindCSS, GraphQL, Prisma, CockroachDB, Firebase (For NOSQL Data Storage), Vercel for deployments.

    Do not chase the "best" framework, you will always be chasing.

  20. 1

    TLDR; use what let's you move fast towards PoC completion!

    The overwhelming advice I am getting is that you should just use what let's you move fast in the moment just to get anything done. Because, we want to go from zero to one. Nothing else matters. Once you made your point and proved your idea you can still throw away whatever is not good enough for the future ahead. There just has to be a reason for it. So the most important reason at first is to make your PoC work, however it looks or feels (given look and feel is not inherent part of your product).

  21. -1

    This comment has been voted down. Click to show.

  22. 1

    This comment was deleted 2 years ago.

Trending on Indie Hackers
I'm a lawyer who launched an AI contract tool on Product Hunt today — here's what building it as a non-technical founder actually felt like User Avatar 151 comments Never hire an SEO Agency for your Saas Startup User Avatar 88 comments A simple way to keep AI automations from making bad decisions User Avatar 65 comments “This contract looked normal - but could cost millions” User Avatar 54 comments 👉 The most expensive contract mistakes don’t feel risky User Avatar 41 comments We automated our business vetting with OpenClaw User Avatar 34 comments