Docs

Documentation versions (currently viewingVaadin 25)
Documentation translations (currently viewingEnglish)

Getting Started with Vaadin

Get started building the UI of your Java applications 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:

  1. Quick Start — Get from nothing to a running application that you’ve changed yourself, in minutes.

  2. Tutorial — Build a complete Spring Boot application with a Vaadin UI, a database, forms, and navigation, one step at a time.

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

  1. When to Use Vaadin — Which applications Vaadin fits, which it doesn’t, and why.

  2. How Vaadin Works at Runtime — Where the UI state lives, what each interaction costs, and what that means for deploying and scaling the application.

  3. Licensing, Support & Maintenance — Which features are free, which need a commercial subscription, and how Vaadin versions are maintained.

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