Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 41 additions & 5 deletions articles/getting-started/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,59 @@ order: 5
section-nav: flat
---

= Welcome to the Getting Started Guide!
= 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.

New to Vaadin? Start with the Quick Start. In minutes, it gets you from nothing to a running application that you've changed yourself.
Where you start depends on whether you want to learn Vaadin or evaluate it for a project.

xref:quick-start#[Start the Quick Start, role="button primary water"]

When you have an application running, continue with the <<tutorial#,Tutorial>>. It takes you step by step through building a complete Spring Boot application with a Vaadin UI, a database, forms, and navigation.
== Learn Vaadin

Evaluating Vaadin for a project? Start with <<{articles}/building-apps/architecture/when-to-use-vaadin#,When to Use Vaadin>> to learn which applications Vaadin fits, which it doesn't, and why. Then read <<{articles}/building-apps/architecture/runtime-model#,How Vaadin Works at Runtime>> to learn where the UI state lives, what each interaction costs, and what that means for deploying and scaling the application. If you already have an application, see <<existing-application#,Add a Vaadin UI to an Existing Application>>. It shows how the UI fits in next to the application's REST API, security configuration, and JPA entities. Finally, see <<{articles}/building-apps/architecture/licensing-and-maintenance#,Licensing, Support & Maintenance>> for which features are free and which need a commercial subscription, and <<{articles}/compatibility#,Supported Technologies>> for the minimum versions of Java, Spring Boot, and other technologies.
New to Vaadin? Follow these in order:

. <<quick-start#,Quick Start>> -- Get from nothing to a running application that you've changed yourself, in minutes.
. <<tutorial#,Tutorial>> -- Build a complete Spring Boot application with a Vaadin UI, a database, forms, and navigation, one step at a time.
. <<next-steps#,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 <<dev-environment#,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#,Starters>>.


== Evaluate Vaadin

Deciding whether Vaadin fits a project? Read these pages in order. Together, they take about half an hour.

. <<{articles}/building-apps/architecture/when-to-use-vaadin#,When to Use Vaadin>> -- Which applications Vaadin fits, which it doesn't, and why.
. <<{articles}/building-apps/architecture/runtime-model#,How Vaadin Works at Runtime>> -- Where the UI state lives, what each interaction costs, and what that means for deploying and scaling the application.
. <<{articles}/building-apps/architecture/licensing-and-maintenance#,Licensing, Support & Maintenance>> -- Which features are free, which need a commercial subscription, and how Vaadin versions are maintained.
. <<{articles}/compatibility#,Supported Technologies>> -- The minimum versions of Java, Spring Boot, and other technologies.

To go further, see the <<{articles}/building-apps/architecture#,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:

pass:[<!-- vale Vaadin.Versions = NO -->]

A Java application::
<<existing-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 <<{articles}/building-apps/integration/rest-api#,REST API Alongside Vaadin>>. To use data from a backend that runs as a separate service, see <<{articles}/building-apps/integration/call-remote-services#,Call a Remote Service>>.

A Swing application::
<<{articles}/tools/modernization-toolkit/swing-bridge#,SwingBridge>> runs it in a browser without a rewrite. <<{articles}/tools/swing#,Swing Kit>> renders Vaadin views inside it, so you can replace it one view at a time. The <<{articles}/tools/modernization-toolkit#,Modernization Toolkit>> helps you migrate its source code.

An older Vaadin version::
The <<{articles}/upgrading#,Upgrading Guide>> lists the changes that an upgrade needs, and the <<{articles}/upgrading/version-comparison#,Version Comparison>> compares the major versions to help you assess the effort. For Vaadin 7 and 8, <<{articles}/tools/mpr#,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.

pass:[<!-- vale Vaadin.Versions = YES -->]


== Everything in This Section

section_outline::[]
Loading