Getting Started with Vaadin
Vaadin lets you build the web user interface of a Java application in Java. An application with a Vaadin UI is a regular Java application: you write the UI with the same language, tools, and libraries as the rest of the application. Java skills are all you need to be productive. Knowing CSS, JavaScript, or TypeScript helps, for example when you fine-tune the look of your application, but it isn’t a requirement.
Vaadin works with Spring Boot, Quarkus, Jakarta EE servers, and plain servlet containers. The Quick Start and the Tutorial use Spring Boot, because it’s the easiest platform to start with.
Where you start depends on whether you want to learn Vaadin or evaluate it for a project.
Learn Vaadin
New to Vaadin? Follow these in order:
-
Quick Start — Get from nothing to a running application that you’ve changed yourself, in minutes.
-
Tutorial — Build a complete Spring Boot application with a Vaadin UI, a database, forms, and navigation, one step at a time.
-
Next Steps — Find the guides that turn your application into one that you can put in front of real users.
Need to install Java or an IDE first? See the Development Environment guide. Looking for other ways to create a project, such as Gradle, Spring Initializr, or a template for Quarkus or Jakarta EE? See Starters.
Evaluate Vaadin
Deciding whether Vaadin fits a project? Read these pages in order. Together, they take about half an hour.
-
When to Use Vaadin — Which applications Vaadin fits, which it doesn’t, and why.
-
How Vaadin Works at Runtime — Where the UI state lives, what each interaction costs, and what that means for deploying and scaling the application.
-
Licensing, Support & Maintenance — Which features are free, which need a commercial subscription, and how Vaadin versions are maintained.
-
Supported Technologies — The minimum versions of Java, Spring Boot, and other technologies.
To go further, see the Architecture Deep Dives. They cover how to structure an application with a Vaadin UI, from layers and packages to monoliths and microservices, and how to measure capacity and test failover.
Start from Existing Code
You don’t need a new project to use Vaadin. If you already have code, start here:
- A Java application
-
Add a Vaadin UI to an Existing Application shows how the UI fits in next to the application’s REST API, security configuration, and JPA entities.
- A REST API or a separate backend
-
Views call your application services directly, so the UI doesn’t need a REST API of its own. To keep serving an API to other systems, see REST API Alongside Vaadin. To use data from a backend that runs as a separate service, see Call a Remote Service.
- A Swing application
-
SwingBridge runs it in a browser without a rewrite. Swing Kit renders Vaadin views inside it, so you can replace it one view at a time. The Modernization Toolkit helps you migrate its source code.
- An older Vaadin version
-
The Upgrading Guide lists the changes that an upgrade needs, and the Version Comparison compares the major versions to help you assess the effort. For Vaadin 7 and 8, Multiplatform Runtime runs the existing views and components inside a current application while you migrate them, and the Modernization Toolkit automates part of the refactoring.
Everything in This Section
- Quick Start
- Hit the ground running with Vaadin by creating a simple web application from scratch in this quick tutorial using only Java.
- Development Environment
- Get the most out of Vaadin by setting up your development environment with the right tools and configurations.
- Starters
- Learn about different ways to start a project with Vaadin.
- Existing Applications
- Add a Vaadin UI to a Java application that you already have, next to its REST API, security configuration, and database code.
- Tutorial
- A comprehensive step-by-step tutorial to get started with Vaadin and learn best practices along the way.
- Next Steps
- Add features to your project to turn it into a full-featured application.