Vaadin 24.9 closes the 24.x chapter with a set of features that smooth out daily workflows and clear the path to what’s next. You can copy-paste designs with your own custom components, manage assets directly with @NpmPackage
, and rely on more predictable behavior in routing, forms, and tooltips. At the same time, we’re phasing out older APIs like VaadinWebSecurity
, so your projects are ready for the big leap: Vaadin 25.0.
Streamlined trials for premium features
Interested in premium features, but felt it was too much hassle to start a trial? Trying them out is now straightforward. You can start a 7-day trial instantly, with no sign-up required. It kicks in automatically when you use premium components or tools like vaadin-charts or Copilot and run your app. You can also trigger it yourself from the dev mode menu.
If you need more time, you can start a 30-day full trial with just registration. Just log in with email or social auth to unlock the trial. The longer window gives you space for real evaluations and higher confidence in taking the next step.
And since 30 days can go by quickly, you still have a safe fallback. If your trial has expired but you need to demo your app in production, start it with the -DcommercialWithBanner
parameter. This adds a visible banner stating that the app is running in trial mode, which is ideal for stakeholder reviews, MVPs, and internal demos.
Flow improvements
New <code>
component for code snippets
Render code snippets the right way with a first-class Flow component: semantic HTML, safe escaping by default, and themeable styling that matches the rest of your app. Drop the ad-hoc Div + CSS combos, avoid copy/paste escaping bugs, and keep technical views (docs, admin tools, logs) consistent and accessible.
Manage static assets with @NpmPackage
Declare static assets from npm packages right where you use them: @NpmPackage(assets = {"dist/line-awesome/css/**:line-awesome/dist/line-awesome/css"})
Flow copies those files into your frontend at build time (only if missing or newer), so fonts/icons/CSS from third-party packages are available without manual copying or theme.json
asset entries—cleaner builds and easier reusable components.
Hilla: wildcard views with subdirectories
Wildcard views in the file-based router now work across subdirectories. You no longer need to duplicate {…wildcard}.tsx
files under every parameterized folder just to handle unknown routes. One wildcard view at the root can cover all unmatched paths, keeping your project structure clean and making 404 handling much simpler.
Design System improvements
Improve tooltip discoverability with styling hooks
Elements with tooltips now expose a has-tooltip
attribute. This lets you add visual indicators in CSS so users can immediately see when a tooltip is available. It improves discoverability, keeps styling consistent across components, and removes the need for brittle selectors or manual classes.
Proper tooltip support for SideNavItem
SideNavItem
now has built-in support for tooltips. They are accessible and show only on the navigation item itself, not its children, making collapsed or icon-only side navigation easier to use. Like other components, SideNavItem
now implements the HasTooltip
interface.
Improved value sync for CustomField
CustomField
now synchronizes its value in more situations, not just on explicit change events. This ensures data binding and validation always see the latest state, reduces subtle bugs, and makes composite fields behave more predictably.
Copilot: custom component copy-paste
You can now copy-paste Figma designs that include your own custom components, not just the built-in Vaadin ones. Copilot maps them directly in the generated view, so everything comes across in one step with no placeholders or manual fixes.
Framework: deprecate VaadinWebSecurity
The VaadinWebSecurity
base class is now deprecated. It will be removed in Vaadin 25. Use the Spring Security configuration style with VaadinSecurityConfigurer instead. This reduces Vaadin-specific magic, aligns your app with Spring Security best practices, and gives you a clearer path forward for future upgrades.
🎙️ Vaadin 24.9 release webinar + 24.x highlights
We’re hosting a live walkthrough of Vaadin 24.9 on Wednesday, September 24 at 15:00 CEST / 9:00 AM EDT. Since this is the last scheduled release in the 24.x line, we will also look back at the key highlights across the entire 24.x series.
No registration needed. Just join us on YouTube and bring your questions.
📅 Add to calendar
📺 Watch live on YouTube
Wrapping up
Vaadin 24.9 brings important refinements to the 24.x series. It is a stable release to build on today, with smoother workflows, better consistency across components, and a cleaner foundation for the future. As you upgrade, check the deprecations like VaadinWebSecurity
and update your code where needed to keep your projects future-proof.
This is the last scheduled minor release before Vaadin 25.0. Additional 24.x updates may still follow, including feature backports based on customer needs.
Check out the release notes for full details, and let us know what you think in the Vaadin Forum or on GitHub.