A Vaadin Starter Project with a Clear Focus
Many example projects overload the starting point by covering too many topics at once. Routing, data access, security, forms, theme customisations, and other integrations will then be presented in a single demo. This makes it more difficult for readers…
Posts by Sven Ruppert
Practical i18n in Vaadin: Resource Bundles, Locale Handling and UI Language Switching
Modern web applications are rarely used only by users with the same language. Even internal tools often reach international teams or are used in different countries. A multilingual user interface is therefore not…
Separation of Concerns in Vaadin: Eliminating Inline Styles
Vaadin Flow enables the development of complete web applications exclusively in Java. Components, layouts, navigation, and even complex UI structures can be modelled on the server side without working directly with HTML or JavaScript.…
An unexpectedly hassle-free upgrade
The starting point for this article was not a strategic architecture workshop or a long-term planned migration path, but a comparatively unspectacular step: updating the version numbers in the existing project. As part of further developing my URL shortener…
The Importance of UI in Import Processes
Why an import needs a UI at all Import functions are often treated as purely technical details in applications. Data is read in, processed and then made available – ideally without further interaction. In practice, however, an import is rarely an invisible…
Untitled
Export functions are often seen as a purely technical side task: one button, one download, done. In a Vaadin-based application, however, it quickly becomes apparent that exporting is much more than writing data to a file. It is a direct extension of the UI state, an infrastructural…
Advent Calendar 2025 – Extracting Components – Part 2
What has happened so far In the first part, the focus was deliberately on the user interface's structural realignment. The previously grown, increasingly monolithic OverviewView was analysed and specifically streamlined by outsourcing key…
Advent Calendar 2025 – Extracting Components – Part 1
Today marks a crucial step in the evolution of the URL shortener's user interface. After the focus in the past few days was mainly on functional enhancements – from filter and search functions to bulk operations – this day is dedicated to a…
Advent Calendar 2025 – De-/Activate Mappings – Part 2
What has happened so far? In the first part of this article, the new active/inactive model for shortlinks was introduced and anchored at the architectural level. Based on the technical rationale, it was shown that a pure expiration date is…
Advent Calendar 2025 – De-/Activate Mappings – Part 1
Why an active/inactive model for shortlinks? For many users – especially those who work in the field of software development – shortlinks are much more than simple URL shorteners. They act as flexible routing mechanisms for campaigns, feature…
Advent Calendar 2025 – Basic Login Solution – Part 2
What has happened so far? In the first part of "Basic Login Solution", the foundation for a deliberately simple yet structurally clean admin login was laid. The starting point was the realisation that even a technically lean URL shortener…
Advent Calendar 2025 – Basic Login Solution – Part 1
Introduction The administration interface of a URL shortener is a sensitive area where short links can be changed, removed, or assigned expiration dates. Although the system is often operated on an internal server or in a private environment,…
Advent Calendar 2025 – Mass Grid Operations – Part 2
What has happened so far... In the previous part, the URL shortener overview was significantly expanded. The starting point was the realisation that the last UI was heavily optimised for single operations and thus quickly reached its limits as…
Advent Calendar 2025 – Mass Grid Operations – Part 1
The next stage of the Advent calendar focuses on further development, which becomes immediately noticeable once more shortlinks are used. The previous interaction patterns in the Overview view were geared toward individual operations and yielded…
Advent Calendar 2025 – From UI Interactions to a Deterministic Refresh Architecture
After the first part explained the conceptual basics and the new interactions among global search, search scopes, and advanced filters, the second part focuses on the technical mechanisms that enable these…
Advent Calendar 2025 – From Simple Search to Expert Mode: Advanced Filters and Synchronised Scopes for Power Users
Since its inception, the URL shortener's continuous development has focused on two core goals: a robust technical foundation without external frameworks and a modern, productive user…
Advent Calendar 2025 – Introduction of multiple aliases – Part 2
Today's update introduces another practical development step for the URL shortener. After the last few days were dedicated to UI refinement and the better structuring of detailed dialogues and form logic, the focus is now on an…
Advent Calendar 2025 – Introduction of multiple aliases – Part 1
Introduction: More convenience for users With today's development milestone for the URL Shortener project, a crucial improvement has been achieved, significantly enhancing the user experience. Up to this point, working with short…
Advent Calendar – 2025 – From Grid to Detail: Understanding the User Experience in the Short-URL Manager
The current UI from the user's point of view On the first call, the user lands in the overview. The site is built on a Vaadin grid, whose header contains a search bar, paging controls, and a…
Advent Calendar – 2025 – ColumnVisibilityDialog – Part 2
Server-Side Extension: PreferencesHandler and REST Interfaces The server-side extension for dynamic column visibility follows the same design logic as the UI: simplicity, clear accountability, and a precise data flow. While the OverviewView…
Advent Calendar – 2025 – ColumnVisibilityDialog – Part 1
From observer to designer: User control at a glance With the fourth day of the Advent calendar, the perspective on the application changes fundamentally. While in the previous expansion stages users reacted primarily to prepared structures,…
Advent Calendar – 2025 – Detail Dialog – Part 2
Client contract from a UI perspective In this project, the user interface not only serves as a graphical layer on top of the backend, but is also part of the overall contract between the user, the client, and the server. This part focuses on the data…
Advent Calendar – 2025 – Detail Dialog – Part 1
Classification and objectives from a UI perspective Today's Advent Calendar Day focuses specifically on the interaction level prepared in the previous parts. While the basic structure of the user interface and the layout were defined at the…
Advent Calendar – 2025 – Persistence – Part 02
Today, we will finally integrate the StoreIndicator into the UI. Vaadin integration: live status of the store Implementation of the StoreIndicator Refactoring inside – The MappingCreator as a central logic. EclipseStore – The Persistent Foundation…
Advent Calendar – 2025 – Persistence – Part 01
Visible change: When the UI shows the memory state With the end of the last day of the Advent calendar, our URL shortener was fully functional: the admin interface could filter, sort, and display data page by page – performant, cleanly typed, and…
Advent Calendar – 2025 – Filter & Search – Part 02
In the previous part, we looked at the implementation on the server side. This part is now about the illustration on the user page. The source code for the initial state can be found on GitHub under . The following screenshot shows this state of…
Advent Calendar – 2025 – Filter & Search – Part 01
With the Vaadin interface described in [Part III], our URL shortener has a fully functional administration console available for the first time. It allows viewing existing short links in tabular form and managing them manually. But after just a…
Introduction to the URL‑Shortener Advent Calendar 2025
December 2025 is all about a project that has grown steadily in recent months: the Java-based URL Shortener, an open-source project implemented entirely with Core Java, Jetty, and Vaadin Flow. The Advent calendar accompanies users every day…