As part of a series of looking at less code options I started to take a look at Hilla from the Vaadin developers. It's a relatively recent entry into the Java Web Framework space and tightly integrates a Spring Boot Java back end with a reactive TypeScript front end.
What I liked about this framework is that the developers have put in a number of useful features for your development process, such as
- auto creation of the Typescript bindings so you don't need to define the dtos twice
- cli creation of project with boiler plate security
- existing component library
- expressing Java validation annotations on the front end Typescript forms
The framework also nicely segrates the front end and backend development without too much faff. Running the code like a normal spring boot app is sufficient in dev mode to also run the front end dev server so that all the code can be run at once.
If you are going to be using the framework, then the combination of builtin vaadin components should enable you to build a working webapp in pretty short time. However, it feels that to reach that higher level of productivity you will need to understand some of the more advanced features of the framework such as the design system. If you are not going to adopt the design system, then you'll likely have to build all the components again which you'd maybe have to do anyway if you used a different approach.
In summary, I started the small hilla-dev-test-project on Github to explore the framework, but I think that for small projects there's too much of a learning curve for me to build apps as I would want. However, in a work environment where the teams are commited to using it, I believe it could be a very productive and collaborative approach to building webapps.