And what do you like/dislike about it?
I'll start:
- FastAPI (Python) for app API
- Celery (Python) for async worker tasks
- PostgreSQL (15) for database
- AWS for most of the infrastructure (frontend hosting, database hosting, async worker deployment, SQS message queue - costs just under $20/mo)
- Heroku for API deployment (costs $7/mo)
- React/Typescript for frontend
- Heap Analytics for product usage tracking
- Squarespace for (www) website
Pros:
- I'm very comfortable with Python (professionally) and it's been easy to spin up
- Keeping the stack "modern" and up-to-date with the latest Python/PostgreSQL/React versions helps maintainability
- it's super cheap (under $50/mo all-in right now)
Cons:
- looking back, I'd prefer to have used the same language on the frontend and backend
- I don't like that our stack is hosted in multiple places, it's less maintainable and adds another step to deployments
Depending on the project, I like using:
Pros:
Cons:
Hello, did you figure out any cons ?
How does tailwind pair with MUI. I'd love to know!
It's an either or for me. I tried using them at the same time once (MUI has a guide) but it was a mess and doesn't seem worth it.
I use MUI when their opinionated components and styling fits the product and tailwind when I want customization freedom.
looks like a pretty thorough stack! Especially loving the type safety things in there
I am in love with Elixir/Phoenix Liveviews, it has really improved my development speed since I no longer need to build two apps (React for frontend and a backend API).
Doing similar with Rails 7 and Hotwire. A majestic monolith.
Frontend: NextJS
Backend: Golang
DB: Postgres / MongoDB
Hosting: Digital Ocean
Styling: antd designs
Been using NextJS a lot more recently, and love the SSR feature. Only issue I face with it is the need for dynamic importing of certain modules, which can sometimes be annoying, but other than that, a really frontend framework.
Golang is amazing for backend dev. Really love the way it handles concurrency, and the nature of interfaces and types. The code can be a bit long sometimes (compared to Python and NodeJS), but definitely feels very solid for any web app. Am starting to use NodeJS a bit more because I'm trying to ship faster though!
Been hearing some great things about Golang! What specifically unblocks you to ship faster with NodeJS?
Hey, I think just in general the syntax of Golang can be much longer, especially because it's strongly typed, whereas with NodeJS and TypeScript, although you can define your own types, it's kind of a good in the middle as it's not as strict.
The workflow of NodeJS just feels much more lightweight as well in general!
Frontend: Angular
Backend: Java 17, Spring
DB: PostrgeSQL
Security: Spring security, JWT
Hosting: Am not at this stage
Architecture: Monolith, but I will rewrite it into microservices
IMO no need for microservices if you don't need them! I worked at plenty of companies that had both and loved the monolith for its simplicity of deployment
Keep in mind that microservices are mainly a solution to enable multiple teams. From engineering perspective it has less advantages
React and firebase ✌️
I'm a big firebase fan for prototyping.
I am on good old Rails + Hotwire + PostgreSQL + Redis, not reinventing what works best :). I also built Business Class to go even faster.
Using the same stack. The biggest advantage is speed.
RE Business Class - I hadn't seen it before. Have you seen the Pay gem by Chris Oliver? I've been using that to integrate with Paddle.
Yes, I actually included the Pay gem so the backend can be the same (and there is opportunity to tweak it to support other providers). I'll soon release v1.1 with Paddle Billing support which will mirror Paddle rather than Pay. The reason being it's really confusing when an active Paddle subcription shows with a different status.
Nice! Classic are stable fast and reliable!
Frontend:
Backend:
Pros:
Cons:
sounds like a pretty big stack! How are you using both jQuery and React? Likewise: how are you using both Django and FastAPI?
We’re using Django as a framework for our administration system, just Tailwind and basic HTML in the Django templates, no React. We use various Javascript libraries, including JQuery and htmx. Then mainly use React Native for mobile development.
For exposing APIs to partners, we use FastAPI. It is more historic, but does scale nicely when run on ECS, is simple to get going and integrate well with our core library, where we centralise all models using SQLAlchemy.
Many ways to do things. My goal is to consolidate our tech stack as the learning curve for new employees is significant.
For my project (I can't post any link yet) I'm using:
I hope it helps, also the perks of using the same tech stack on every projects is that you can reuse bits every single time and go faster and faster every time.
Good luck!
Really interesting! How do you compare ShadCN and MUI? I often use noSQL database so I haven't looked in Prisma yet but it look incredible! Share me the link of your project when its available, I'd love to check it out!
ShadCN has a different approch, instead of using a library and importing components like MUI, ShadCN is just a collection of components and you directly copy / paste the code in your project.
This gives you a lot of flexibility comparing to regular libraries!
So the project is "b r e e e w .c o m", I post regular updates about it on my twitter!
For https://groundcontrol.sh/ I have
Everything is written in TypeScript.
How is temporal vs inngest, would love to know the pros/cons and the time it takes to get running on both. Are you using their cloud or running them yourself?
Temporal is more mature. It's used at scale by big companies. Additionally the TypeScript implementation is very robust. The downside is that the UI is pretty clunky and the cloud pricing is a bit confusing.
Inngest is less mature but the UI is a lot better. Regarding the cloud offering the pricing is easy to understand and there's a free tier.
Both are simple to use. I'd say inngest is simpler, but there's not a huge difference.
Wow! I'll check it out for sure!
I like to keep things simple (funny that I went on to write so much after this statement, though), thus I've got mostly static sites with vanilla JS when it's a "free tool" or "service" that can run entirely in the browser (like Web3 Type Converter from a bytes32/hex into a string/number or vice-versa, or my Photo Frame), and when it's not, it's running under a small Digital Ocean droplet, with TypeScript in the backend and frontend (transpiled in real-time via Deno), without any frameworks or unnecessary dependencies, all with a
docker-compose
file for the main thing and dependencies, proxied by Caddy, in order to have a few different apps running in the same server, all with automatic SSL. These allow spikes of hundreds of pageviews per minute, and a dozen of paying customers across a few apps/websites.There's honestly nothing I dislike about it. It's all pretty stable, fast, cheap (a couple of servers with backups all comes under $35 / month for ~20 served apps) I get automatic tests and deploys with CI (I use GitHub for OSS, but for non-OSS I have my own Gitea server handling CI too), and it's faster and more stable than when I used Vercel, AWS Lambda, Render, or Deno Deploy (though definitely more expensive, as I could get most of these for free, but with a few headaches every so often).
Keep in mind that if you ever achieve or compare with "big scale" startups, it's highly unlikely you'll see anything that's not AWS or GCP via k8s nowadays, for a multitude of reasons not worth mentioning here, I think.
On Lexington I am using:
Never heard of lemon squeezy before, how do you like it compared to something more popular (like Stripe, if you have used it)?
It's been fine, completely fine. They had big issues in August with the checkout but it seems is all fine now. Is a bit buggy ane slow...
Is a merchant of record.
I like being the outlier with Ruby on Rails hahaha
RoR is a great way to go! Good to optimize for what you know over something new and shiny
Frontend: Nextjs
Backend: Rails
DB: Postgres
Hosting: Render
Storage/CDN: AWS
Auth: Supabase
Styling: Chakra UI
I use react/rails/Postgres at work so development is pretty quick as I'm not using too many new concepts.
definitely a good idea to keep using what you know so you can ship fast. I haven't heard of Render before, how do you like it compared to others (e.g. AWS, Heroku, Vercel)?
It's the one area I don't have too much experience in as it's all handled by an external contractor at work.
I first heard about Render from Courtland actually as it's what he uses to host indiehackers . But if you search Reddit for rails hosting options it is very frequently recommended too. It makes everything pretty simple which is important for me as it's something I don't know too much about.
If the business takes off and cost becomes a bigger factor I would look at moving it to AWS
Typescript, React and Graphweaver
Very cool! How are you using Graphweaver? What's your backend (unless you're running with something like SSR via Next)?
Graphweaver in front of a postgres server and that runs in a lambda in AWS.
Front end is just vite and react in a S3 bucket.
For backend jobs: python with flask, sqlalchemy and whoosh for search engine
For website: bootstrap, jquery with php and MySQL
Pro: standard website infrastructure, cost less
Cons: don't have lot of flexibility
Btw for small demos, you can host local and create an endpoint using ngrok
I love ngrok, that's what I was using for when I needed to iterate on API endpoints for a gmail add-on I was making. Haven't heard of woosh before, what are you using it for in your project and how is it working out for you over something more fully featured like elasticsearch?
I am using it to build stylescan.in. More specifically, using it to search from ~1.8M fashion documents for fashion queries. It doesn't scale very well but I needed a quick pythonic solution. Whoosh is highly customizable as every component can be rewritten, from indexing to searching to scoring. Yesterday I found that for small to mid sized dataset O(10M), you can also use MySQL's Full Text Search features, but this is not customizable at all and will be hard to scale horizontally. This can be useful as MySQL is often provided in standard hosting packages. I have realized Elasticsearch is way to go when it comes to customizable search engine.
https://careersageai.com uses
NextJs, Tailwind, Supabase, Hetzner, Vercel
nice and simple! How is Hetzner working out for you?
@rdanbaker - thank you for the post! I am building exclusively in flutter (dart) right now. Having suffered through other mobile cross-platform frameworks in the past, google absolutely crushed it with flutter. I wrote the most atrociously inefficient MVP code and I still could not get it to be sluggish on either Android or iOS.
Pros:
Hot reload in Android studio keeps me in the flow state with immediate feedback while building
Compiled dart is wicked fast on Android/iOS
flutter framework gets a lot of things right, and there is a rich set of libs to fix the stuff it doesn't. (flutter animate by gskinner rocks). I mean Widget().animate().shimmer()?! c'mon. Don't make it too easy for us.
Cons:
Local notifications are still a disaster. flutter_local_notifications tries hard though...
"The universe is a widget" gets a bit cumbersome when you want to wrap something that is deeply nested and figure out where to match parens. Android Studio tries to help, but whatevs. I am just griping at this point...
Oh...and once I wire up everything to web infra, I will of course use aws and write the server code in go. I am starting to sound like a google fan boy, but go and flutter won me over. Whatever gets me into the flow state is going to keep me coming back, and the key with both go and dart is "immediate feedback". That comes from incredibly fast compilation and exactly the right kind of simplicity (gofmt for example).
Hey Craig.
Awesome to see someone also using Flutter. I'm also often surprised to see so few people use it in these types of conversations.
Apart from Flutter itself, what other tools do you use? I've found finding a stack for Flutter more challenging in some cases. Do you use it only for mobile development or also for the web? How do you deploy? If you have any resources for setting up an API easily using Dart, please let me know.
Regards.
why don't you go ahead and host on GCP instead of AWS to keep the Google theme alive 😉
But really, cool to hear how well Flutter is working for you! I haven't heard of it before but when I make a mobile app I'll be sure to test drive it!
Ha! Yeah, then I can be fully assimilated into the collective.
Why you have choosen postgresql instead of MySQL
"go with what you know"- I've been using postgresql for close to 10 years now and only worked one job for about 3 years that used mysql instead. They're both interchangeable enough at a small scale, but I'm more experienced with setting up pg from scratch
My main tools are:
Next.js (React) - Fullstack
Prisma + CockroachDB - Serverless database & ORM
Tailwind + Preline - UI
Tanstack Query - Global state
Vercel - Serverless
React has the biggest adoption. Whatever tool I need probably exists for react and has a react integration, or was made just for react. Like "React Email". Next.js is the best react framework.
Prisma makes it easy for me as a frontend-oriented.
Tailwind is by far the best design library, hands down, no competition.
Tanstack Query has changed the way I consume API data, and I will never be able to look back.
All of these tools have big communities, and their future seems very stable. None is bleeding-edge or experimental.
Hi Aviv. Why do you combine Prisma + CockroachDB and not just use Supabase? As Supabase also supports serverless functions?
Hello! I have tried Supabase, and their API is very limited. For many things I had to write my own SQL, which I don't wish to do. Prisma allows me to fully work in javascript.
definitely a big plus to use battle tested tech! I haven't heard of Tanstack Query before. How do you like it compared to Redux?
You've probably heard of React Query. This is the latest version of it, and it's framework agnostic!
I've noticed that many apps use global state primarily for consuming API data. In such cases, TanStack Query stands out as superior compared to other generic global state libraries.
If I were to require state management for local data, I would opt for something lighter than Redux, such as Zustand.
Sveltekit/Typescript
Pocketbase/Go
Tailwind Css
Very simple and I don’t need much else.
Host sveltekit on vercel
Pocketbase on fly.io
Don’t pay anything a month in costs
Your stack sounds really efficient, especially with the 0 cost setup! I'm intrigued by your use of Pocketbase as the primary data store. Could you share more about your experience with it and why you think it might not be suitable for enterprise-level projects?
I'm also curious to know if you think Pocketbase could work well for B2B SaaS applications, as I'm exploring different hosting options for my project, calmmind.ai.
Would you be open to chatting more about your experiences with Pocketbase and your SaaS in general ?
nice! love the 0 cost stack. I had some trouble understanding Pocketbase just from their website, is it acting as your primary datastore?
Yes I use pocketbase as my primary data store. It’s perfect for side hustles and projects that aren’t enterprise level. It seems complicated but it’s very simple once you take the time to use it. Coming from firebase before it has extremely simplified my development.
Frontend: React/Typescript
Backend: NestJS/ Typescript
DB: Postgresql/Mongo
Deployment Frontend: Netlify or Firebase Hosting Free does the job for most part
Deployment Backend: Digital Ocean Droplet 6$ a month (Still learning AWS)
UI: MaterialUI/Antd
both Material and Ant on the UI layer? How is that working for you? Do you have a preference of one over the other?
I'm building a service that has very spiky / infrequent data processing loads. On signup of a new user (and infrequently thereafter), there's a lot of processing to do. However, I don't want to spend $$$ hosting long-running, mostly idle compute. So:
Frontend:
Backend (API/Site Hosting):
SUPER Backend (Data Processing):
Pros:
Cons:
nice, sounds super cost efficient. How are you planning on scaling the fargate? Are you currently using spot instances to keep the costs down?
The Fargate tasks should be more or less infinitely (for my purposes) scalable by default. There are some limits on the ECS side - max simultaneous tasks - but I'm not going to hit them. In the happy/unlikely event that I have 100 users all sign up at exactly the same time, I'll just end up with 100 ECS containers all burning a hole in my wallet (though, presumably, this is recouped by 100 paying users...)
I'm not currently using spot instances, but I'll probably switch that on once the core is stable. There's some hardening I'd need to do around "AWS killed the spot instance" that I'm bothering with right now.
haven't heard of solidjs before- how does it compare to react in your experience?
@rdanbaker SolidJS employs a mechanism known as fine-grained reactivity for directly applying updates to a webpage. In comparison, React updates a virtual DOM with the alterations to the page. This virtual DOM is then compared against the existing DOM of the page, and solely the variances are implemented. From my understanding, in terms of speed, React's methodology is comparatively slower than that of SolidJS. I chose SolidJS because I am working a lot with dynamic drawing on canvas and could not afford to have poor performance or components being rendered several times. SolidJS works pretty well for me.
Could be a good idea to use:
javascript for the frontend: react, angular, vue, ember, backbone, etc
and
javascript for the backend: nodejs, express, etc.
Pedro
yeah true, I was thinking of going the nodejs route- will probably do that for the next iteration or project
I went from react frontend + fastapi/postgres backend to react frontend + express/postgres backend. All hosted in AWS and Digital Ocean.
express + sequalize + validatorjs reminds be a lot of fastapi + sqlalchemy/alembic + pydantic. It's the same feel, super easy transition if you want to stay in the javascript universe. Sticking within the same language is a great idea if you don't want to use a Django or Laravel type of framework - way less context switching. Can't tell you how many times I tossed a console.log in my fastapi lol. Happy coding!
PROS:
CONS:
I'm using Wasp (https://wasp-lang.dev/)! If you want Rails batteries-included vibe but for JS/TS ecosystem (React/Node.js) this is a perfect tool :).
A lot of stuff comes for free, no 3rd party services to pay for + minimal config: auth (with UI), sending emails, cron jobs, typesafe RPC, ...
I am currently experimenting with:
Frontend: React, NextJS, TS, Recoil and Devias Kit Pro as my component library for faster development.
Backend: Prisma, PlanetScale
My Stack Below :)
NextJS + TypeScript + React Query + Tailwind + Vercel Hosting
AWS Cognito (Auth)
AWS Appsync - AWS Dynamodb - AWS Lambda - S3
Productivity is through the roof for me when everything is written in the same language and code can be re-used in both frontend and backend. Hence, my stack is:
I prefer defer.run for background jobs, however, it depends on the sensitivity of the data I need to handle. I host most projects on Render.com (so I can use Docker if necessary).
Backend:
Frontend:
I've been able to keep homework hero very simple so far... we'll see if I can in the future...
I highly recommend lightsail over ec2 if you can, for simplicity
Backend - Laravel monolith. And I cannot recommend this enough. Modern PHP is great and Laravel is the best backend developer experience I’ve had in 10 years working professionally.
Frontend - some projects are server-rendered based on Laravel’s Blade and Livewire+Alpine combo. Recommend for side projects developed by a one man army. Makes me a full-fledged and productive frontend developer.
Another project has frontend on Nuxt.
Deployed on basic VPSes from DigitalOcean with an Ansible playbook.
Planetscale and a self-managed MySQL for DBs.
Avoiding dealing with AWS myself like plague because of their intentionally opaque pricing, poor DX and vendor locking.
These are, largely, the stacks I'd expect in this sort of thread, but just thought I'd mention WordPress/PHP on the back end and WordPress+React components on the front end. I find it gives you all the annoying stuff (account management, authentication, access controls, database management) out of the box and let's you focus strictly on whatever your particular value add is. And I know people sometimes view WordPress as old school, but it's surprisingly performant.
Our stack
NodeJS
React
Kubernetes with helm
MongoDB
Custom LLMS
FrontEnd/BackEnd=Next.js
CSS Framework=mantine ui
Google Oauth=using next auth
GCP=Cloud Run, Cloud Pub/Sub, Cloud Build, Cloud Function, Cloud logging
Database=firebase
Analytics=Google Analytics
Frontend: The usual suspects
Backend, auth, DB: I'm intrigued by PocketBase and PocketHost. Seems like a great, simple, cost effective solution for starting up.
Primarily I use TypeScript with NodeJS + React for everything if I don't have to switch stacks. I used to go fancy with my tech stack but now I just stay as lean as possible.
For holding data I use Postgres + Redis. If I can get away with SQLite on a project, I will use it over hosting a DB.
The only thing I still keep on AWS is S3 and SES.
After using AWS for many years (even worked there) and I am starting to move most of my projects to Vercel + FlyIO. Can spin up so many sites on their paid plan. I love how FlyIO has the feature for sleeping your machines and kicking it back up when a request comes.
Go
HTML
CSS
Postgres
Stripe
Github
Postmark
Happy to share the tech stack behind Calmmind.ai:
Frontend:
Next.js: Our go-to React framework that allows for both server-side and static site generation. This ensures a super-fast user experience.
TailwindCSS: A utility-first CSS framework that lets us design responsive and consistent UI components quickly.
Backend:
Serverless framework + AWS: Enables us to create scalable cloud functions without worrying about server infrastructure, making deployments a breeze.
Postgres RDS: Our primary relational database where we store structured user data securely.
TypeORM: This is the ORM we use to communicate with Postgres, making database operations smoother and more maintainable.
Authentication & User Management:
Auth0: A robust solution for authentication and user management. Ensures our users' data remains secure.
Emails & Notifications:
SendGrid: Our preferred email service provider, ensuring our users receive timely and important notifications.
AI & Machine Learning:
OpenAI: Powers some of the core functionalities of Calmmind.ai by integrating cutting-edge AI models.
Deployment & Hosting:
Vercel: Ensures lightning-fast deployments of our frontend.
AWS : Backend serverless lambdas
For visualizee[.]ai I used:
Everything is written in TypeScript.
Hey there, diving into all those different tech stacks on Indie Hackers was a real eye-opener for me. Some of them genuinely caught me off guard.
Being an indie hacker, I'm all about that combo of speed and stability. That's why I was a bit surprised by the limited presence of Flutter devs – I've been riding the Flutter & Dart train since 2019. It's been my go-to, starting with killer cross-platform mobile apps that just work like a charm. And you know what? I even stretched its legs for desktop and web apps – gotta say, Flutter has my vote all the way 🔥.
When it comes to backend stack, I gave Dart a spin for server-side action, experimenting with some of those newer frameworks (bit of a mixed bag, to be honest). But when reliability is the name of the game, I pivot to JS/TS or Java, teaming up with Google Cloud Functions for my APIs.
Database talk? I'm a fan of Postgres, but if I'm in need of real-time events, Firestore takes the spotlight. Oh, and let's give a nod to GCP – my project home for about 90% of my side gigs, tapping into the awesomeness of Firebase and its arsenal: think auth, Firestore, storage, and the whole cloud functions deal.
Now, here's the twist – for analytics, I'm rolling with Amplitude, breaking away from my usual following Google Analytics 😈 . Keep rocking the hacking journey, everyone!
Hi Izi.
Nice to see a fellow Flutter user. I think your comments are super valuable. Have you tried Supabase as an alternative to Firestore? Also, how do you prefer to deploy the Dart server-side? I've found deploying Dart Apps server-side has been difficult for me.
Regards
Well, i have tried a little bit Supabase, i think it's correct it's just not as efficient as Firebase for now...
For Dart Server Side... Google Cloud SDK is my go to.
Hi Hackers! We’re a couple of college undergrads building in the LLM space. If any of you have faced problems building your data pipelines, embedding data or any other aspect in building your LLM Apps, let us know! We’d love to hear it
Described here.
Got a lot of reactions here.
Coming from a python data science and ml background here!
What would you say is the fastest tech stack for someone from my backrgound to learn, to be able to build something at least scalable to startup level? Im new to indie hacking and want to jump into building asap 👨🏽💻
I only use go std + chi
I’m doing web apps:
All below 40$ per month per App. I think it’s pretty solid and scalable. Sometimes I miss more advanced tools from AWS like SQS (message queue) but I prefer the simplicity of DO.
Golang on backend
Pure Html + vanilla JS with the help of ChatGPT
PostgreSQL
I host all projects on one Hetzner VPS (using Caprover as self-hosted Heroku) for ~$10/month.
Love how cheap it all is! I haven't heard of Hetzner before, how is it working for you compared to something like AWS?
Hetzner is a more classic VPS provider (but it's also provides paid additional volume storages for VPS), but stable enough (in my experience). I can say that it is like Digital Ocean, but without managed services.
Using AWS in small projects requires ability to make the right choice in technologies to prevent vendor-lock and future problems.
Have you considered ChatGPT? Just interviewed a serial SaaS founder (on our Small Fish Big Money podcast) with multiple exits and now building 5 new startups with ChatGPT. He said it took him 5 years to build and grow the last one that was sold to a private equity firm this year. Now he can build everything so much faster with ChatGPT.
a single founder is currently building 5 startups at once with ChatGPT? that sounds a little unbelievable, are you sure that's the case?
I'd also probably not believe that he built something over 5 years with ChatGPT because it hasn't been around for that long.
Was this comment generated with AI? The words sound nice, but the content itself is non-sensical.
He just started using ChatGPT this year and that's why now he can build 5 startups at the same time instead of spending 5 years to build and grow one before 2023. We dicussed specifically how he uses the prompts becuase ChatGPT can lead people down a rabbithole easily if the prompts are tested.