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. (You can find the demo app, NeuroWatch,on GitHub.)

Subscribe to our newsletter

Be the first to learn about new Vaadin resources and tips

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 ...

How to use own Figma components in Vaadin applications

In this guide, you’ll learn how to copy components from Figma and paste them into Vaadin as Java or React code using Vaadin Copilot’s Figma Importer API. This article is based on: Demo project Figma component and instance example Before we begin To have the best experience while working with ...
How to add HTTPS to your Java web application

How to add HTTPS to your Java web application

HTTPS (aka HTTP over TLS aka HTTP over SSL) is no longer optional for web sites. Even if your application wouldn’t handle critical data that attackers would be interested in, or it would be only used within a secure intranet, modern browsers show a scary “Not secure” warning to users accessing ...
learn how to customize the vaadin loading indicator

Make the loading indicator in Vaadin great again

Every interaction in a Vaadin UI sends a request to the server. If that response takes longer than ~300 ms, Vaadin shows a loading bar across the top of the page to prevent user confusion. It appears the moment the request leaves the browser and disappears as soon as the response returns. Default ...
how to integrate the Web Share API with Vaadin

Sharing made simple: Integrating the Web Share API with Vaadin

The Web Share API is a modern browser feature that enables users to easily share content—like URLs, text, or files—via the operating system's native sharing dialog. This is especially handy on mobile and touch-based devices, where copy-paste workflows can feel clunky. As developers, we often rely ...
choosing the right JVM for your vaadin app

Choosing the JVM that powers your Vaadin application

Vaadin Flow is a full-stack Java web framework that runs all UI logic server-side on the JVM — eliminating the need for REST APIs or duplicate JavaScript. This lets teams deliver full-stack features in minutes or hours instead of days, speeding up development for internal tools, enterprise ...
Which notifications are best for your Java app: web, Vaadin, or push?

Which notifications are best for your Java app: web, Vaadin, or push?

Vaadin developers are no strangers to the Notification component. It has for almost two decades served as a reliable way to notify users about important events—whether it’s the success or failure of an operation or the completion of a time-consuming background task. But the web platform has evolved ...
5 tips for mobile optimizations for full-stack Java apps

5 tips for quick mobile optimizations

Progressive Web App (PWA) development with Vaadin makes it easy to build responsive, mobile-friendly business applications using Java. Vaadin components are built with responsiveness in mind, and by using tools like the AppLayout, your top-level navigation is already mobile-aware — adapting well to ...
Explore three ways to connect UI components in Vaadin Flow using SVG and LeaderLine.

How to draw a line between Vaadin components?

Interesting question, and I’m sure you are not the first one to have it, I answered a booth visitor at JCON 2025. The Vaadin developer wanted to show a connection between two UI components, to show some sort of relationship between those. I thought that using SVG it ought to be “straightforward” ...