TypeScript for sure, or even some other language that compiles to JS (e.g. I know people developing Node JS apps using Reason).
Just express on BE and React on FE.
Typed language because of the confidence it gives you that things work (or at least there are more chances they work).
Express because I like the simplicity of it and then you can choose how to organize.
React because of it's paradigm. View as a pure function of the data, JS as the way to build UIs (instead of some DSl based in HTML). And also it has a big community so you'll find a lot of things already solved.
Do you keep the backend and frontend code in the same or separate repositories?
If you are going to use the same language, then definitely the same repo. Easier to share code (and types).
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.