These are the reasons why I would use Mateu instead of other approaches. This is just my personal opinion but, please, let me know if you think I’m not right.
Versus traditional frontend development
You know, you have frontend developers who build nice frontends using any modern frontend framework, consuming an API which has been agreed with the backend developers who, in the end, implement that api and the business logic on the server side.
While I would myself stick to this approach for small projects or B2C websites with a lot of graphic design load, my experience is that this approach does not scale well and introduces a lot of accidental complexity to the typical enterprise projects (an intranet/extranet, a portal for professionals, …) to which Mateu is targeted.
With Mateu you simply remove the frontend development from the equation and the backend team owns the features e2e. No overhead for defining and agreeing API specs, no need for syncing deployments, … you simply have a better live.
Versus Vaadin
Vaadin is a wonderful framework which I love, built by awesome people and, in some aspects, it’s similar to Mateu. In my opinion, though, Mateu is a better for today’s complex distributed architectures.
Microfrontends are first class citizens in Mateu and, also, the stateles nature of Mateu’s server side makes it specially suitable for today’s micro services and serverless deployments. The stateless nature of Mateu server-side provides a smoother development, configuration and deployment, also.
Also, Mateu provides some higher level components and I think it’s easier to define and maintain enterprise applications using Mateu. In the end, I think you write a lot less code using Mateu.
Also, Mateu architecture where backend and frontend are completely decoupled, and sharing just an exceedingly simple API make Mateu great for companies which need to customize any side (e.g. using their own design system or preferred frontend framework) while leveraging the rest of Mateu.
Also, Mateu is intended to support not only Java/Kotlin but also C# and Python, and any other server side language which is worth in future.
But, again, these are just personal opinions based on my experience. Please let me know if you think differently :)