I can recommend Vaadin[1]. It feels like a successor to GWT, feels natural for backend develops and looks similar to Swing. A big component library is included and it offers binding for Typscript webcomponents (there's a frontend-centric variant of the framework named Hilla too).
Frontend states are held in a backend session, so it's safe for manipulations but i'd only recommend it for management UIs.