| Frontend: (vanilla) React with TypeScript. - TypeScript is more important than React, static typing is such a productivity boost, even for projects of all sizes. - Start with vanilla React and create-react-app, monitor for painpoints and look for solutions for these pain points in the community, don't look at the whole ecosystem before you start building stuff. Backend: Kotlin on the JVM. Kotlin is a really nice language for either functional or object oriented programming. Static typing with strict null checks are again a huge productivity boost. Standard library is very complete Beeing on the JVM without beeing stuck with Java is a big win: - unlocks a huge ecosystem and Java interoperability of Kotlin is superb.There are a lot of lightweight frameworks for stuff around here, enterprise Java is a myth if you are free to choose what to use. - special shoutout to the JOOQ library, the golden middleground between an ORM and raw SQL Strings. - JVM is fast - fat jars are somewhat like containers, can be run everywhere with minimal setup (yeah I'm looking at you python-uwsgi black magic) Database:
Postgresql. Everything you need (relational, JSON), fast, rocksolid |
I am not sure I find Spring an attractive proposition and Ktor seems rather young, slow and not that well documented.
What do you think is the best option?