Never really bothered to change stacks, but I'd want to know what's something that's faster/cheaper/more scalable/modern
What's your guys' go-to stack?
1. Rust backend that communicates with another Go based API. Use Rust for the performance critical parts and Go for the rest.
2. Use Python to build a machine learning model of some sort for your app.
3. Build your marketing website using JAMSTACK. Use a NextJS frontend, an Express API for rendering server state. Deploy the whole thing on Kubernetes. Make sure to automate everything using CI/CD so that deployment can be done using a single command or click.
4. Build your app frontend using a mixture of SvelteKIT and server side templates. Use Svelte to provide fluid user experience and server pages for simplicity. You can also mix in React and Vue if you like. Depends on how impressed you want your friends to be.
5. Also make sure to use multiple different databases. Use PostgreSQL for relational data, MongoDB for tree like structures, and also try some SQLite for simple stuff. If your friends read HN then they're gonna be really impressed by your use of SQLite.
That should set your up, don't try to over-complicate things. With a bit of luck, you'll be able to ship real software in less than 5 years.
Personally, my stack is Bottlepy (Python) and VueJs for frontend. Bottlepy is so simple and never changes, you just learn it once (and in a day) and you get stuff done. VueJS is a lot easier to learn than react and it just gets stuff done. React have other advantages such as bigger community, more tools, a bit more structure - but if you're small team I think VueJS shines more.
I used to use Django/Vanilla JS like you by the way :)
I usually prototype this way and then move things to a different stack piece by piece when others get involved, as the interop with Java and JavaScript is great.
Recently went through this discussion with two friends. For now we are doing PocketBase for a simple, extendable BaaS, Flutter for front-ends.
We are starting to drool looking at Elixir, Phoenix, and LiveView from afar. But the learning curve would slow us down for the next MVP that we need to put out on a schedule.
The fastest is the one you already know. The cheapest is the one you don't use. More scalable requires more complexity. More modern is probably completely useless until it's not modern anymore.
This reminds me of a technical discussion I was involved with regarding picking a language to develop a microservice. We chose Java because the vendor recommended it for easier integration with their service. It turned out they didn't have a Java library, it was just an HTTP API and nothing about the integration was made easier by using Java. The vendor just only worked with Java so that's what they recommend. I was an advocate of C# primarily because that's what we use in our other services.
Anyway, my point is "faster/cheaper/scalable/modern" are marketing terms and you should be wary of anyone selling you a solution based on these.
Usually, I just fork my team's template [0] which has most pieces required by a common web app. There are many types of errors that can't occur in this setup. And, if I ever need to Scale, the setup Scales pretty well with a single server (I used to run a mini block explorer that indexed the whole Bitcoin blockhain into a 2TB+ postgres database).
If you DO already know a tech stack then use that one!
You can quickly build something usable on different devices and use firebase as backend.