Vaadin 25.0 was just released, and the focus of this major version is a significant "slimming down" of the framework. For those who haven't looked at Vaadin in a few years, this release moves away from many framework-specific abstractions in favor of web standards.
Key Engineering Changes:
Standardizing on Lit: We’ve finally removed the legacy Polymer dependency. All components are now 100% Lit-based, resulting in smaller bundles and better performance.
Native CSS over Framework Config: Theming has been refactored to use standard CSS. You can now use @StyleSheet or native CSS @import directly, removing the need for Vaadin-specific theme JSON configurations.
Dependency Diet: We’ve trimmed transitive dependencies by ~30% by leveraging modern JDK APIs (Java 21 is now the baseline) and moving to Jackson 3 for communication, replacing the old Elemental JSON library.
Build Pipeline Unification: The "Production Profile" quirk is gone. A standard mvn package now produces a production-optimized build by default, making it much more compatible with standard CI/CD and Buildpacks.
Ecosystem Baseline: Updated to Java 21 LTS, Spring Boot 4.0, and Jakarta EE 11.
We’ve also introduced a new theme called "Aura" and added experimental support for Tailwind CSS integration.
Happy to answer any questions about the migration or the new architecture!
I've been using Vaadin with AI coding assistants (Claude, Copilot) and the experience is surprisingly smooth compared to typical React/Spring Boot setups.
The core insight: server-side rendering + pure Java stack eliminates a ton of friction when AI generates code. No mismatched API contracts, no TypeScript/Java type drift, no "generate backend, now generate frontend, now make them talk to each other."
The security model is cleaner too - business logic stays in the JVM by default, so you're not auditing AI-generated React components for accidental client-side auth checks or data exposure.
Curious if others have found similar patterns with other frameworks, or if there are better approaches to AI-assisted full-stack development I'm missing.