Elixir with Phoenix and Liveview for backend and frontend. Tailwind for CSS, which compliments Liveview perfectly. I almost never write any JS or CSS anymore, unless I need something like a particularly fancy transition or that's client-side only like webrtc.
Interesting. Sounds like LiveView is a lot more mature than when I first looked at it (I'm using Elixir only on the backend). If I were starting today, I'd seriously consider it over the mess that the front end Javascript world is.
I've successfully built multiple apps with it now, the latest being a client call center and ticketing system for a school board transportation company. It worked beautifully (and deployed on Windows Server 2012 no less!).
What's your experience with Firebase vs. AWS? I'm a Firebase user and know very little about AWS, and was wondering if you see any obvious pros/cons comparing the two. Thanks!
At this point, I have a lot of code I've re-used over the last 5+ years, so it's hard for me to really think back about the "getting started speedbumps" I faced.
I typically use Firestore when I need a multi-user event-driven UI, and I use DynamoDB when I need large amounts of data. I also typically pair DynamoDB with ElasticSearch when I need good search capability (never got into the whole Aloglia fad unfortunately).
I used AWS Cognito really early on and had a bad experience with it, so I typically use Firebase Auth. I really should set aside some time to go back and re-examine Cognito now that it's ironed out the major issues.
As far as lambdas go, I really like working with Serverless, but unfortunately, I've only used it with AWS Lambdas and not Google Cloud yet. Again, more due to habit. I actually just deployed my first Firebase Function recently thanks to @jakeprinshttps://serverless.page project.
In fact, Jake's boilerplate project is greatly influencing a number of my choices recently. It's really well documented and has practically taught me Firebase Functions, Next.js, and TailwindCSS over the last couple of days.
Thanks for the detailed feedback, much appreciated! I really like Firebase but I’d like to learn AWS so I have an alternative and not be tied to one vendor.
I like the ol tried-and-true Rails stack. Stupid enough to go fast, smart enough to scale out to a team IF you have the dough. I do some react/redux too but that's pretty much a net negative, I just like messing around with stuff.
I was using Django (w/ REST Framework) and PostgreSQL, along with React/Next.js, but found this setup to be more complicated than I wanted. Particularly, the frontend was something I didn't love, so we made the decision to switch.
We're now using Ruby on Rails (still with PostgreSQL) with Turbolinks, Stimulus.js, and StimulusReflex, so we don't sacrifice too much on the UX, while still having the reactivity that a SPA offers.
There a few complex components that I made in React that would be hard to convert over to server-rendered views, so I just took those and inserted them into the Rails views, which was a lot easier than I thought it would be.
Though I love Django, I prefer the new stack so much more. The reduced complexity goes a long way as an IndieHacker and has made it easier to write tests, deploy, etc.
Hasura for (mostly) automatic and very performant GraphQL on top of Postgres. Hasura is a game changer for CRUD apps.
Elixir for handling business logic that can't be handled by SQL/Hasura, background jobs, integrations, ect. Massively scalable.
React with TypeScript on the frontend. I plan to replace this as soon as there's a solid functional language and large ecosystem for WASM.
Like others have said here and elsewhere, use the stack you know. However, run far away from nosql (use a solid relational database) and skip Node on the backend (unless you just enjoy endless pain).
Backend monolith (Node, Nestjs) with some serverless functions (Google cloud functions) sprinkled in. Firebase for persistence.
View layer is rendered using vanilla js template strings. Tailwindcss all the way!
Spent a lot of time messing around with React and Nextjs but the poor bundle size of all the Firebase client libraries plus the slowness of SSR wasn’t worth it for a simple CRUD app.
Frontend used to be some JavaScript/typescript with NextJS or React but after doing more development with Go, I have found that having a really basic frontend (HTML+CSS served through Go) makes me move so much faster for a simple website.
Frontend
JavaScript/typescript with NextJS or React (for complex dashboards)
Simple HTML + CSS with something like Tailwind and Alpine.js if I need interactivity.
Backend
100% Go - amazing language to work with
PostgreSQL
RESTful API
Will clarify I mostly develop applications. If it was just a website I would opt to do some kind of template with responsive styling (bootstrap type eg. mobile/desktop/etc) then see about implementing some visual testing to make sure it looks good on most devices/resolutions. WDIO is pretty cool or just Selenium on its own.
Also I have mac/windows so can emulate devices for further testing. OP testing is something like device farm... But that's overkill.
Standard Linux OVH for server, haven't really built anything many people wanted/needed scale yet. SystemD to persist node.
Experimental/side:
PWA from ReactJs with Dexie(IndexedDB wrapper)
Electron/ReactNative. Electron was simple I pretty much just built the RJs and loaded it up in Electron. I was able to build an a basic cross platform app with RN but it was a little rough/needed more work on my part.
Have I actually made any money from projects as a business/not a freelancer? No... Sad
Further adding onto this ramble. I have not setup Jenkins before personally but that is nice to have. At the very least tests, unit, possibly snapshot. It is overkill/mostly matters on complexity of app/working with many team members. Just something I've dealt with at work, ux/translations teams, etc... main thing I'd like to have is regression testing so that I can verify new features don't break old ones. But again overkill, only matters if you have a big enough app. But it's nice to start early if possible.
Making my own living is a goal but I have not reached it yet.
Go to my terminal
Randomly cp -r from a different project
Arm myself with all of the useful bits of code from that project
Buckle up and start programming
For https://www.thisismylaunch.com/ MVP I used 11ty static generator, TailwindCSS and Airtable.
I’m also working on fully featured version and for that I’m using Elixir, Phoenix and TailwindCSS.
I'm building Nodewood, a web app starter kit, so the "correct" tech stack is a very important choice to me and to my users. What is "correct" in this case? Well, in short, saves you time getting started, saves you time maintaining, just plain makes it easier to develop and grow a web app.
Front-end: Webpack, Vue, Tailwind. Vue + Tailwind make it easy to move quickly and keep that pace.
Back-end: Node.js & Express. Staying with Javascript on the back-end is critical, because it means that the models, validation, and libraries that you write can be used on the front-end as well, drastically cutting down development time and ongoing maintenance costs.
Database: PostgreSQL. It works, it's fast, it's performant, you can add on things like TimescaleDB to turn it into a time-series database, it has JSONB fields for when you need to store less-structured data, it's just great.
Development: Docker. Being able to quickly spin up a common development environment with one command is a real time-saver.
My aim is that you can save weeks or months of development time (depending on the scale of your app) and then end up with a modern stack with good tooling
I've been working on my static site generator https://mkws.sh lately so plain CSS and Js. If I were to start a new backend project, I'd probably go with Go or plain shell scripts via CGI tbh for an MVP.
Backend really depends on the technology and client I am working with. Most of the time it is Node.js hosted on various platforms. But I am also working with PHP in the most current project.
When working with Node.js I use fastify as the server framework.
Databases: Dynamodb and Postgres (with TypORM as a framework in Node.js)
And for my bigger projects I am going AWS all the way, as I have the best knowledge in that.
Elixir with Phoenix and Liveview for backend and frontend. Tailwind for CSS, which compliments Liveview perfectly. I almost never write any JS or CSS anymore, unless I need something like a particularly fancy transition or that's client-side only like webrtc.
Interesting. Sounds like LiveView is a lot more mature than when I first looked at it (I'm using Elixir only on the backend). If I were starting today, I'd seriously consider it over the mess that the front end Javascript world is.
I've successfully built multiple apps with it now, the latest being a client call center and ticketing system for a school board transportation company. It worked beautifully (and deployed on Windows Server 2012 no less!).
Same here
keenforms was built with
-Ruby on Rails
-React
-Heroku
Frontend:
Backend:
Rails, Phoenix, Turbolinks, Stimulus.js.
Backend:
Front end:
Bootstrap and jquery (yes you read that correctly).
The backend is an api so frontend can be changed anytime and can be web, desktop or even mobile.
I didn’t want to spend time doing frontend properly since I’m building the MVP.
Backend:
Frontend:
Next.js
Frontend
Backend
What's your experience with Firebase vs. AWS? I'm a Firebase user and know very little about AWS, and was wondering if you see any obvious pros/cons comparing the two. Thanks!
At this point, I have a lot of code I've re-used over the last 5+ years, so it's hard for me to really think back about the "getting started speedbumps" I faced.
I typically use Firestore when I need a multi-user event-driven UI, and I use DynamoDB when I need large amounts of data. I also typically pair DynamoDB with ElasticSearch when I need good search capability (never got into the whole Aloglia fad unfortunately).
I used AWS Cognito really early on and had a bad experience with it, so I typically use Firebase Auth. I really should set aside some time to go back and re-examine Cognito now that it's ironed out the major issues.
As far as lambdas go, I really like working with Serverless, but unfortunately, I've only used it with AWS Lambdas and not Google Cloud yet. Again, more due to habit. I actually just deployed my first Firebase Function recently thanks to @jakeprins https://serverless.page project.
In fact, Jake's boilerplate project is greatly influencing a number of my choices recently. It's really well documented and has practically taught me Firebase Functions, Next.js, and TailwindCSS over the last couple of days.
Thanks for mentioning my project. It's great to hear you like it!
Let me know if you have found things you would like to see improved ;)
Thanks for the detailed feedback, much appreciated! I really like Firebase but I’d like to learn AWS so I have an alternative and not be tied to one vendor.
I like the ol tried-and-true Rails stack. Stupid enough to go fast, smart enough to scale out to a team IF you have the dough. I do some react/redux too but that's pretty much a net negative, I just like messing around with stuff.
Frontend
Backend
At Keypup we use the following:
Frontend:
Backend:
Platform:
I was using Django (w/ REST Framework) and PostgreSQL, along with React/Next.js, but found this setup to be more complicated than I wanted. Particularly, the frontend was something I didn't love, so we made the decision to switch.
We're now using Ruby on Rails (still with PostgreSQL) with Turbolinks, Stimulus.js, and StimulusReflex, so we don't sacrifice too much on the UX, while still having the reactivity that a SPA offers.
There a few complex components that I made in React that would be hard to convert over to server-rendered views, so I just took those and inserted them into the Rails views, which was a lot easier than I thought it would be.
Though I love Django, I prefer the new stack so much more. The reduced complexity goes a long way as an IndieHacker and has made it easier to write tests, deploy, etc.
Ruby on Rails with Stimulus JS
Like others have said here and elsewhere, use the stack you know. However, run far away from nosql (use a solid relational database) and skip Node on the backend (unless you just enjoy endless pain).
Heard from Hasura a few times now, I really need to check it out now. How does Hasura handles object level permissions?
https://hasura.io/docs/1.0/graphql/core/auth/authorization/role-multiple-rules.html
Thanks, wow that's a really nice feature +1
You can get started quickly with Hasura on my service at: https://nhost.io
What kind of pain using node in the backend? I’m curious to understand your view.
OyeStartups is built with :
Frontend
-Vue
-Nuxt
Backend
-Laravel/PHP
-DB : MySQL,MongoDB
RemoteRetro is built with:
Backend: Ruby on Rails, Postgres
Frontend: React, with small parts of Bootstrap getting phased out.
Infrastructure: Heroku, memcache
A few other things too but those are the big ones
Frontend:
for styling and components I'd go in this order from "Fastest/Easiest" <---> "Most Configurable for Bigger Projects"
Backend:
or...
Carrd :)
SkinSort is all Rails & TailwindCSS. I use PostgreSQL and Redis on the backend as well, and use S3 for images.
Frontend: React.js / Next.js / Tailwind
Backend: Node / gcloud
Instrumentation: GA / FullStory / Splitbee (new)
Project: Linear / Sentry / LogRocket
Frontend
Backend
*Php and SQLITE
Backend monolith (Node, Nestjs) with some serverless functions (Google cloud functions) sprinkled in. Firebase for persistence.
View layer is rendered using vanilla js template strings. Tailwindcss all the way!
Spent a lot of time messing around with React and Nextjs but the poor bundle size of all the Firebase client libraries plus the slowness of SSR wasn’t worth it for a simple CRUD app.
Splitbee is built with typescript from front to backend :)
React + Node + Postgres. We've published an article about the detailed stack: https://splitbee.io/blog/tech-stack-of-splitbee
Frontend used to be some JavaScript/typescript with NextJS or React but after doing more development with Go, I have found that having a really basic frontend (HTML+CSS served through Go) makes me move so much faster for a simple website.
Frontend
JavaScript/typescript with NextJS or React (for complex dashboards)
Simple HTML + CSS with something like Tailwind and Alpine.js if I need interactivity.
Backend
100% Go - amazing language to work with
PostgreSQL
RESTful API
Django, Tailwind, Turbolinks, StimulusJS.
I have a starter template for this stack: https://github.com/danjac/django-saas-starter
Will clarify I mostly develop applications. If it was just a website I would opt to do some kind of template with responsive styling (bootstrap type eg. mobile/desktop/etc) then see about implementing some visual testing to make sure it looks good on most devices/resolutions. WDIO is pretty cool or just Selenium on its own.
Also I have mac/windows so can emulate devices for further testing. OP testing is something like device farm... But that's overkill.
Standard Linux OVH for server, haven't really built anything many people wanted/needed scale yet. SystemD to persist node.
Experimental/side:
PWA from ReactJs with Dexie(IndexedDB wrapper)
Electron/ReactNative. Electron was simple I pretty much just built the RJs and loaded it up in Electron. I was able to build an a basic cross platform app with RN but it was a little rough/needed more work on my part.
Have I actually made any money from projects as a business/not a freelancer? No... Sad
Further adding onto this ramble. I have not setup Jenkins before personally but that is nice to have. At the very least tests, unit, possibly snapshot. It is overkill/mostly matters on complexity of app/working with many team members. Just something I've dealt with at work, ux/translations teams, etc... main thing I'd like to have is regression testing so that I can verify new features don't break old ones. But again overkill, only matters if you have a big enough app. But it's nice to start early if possible.
Making my own living is a goal but I have not reached it yet.
Laravel, Vue, MySQL, and redis are what I primarily use for T.LY and Weather
GRABstack:
Go to my terminal
Randomly
cp -r
from a different projectArm myself with all of the useful bits of code from that project
Buckle up and start programming
Vue + Firebase for my current project. Literally all I need.
Frontend:
Backend:
Frontend - Tailwind, Bootstrap, JS and jQuery
Backend - Flask, MySQL, Postgres, Mongo
Server - Linode, AWS
Currently:
Future:
Frontend
Backend
Vue + Nuxt + Tailwind + Express
That's pretty close to my dream setup, except instead of the entire backend chunk, I lean on AWS Amplify inside of my Next.js apps.
Frontend:
Backend:
Firebase, Nest, Angular and Stencil :)
Frontend
Backend:
For my personal blog :
Frontend :
Nextjs + TailwindCSS
Backend
Firebase or StrapiJS
Backend: Nginx, PostgreSQL, Python, Flask
Frontend: Mostly basic HTML with some Svelte and VueJS mixed in
Just finished a project with:
Vue 3/Typescript/Firebase
Here it is: https://app.taskomoro.com
Frontend:
Backend
Database:
Server
Mobile
For https://www.thisismylaunch.com/ MVP I used 11ty static generator, TailwindCSS and Airtable.
I’m also working on fully featured version and for that I’m using Elixir, Phoenix and TailwindCSS.
Front end: React
Backend: NodeJS Lambda’s and various other services. ESB etc.
Storage: DynamoDB, S3
Seems like this is asked all the time... here's a couple of quick links I answered on recently:
https://www.indiehackers.com/post/drop-your-blog-and-the-tech-stack-for-it-b5afbeb6f1
https://www.indiehackers.com/post/which-stack-do-you-use-to-build-your-side-projects-4a57689e44
Frontend
Backend
Infrastructure
Boostrap + php + wordpress
Old, but still working great
I'm building Nodewood, a web app starter kit, so the "correct" tech stack is a very important choice to me and to my users. What is "correct" in this case? Well, in short, saves you time getting started, saves you time maintaining, just plain makes it easier to develop and grow a web app.
My aim is that you can save weeks or months of development time (depending on the scale of your app) and then end up with a modern stack with good tooling
I've been working on my static site generator https://mkws.sh lately so plain CSS and Js. If I were to start a new backend project, I'd probably go with Go or plain shell scripts via CGI tbh for an MVP.
Frontend
Backend
Frontend:
Backend really depends on the technology and client I am working with. Most of the time it is Node.js hosted on various platforms. But I am also working with PHP in the most current project.
When working with Node.js I use fastify as the server framework.
Databases: Dynamodb and Postgres (with TypORM as a framework in Node.js)
And for my bigger projects I am going AWS all the way, as I have the best knowledge in that.
For exception logging I am using honeybadger.io