Java UI in 2026: A Practical Guide to Desktop and Web Modernization

Java UI in 2026: A Practical Guide to Desktop and Web Modernization

This article is for Java teams that maintain important desktop applications and need to decide what to do next: keep the desktop UI, move parts of the application to the browser, modernize gradually, or rewrite.

Subscribe to our newsletter

Be the first to learn about new Vaadin resources and tips

From VPS to Kubernetes: Containerizing the app in user space

From VPS to Kubernetes: Containerizing the app in user space

In the previous VPS post we deployed URL shortener service the old-fashioned way: clone the repository, build it on the server, wire up Jetty server, configure nginx by hand, and run Certbot. Quite many steps and moving parts, and everything living as bare processes on a single Ubuntu machine. And ...

SWT and Eclipse RCP on the Web: What AI Could and Couldn't Port

I came to RSS about twenty years late. When I finally went looking for a good reader, one beloved old Eclipse desktop app kept turning up on every "best of" list—RSSOwl—and it wouldn't even launch on my Mac. I'm a developer, so instead of shrugging I got nosy: how hard would it actually be to ...
How To Ensure Serializable Sessions in Vaadin 25 Applications

How To Ensure Serializable Sessions in Vaadin 25 Applications

In many real-world Vaadin 25 applications, strict session serialization isn’t always required. However, it becomes important in clustered deployments, failover setups, session passivation scenarios, and environments with frequent restarts. The good news is that this is manageable when you apply a ...
Printing and Saving PDFs from Java Web Apps

Printing and Saving PDFs From Web Apps

Printing from a browser looks trivial — until you try it. A modern web UI is built around a scrolling viewport, virtualized lists, fixed drawers and other overlays that the user never thinks about, but that a printer happily reproduces on A4. This post walks through the four options I reach for ...
How to style vaadin components for the Aura and Lumo themes.

How To Style Vaadin Components for Both Aura and Lumo

By default, Vaadin components are rendered with minimal base styles. These provide a neutral foundation—useful when you want to build a custom theme from scratch or create a look that differs from the built-in options. Vaadin comes with two main themes: Lumo and Aura. Lumo is the original theme, ...
embedding Vaadin components in Angular

Embedding Vaadin Components in Angular

We recently made a study for new people experiencing using Vaadin for the first time. When finding people who are doing Java web development, many are currently working on Angular applications. The study was very successful and many liked the “Vaadin way”, but we were left with an open question ...

How We Built an Accessible Dashboard Component

Vaadin's new Dashboard component is built to fully conform to WCAG 2.1 AA — the accessibility standard underpinning both the EU's Accessibility Act and the US's ADA/Section 508 requirements. Here's how we got there, and the specific challenges that come up when you combine strict accessibility ...

Building the Perfect Docker Image for a Java app

I recently hosted a webinar with Catherine Edelveis from BellSoft on optimizing Docker images for Java applications. Catherine presented examples using a Spring Boot app with a Vaadin frontend, MongoDB, Kafka, and Spring Security — a setup that's closer to production reality than most demo apps. ...
The journey behind major versions from 10 to 25

What it takes to build a set of Vaadin components

This post is my personal reflection on eight years of building and refining Vaadin components across major versions, and the lessons learned along the way. The journey behind major versions from 10 to 25 Working on building a Java framework is quite an interesting challenge… And even more so if you ...