To simplify things and help our users to be more productive, we have archived the current forum and focus our efforts on helping developers on Stack Overflow. You can post new questions on Stack Overflow or join our Discord channel.
With that kind of description, you could use Vaadin's web components and the client-side Vaadin Router. You would have to supplement that with 3rd party solutions for templating and state management in the client-side part as well as everything happening on the server.
Vaadin Labs has an experiment related to putting together that full stack, but this kind of approach is still in a very early phase.