Ask HN: What's the best backend right now?
I'm planning to build a multiplatform application (web, mobile, and desktop) with a modern tech stack.
I've decided on the following frontend tech stack:
- Web: Next.js, Tailwind CSS
- Mobile
- Android: Jetpack Compose
- iOS: SwiftUI
- Desktop
- Windows: WinUI 3
- MacOS: SwiftUI
- Linux: Qt
But I'm still unsure about choosing a backend. What backend do you think is the best right now?*assume the team is ready to learn any technology
11 comments
[ 3.5 ms ] story [ 30.6 ms ] threadI do my side projects in Python with aiohttp and think it is a lot of fun even though people tell me it is suicide (I guess if you block the thread you are in trouble)
I think "Next.js" really wants a node.js backend which has the big advantage that you can share code with the front end and back end. It's basically single-threaded but I know people who are happy with it.
The system I'd most like to try is
https://www.phoenixframework.org/
which is just great if you want to do stuff with websockets that is more interactive than what most people are doing.
I think though that developing that many different front ends would drive you crazy: is there a real reason you can't just make it a web app?
This project is actually more of a hobby and learning experience. And I would of course start with the web first. I'm inspired by OpenAI's approach in gradually rolling out ChatGPT – starting with web, then mobile, and maybe finally desktop.
Thanks for your suggestions! I might consider Node.js.
The time to finish your project would be quicker with all-in-one solutions.
Ditch the nextjs part and just return html. Add alpinejs and htmx and you won’t need to waste time creating a typical json api.
You might want to check out https://awesomestacks.dev or https://project-awesome.org/stackshareio/awesome-stacks#back...
Hope those helps.
It's not a silver bullet though - some reflection features aren't supported, and reflection in general requires a bit of config at compile time to make sure all the required classes are loaded. This can make some plugin architectures unworkable, although I maintain that if you need reflection for pluggable code, you're probably doing it wrong.