A minimal zero-downtime deployment using nginx & Spring Boot

Starting Java web applications is not an instantaneous process. It is not rare to see tens of seconds for some applications to boot. Although you can get an almost instant startup time if you leave out Hibernate and run Quarkus on GraalVM, that’s not the reality we live in.

tips for improving web app accessibility

Basic Tips for Improving Accessibility

User Experience is a core value of the Vaadin team. This post is part of our series on UX in the Enterprise and highlights the importance of accessibility in building modern enterprise web applications. In this article we're going to go over some basic tips and tricks for improving the ...

Read and Display a CSV File in Java

This guide demonstrates how to import a CSV file in Java and display it in a data grid. In this guide, we create a web app that enables users to upload a CSV file to the server, where the file content is processed, and displayed back to the user’s UI inside a data grid. The web app is developed ...

Packaging and deploying Spring Boot applications as WAR files

This guide explains how to: Package a Maven-based Spring Boot application as a WAR file Deploy a WAR file to Apache Tomcat Deploy a WAR file to Eclipse Jetty Packaging a Maven-based Spring Boot application as a WAR file To change the packaging in a Maven-based Spring Boot application that was ...

Enable Users to Upload & Download Files

This guide demonstrates how to create a web app that enables users to upload and download files to and from the server in Java. In this guide, we create a web app that enables users to upload and download files to and from the server. The UI allows users to select local files to be uploaded to the ...
registration form in 100% java

Create a Registration Form in Pure Java

Learn how to create a responsive signup form with error handling and cross-field validation written in pure Java. In this guide, we create a standard registration form with error handling and cross-field validation. This signup form is developed entirely in pure Java using Vaadin Flow (no HTML or ...
securing apps with spring boot and vaadin

Securing Vaadin apps with Spring Security

Getting security right is critical when building web apps. The upside of building a web app is that people can use it wherever they are, on any device. But you need to ensure that only the right people are able to access it, and that they have access to only the features you intended.  In this ...

Dynamic Theming in Vaadin Flow

The application with different theme variants Whether for multi-tenancy or user preference, the need to dynamically change the theming of an application is a common business application need. In this post, we show how it’s done using CSS custom properties and HTML attributes. Vaadin 14.6 brought an ...

Vaadin tips video series

Since last October, we have released weekly technical videos on topics about Vaadin Flow and Vaadin Fusion. If you are a visual learner, this series is for you!
Test results

Introduction to load testing with Apache JMeter

Load testing allows you to simulate multiple users interacting with your application. This allows you to experiment with a real-world load on your application and understand its behavior under different levels of stress. In this article, I'll show you, step by step, how to run load tests on a ...