Vaadin 15 was released into general availability last week. By and large, the recommended option for most users who don't require the new TypeScript support is our current long-term support (LTS) version, Vaadin 14.1. This article explains how to select the right version of Vaadin for your project and the differences between the Vaadin release channels.
A non-LTS release every three months
Every three months we release a new major version of Vaadin. The version includes all the features that are ready on an agreed date that is set by the quality assurance team. If a feature is not ready on that date, the feature is not included in the release. The release train does not wait. Non-LTS version releases are ready for production quality-wise, but are only supported for four months.
This model allows us to incrementally release new features at a shorter cadence, without being tied up by API-compatibility requirements. The downside is that to get fixes for a non-LTS version after the short support time ends, you need to upgrade to a new major version. In the non-LTS release channel, we can experiment more boldly and introduce features that will receive major updates and even bigger refactoring.
How to get started with Vaadin 15
- To create a new project, use the Starter Wizard and choose at least one view with a TypeScript implementation.
- Choosing TypeScript is not an actual requirement for Vaadin 15, but for now, there is a limitation in the tool. A fix is coming soon.
- Optionally you can download one of the project examples.
- Choose the version number, as the LTS version is the default option
- If you’re upgrading from Vaadin 14 and using npm (the default), follow these upgrade instructions.
- If you’re upgrading from Vaadin 10-13, or using Vaadin 14 in compatibility mode, follow these migration instructions.
A long-term support release every two years
Every one to two years we release a long-term support version of Vaadin. At this point, we have stabilized the features from an API point of view and released enough increments that we are confident that all intended use cases are covered. An LTS version is supported for five years for free, and an additional ten years for the Enterprise customers who have opted-in to extended maintenance.
An LTS version has two kinds of updates. First, of course, it receives frequent bug fixes in patch releases. Second, it receives new feature updates in minor versions. The feature updates are compatible with the major version and don’t require any migration effort. The latest minor version of each LTS version replaces the previous one. This means that Vaadin 14.1 does not receive any fixes after Vaadin 14.2 is released. The feature updates don’t follow a strict release cadence as they are released whenever the planned feature set is ready to be released.
How to get started with an LTS version
- To create a new project use the Starter Wizard or download one of the project examples.
- If you’re migrating from an earlier version see the instructions for migrating from Vaadin 8 or from Vaadin 10-13.
The pre-release channel
There is one more channel that hasn’t been mentioned yet: the “pre-release channel”. Pre-releases of both LTS versions and non-LTS versions allow you to follow Vaadin development and try the features before they are finalized and released into general availability. Both the new major versions and LTS minor versions have frequent pre-releases while we work to stabilize the new features. Beta versions usually come out a month before the release, and release candidates shortly before a stable release. We also release alpha versions when there is something meaningful to release. Vaadin 14.2 is already in alpha8. As things stand currently, the contents of the 14.2.0 would be:
- Dialog (resizing, dragging, modeless)
- FlexLayout (Java API improvements)
- Scrollable layout
- Optional pnpm support enabling faster builds.
How to get started with pre-releases
For alpha versions:
- Choose the version you want, for example Vaadin 14.2.0.alpha8 and check the release notes on GitHub.
- You need a pre-release repository (as mentioned in the release notes).
For beta and release candidate versions (currently none available):
- Betas and release candidates have project starters available on vaadin.com/start and start.vaadin.com
- You can also follow the instructions on the releases page or release notes on GitHub
“Which one should I choose?”
Should you choose the LTS channel or the non-LTS channel? It’s hard to give a one-size-fits-all answer, but here’s a list of things to note.
- You get all the latest features.
- To receive continued updates and support you need to update your application dependencies every three months.
- You might need to migrate code because of API-incompatible changes in new major versions.
- You get long-term API stability.
- Some of the newest features are missing
We recommend LTS by default because it’s the more solid choice. It ensures that new projects, especially larger enterprise ones that are difficult to migrate, don't end up being built on a version of Vaadin without long-term support.
But what about choosing between Vaadin 14 or Vaadin 15 specifically? Currently, staying on Vaadin 14 does not mean you don’t get new features. On the contrary, we plan to release most of our improvements in feature updates of Vaadin 14. The next feature update will be 14.2. In addition, Vaadin 14 still has over four years of free support available.
With Vaadin 15, the only differentiating new feature is the ability to create stateless endpoints and add TypeScript views to a Vaadin application. If you don’t need this feature, you should stay on Vaadin 14. If you are interested in the TypeScript support, you can safely move to Vaadin 15, because it’s ready for production and mostly compatible with Vaadin 14. We only dropped a few APIs and legacy browsers.
Why Vaadin 14 might be for you
- Currently gets frequent feature updates.
- Long-term API stability means less hassle with updates.
- Free support continues until August 2024 and the extended support for Enterprise customers until August 2034.
Why Vaadin 15 and newer might be for you
- Mostly compatible with Vaadin 14.
- Java features and UI components on the server side continue to be actively developed.
- New client-side features with TypeScript and server-side endpoints offer new possibilities.