My startup is developing a web app that is very visualization-heavy. Since I have a background in machine learning and Python the prototype is based on plot.ly's dash. Changing the prototype has become more and more difficult and there are some aspects of dash that I'm not very happy with:
Poor separation of front end and back end code, Mix of Python and JS/HTML/CSS, No support for mobile, Difficult to extend (e.g. integrating maps was painful)
The bottom line is, it all feels like we have reached the limits of our current technology stack and we should start from scratch with more suitable technology.
So I went out to see how web apps are done "properly" in 2020. Separating front end and back end is a very obvious first step. The back end technology is also very easy to pick. But the technologies and trends regarding front end are just overwhelming for me. I've read/watched multiple guides on the topic (e.g. https://youtu.be/0pThnRneDjw) and they all present multiple areas (UI, CSS, transpiler, database, etc.) from which one library/framework/etc. must be chosen.
I'm looking for a as-small-as-possible subset of these technologies that is strong in the following areas: Maintainability: This is the number one priority. The code must be easy to change, extend and debug. Extensibility: Plays well with new libraries/technologies. Easy to learn. Good solution for the long term
Some technologies that caught my eye are: TypeScript, vue.js, chart.js, GraphQL. But I have very little confidence in my choices. Can you help me navigate this space?