Vaadin Features

Vaadin is an open source Java web framework. With Vaadin, your UI code runs securely on the server, right next to your business logic that you can access with native Java API. Vaadin takes care of routing and server-client communication transparently, quickly, and securely, so you can focus on what matters - building a great app for your users.
Web Components
  • Java API for all components
  • Works with mouse and touch
  • Good looking CSS theme enabled by default
  • WAI-ARIA 1.1 compatibility tested
  • Keyboard navigation and screen reader support
  • Built on W3C Web Components standard
  • Form input components
  • Responsive layouts
  • Data grid with sorting, filtering, hierarchy and drag-and-drop
  • Dialogs and notifications
  • Dozens of chart types
  • Supports right-to-left languages such as Arabic, Persian or Hebrew
Java Web Development
  • Java-only type safe web development
  • Progressive Web Applications with @PWA annotation
  • Official integration library for Spring
  • WebSocket based server push with @Push annotation
  • Java EE supported with CDI integration
  • Maven and Gradle build tooling
  • Browser details API
  • @PreserveOnRefresh preserves any changes to the view on page refresh.
Theming
  • Two built-in themes: Lumo and Material
  • Switch between dark or light mode
  • Style alternatives from Java
  • CSS properties for global styling
  • Custom CSS supported
  • Extensible with your custom themes
  • Dynamic CSS class names and inline styles
Routing
  • Back button and deep linking supported
  • Navigation without reloading the whole page
  • Registering static routes with @Route annotation
  • Registering routes dynamically
  • BeforeEnter, AfterNavigation, and BeforeLeave events
  • Postpone navigation until a condition is met
  • Dynamic rerouting and forwarding
  • Nested router targets
  • URL Parameters
  • Generated URLs
  • Programmatic navigation on server-side
  • Custom error views and 404 views
  • Updating page title on navigation
  • History API support
Spring Support
  • Spring 5 and Spring Boot 2
  • Vaadin apps are deployed and run as servlets
  • Custom servlets supported
  • @Autowired available for components and layout
  • Spring Boot properties for application configuration
  • Custom Spring scopes for Session and UI
  • JavaBean Validation
  • Java Persistence API (JPA)
  • Spring Web can be used also without Spring Boot magic
  • Access stateless backend methods directly from client-side code in Vaadin 15
Java EE Support
  • Java EE 7 and Java EE 8 (Jakarta EE 8)
  • Vaadin apps are deployed and run as servlets
  • Custom servlets supported
  • @Inject available for components and layout
  • Custom CDI scopes for Service, Session, UI, and Route
  • CDI events for navigation and session lifecycle events
  • I18NProvider, Instantiator, SystemMessagesProvider, and ErrorHandler as CDI managed beans
  • JavaBean Validation
  • Enterprise JavaBeans (EJB)
  • Java Persistence API (JPA)
Data Binding
  • Bind Java beans to form fields
  • Read/write or read-only binding
  • Input validation with custom validation messages
  • Converters for binding UI fields to properties of incompatible type
  • JavaBean validation in Java EE and Java SE
HTML Templates
  • Re-use a template as a component in server-side Java
  • Java properties can be bound to components in a template
  • Binding components in templates to Java instances with @Id annotation
  • Server-side event handlers for JavaScript events in templates
  • Call server-side methods from custom JavaScript
  • Vaadin Designer - visual tool for creating and editing HTML templates
Extensibility
Security
  • Server-side UI state management
  • Application code, validations and business logic runs in the server
  • Secure parameter and request validation
  • Built-in JSR-303 validation support
  • CSRF protection and SSL support
Java, Servers and Tools
  • Java
    Java 8, Java 11 and the latest Java
  • Application servers
    Apache Tomcat 8.0.x, 8.5, 9
    Apache TomEE 7.0.4->
    Oracle WebLogic Server 12.2.1
    IBM WebSphere Application Server 8.5 Liberty Profile and 9
    RedHat JBoss EAP 7
    WildFly 14, 15, 16
    Jetty 9.4
    Payara Server
    Payara Micro
  • Node.js and npm versions
    Node.js version 10.x or newer.
    npm version 5.6.0 or greater.
Browsers and End-User OS
  • Chrome latest: Windows, Linux, macOS, Android and iOS.
  • Safari latest: macOS and iOS.
  • Firefox latest + latest ESR: Windows, macOS and Linux.
  • Edge latest: Windows.
  • Internet Explorer 11 (Vaadin 8-14 only): Vaadin 10 and newer support IE 11, but the performance is low in many cases due to used polyfills.
Licensing