Author: Matti Tahvonen

There are many ways to utilize passkeys. Handling authentication internally within your app may not be the fanciest way to do it in 2025, but for legacy apps and when aiming for architectural simplicity, handling passkeys by yourself, like handling usernames and passwords, can still be a well-argued option. Spring Security has fairly recently added support for passkeys (via WebAuthn), making it an obvious library to utilize if you, for example, already use it for username-password style authentication.

True nerd stuff: Plotting vessel positions with AIS, MQTT & WebSockets
I recently blogged about my enhanced web UI for a ferry reservation system we use on my "home island." It has lately been gaining more users and feature requests. As an old orienteer, I desperately wanted to see where the ferry was in real time, so I could optimize those last couple of minutes in ...

Three methods to go passwordless in 2025
Passwords continue to be a persistent pain point in web security—tricky to implement safely and even harder to manage due to weak user practices and vulnerabilities like social engineering. Thankfully, we have a robust alternative available: Passkeys via the Web Authentication API (aka WebAuthn). ...

Enhancing Vaadin API for Spring Data and beyond
With the upcoming Vaadin 24.7 release, we’re introducing a couple of minor but impactful enhancements that embody our mission: making Java-based web development simpler and more productive. One of the key improvements in this release is an enhancement to the Grid API, allowing developers to ...

Maven 4 is coming – Here's what you should know
Maven 4 is on the horizon, with Release Candidate 2 (RC2) already available for early adopters. While an official release date is still unknown, at least one more RC (RC3) is expected. If you're working with Maven-based projects, now is a great time to test out the new version and prepare for the ...

Jakarta Data - Better repositories?
"The Jakarta Data specification provides an API to simplify data access. It enables Java developers to focus on the data model while delegating the complexities of data persistence…" The official goal of the specification could also be summarized as an attempt to standardize the good parts of ...

Dynamically generated forms with Vaadin Flow
Andreas Lange from WMware Tanzy recently published an insightful example where a Vaadin application dynamically generates a grid and a form based on domain objects annotated with metadata that provides hints for the presentation layer. This inspired me to revisit a topic that is both old and new in ...

Unleashing Vaadin for GUI-Based Java Scripts with JBang
JBang: Making Java work for utility apps and scripts Java has long been known for its robustness and scalability, but it has never been the go-to choice for small utility apps or quick scripts. While tools like Bash and Python are commonly used for scripting, they often come with their own set of ...

Use Java - It can be the most elegant method for you
TLDR: this is a ranty reply to a recent article about styling I didn't fully agree with. The rest of the TLDR is in the Java code example. Java code can be elegant—even when it’s used to adjust the style of your UI components. In a recent article about theming Vaadin applications, my colleague ...

Implementing a custom UI for a web app that has no API
It has happened before, and it happened again. I found myself dissatisfied with software I had to use multiple times a week. As a professional UI developer, I am particularly sensitive to bad UX. When a perfectly functional phone reservation service for my home island’s ferry was replaced with a ...