Congratulations! In addition to finding the best web framework for Java, you also are qualified to participate in our Vaadin app competition.
You should have received an email from us with instructions on how to participate, and this is the post you can reply to join the challenge! Others can participate by liking and voting for the most awesome app.
Hi! yes i want to join the challenge. I didn’t find this post until now but i have a project that im gonna post here . I don’t see the tag " i-built-this" that was mentioned in the email. But i guess il post my project here then.
Sorry about that! The tag was indeed missing, but it is not really needed and you posted to the right place.
We have it now: vaadin.com/forum/tag/i-built-this
This one is awesome, and beyond what I was thinking is achievable. Smaller or bigger, I hope we see some more entries!
My entry in the competition is Placeholder Mock. It’s a tool for mocking HTTP API responses. I didn’t manage to complete all the features I wanted, but it does have a UI built in Vaadin.
Define the routes to mock, start it up and then look at the UI as requests are received in real-time.
i-built-this
Thank you for this Vaadin challenge. I rebuilt a website using Vaadin and Java 25. Part of the code was build with an AI code editor and I made some changes to it and made the app more modern then its predecessor. I do security and wanted to recreate the OSINT Framework website and give it a more modern feel. Here is what I came up with: https://github.com/jonexume/the-osint-framework.git
It is not intended to be a pixel-perfect clone. The goal was to use that visual and product direction as a foundation for a Vaadin Flow with Aura reinterpretation focused on a more polished, product-oriented experience: stronger navigation, master-detail views, route-driven detail panels, demo data, and a more refined UI than the usual CRUD baseline.
The current scope includes:
Bookings
Admin / Users
Admin / Planets
With this project, I wanted to explore a more design-forward Vaadin Flow application, supported by a significant amount of custom CSS and layout work.
I built Meaningful Miles, a web application designed to make travel more accessible, safe, and personalized for individuals with disabilities, older adults, and those with other needs.
This project is from an Occupational Therapy perspective. It’s goal would focus on helping people participate in travel by identifying and reducing real-world barriers. My SO is an Occupational Therapist and this was one of those things that have some potential in the future for her.
For now , the scope is limited to some sample Hotel Lists and have that show up with Vaadin’s UI components. I created some sample hotels with scoring for accessibility. The user in this case would choose their profile and get recommendation based on their preference.
i-built-this
Hi Vaadin community! Posting my app for the competition as well!
I’d like to share a project I’ve been building and get some feedback from the community.
Quarkus Chat PoC — AI-powered assistant with RAG + MCP
This is a proof of concept of an AI chat application built with Vaadin Flow and Quarkus, combining several modern technologies:
Stack:
Vaadin Flow for the UI
Quarkus (native image) as the backend framework
LangChain4j for AI orchestration
Ollama running qwen3:1.7b locally for LLM inference
PgVector (PostgreSQL) for RAG-based policy document retrieval
A custom MCP (Model Context Protocol) server for GitHub documentation search
How it works:
The chat client connects to three services:
an Ollama instance for general LLM responses
PgVector store for policy-related RAG queries
personal MCP server that exposes tools to search documentation directly from a GitHub repository.
One of the interesting challenges was getting everything to work in native image (particularly around Jackson serialization of the MCP protocol classes and Vaadin static resource resolution, both of which behave differently outside the JVM).
The whole stack runs via Docker Compose, including Ollama, PgVector, and both Quarkus native services (Speciffically on branch native_image you can find docker-compose and all the changes to make it work with native image )
I built Storage Manager, a self-hosted inventory and expiry tracking app built with Vaadin, Spring Boot, PostgreSQL, Flyway, and Docker Compose.
The idea is simple: I wanted a practical way to track what is stored in numbered boxes, where each item is located, and when time-sensitive items are about to expire. The app manages storage boxes, item types, individual item instances,
images, best-before dates, and notification records.
The idea came when the Danish government literally asked us all to basically become Preppers following COVID-19 and war in Europe - And now I have implemented a version of my private app with Vaadin instead of Thymeleaf, and I do like it a lot more
Current features include:
A Vaadin dashboard showing active items, expired items, items expiring soon, storage boxes, and pending notifications
CRUD views for item types, item instances, storage boxes, and notifications
Image upload and preview support for item types
JSON import/export for item types, including image data
Expiry warning and expired-item notification records
PostgreSQL persistence with Flyway migrations
Docker Compose setup for the app, PostgreSQL, and pgAdmin
Optional AES-encrypted PostgreSQL backups with retention cleanup
One thing I really enjoyed about building this with Vaadin is that the UI, validation, domain model, and backend services all stay in Java. Components like Grid, Dialog, Binder, Upload, SideNav, and badges made it quick to build a proper
admin-style application without switching mental models between frontend and backend code.
Tech stack:
Java 25
Spring Boot 4
Vaadin 25
PostgreSQL 16
Flyway
Spring Data JPA
Gradle
Docker Compose
The app is still evolving. Next steps include finishing Home Assistant/email notifications, improving NAS deployment support, and re-enabling security before exposing it outside a trusted local network.
I (or rather claude code) build a Ukrainian-themed T-shirt shop on Vaadin 25 and Quarkus 3, using Java 25 and PostgreSQL.
It covers
the full shopping flow — customers can browse a catalog of 18 products, filter by theme, view details, add items to a
session cart, and check out. Order history is accessible by email lookup. An admin panel offers full product
management including image uploads, bulk stock adjustments, and a sales report.
On the technical side, all UI is built with Vaadin Flow server-side views. The catalog and admin grid make heavy use
of Vaadin’s Grid component with sortable columns, multi-select, and inline action buttons. Product forms live in
Dialog components with ConfirmDialog for destructive actions. Images are uploaded via Vaadin’s Upload component and
served back to the browser using DownloadHandler — Vaadin’s streaming API for binary data — pulling BLOB data lazily
from the database. The entire UI is styled with the Vaadin Aura theme and its design token system, avoiding any
hard-coded pixel values. Views are CDI beans wired together with Inject and PostConstruct, and navigation uses
Route with RouteParameters for parameterized URLs. Flyway handles all database migrations, including seed data and
product images. Tests are organized per use case using Vaadin’s Browserless Test library against an in-memory H2
database.
A Python script (generate_images.py) connects to a local ComfyUI instance and generates product images from a
dedicated per-product prompt column in the database. The generated images are base64-encoded and written directly into
a Flyway SQL migration as UPDATE statements, so they are applied automatically on the next app start.
Here’s a Screenshot from the App deployed locally (not allowed to post more):
I would like to participate in the competition as well.
Inspired by the presentation “Chaos Meets Code: Fractals as a Playground for Modern Java Features” at JAX 2026, I developed a Spring Boot 4 / Vaadin 25 application to calculate and visualize the “Apfelmännchen” (the German term for the Mandelbrot set).
The application allows fast and smooth zooming using the mouse wheel, and also supports panning to explore different regions of the fractal. In addition, generated images can be saved for later use.
In contrast to typical Vaadin applications, I am using the image component to display pre-rendered PNGs. From my perspective, this highlights a gap in Vaadin, as a native canvas (or similar drawing component) would be highly beneficial for such use cases.
I don’t know about the rest of you, but the email I received at the end of the Spring IO conference this year said that submissions deadline was 14th of May and that winners would be notified at the end of June.
I assume that I haven’t won, which is fine, but I would have appreciated a bit more communication from the Vaadin team.
How about an announcement or at least a comment in here stating who has won, or bare minimum, that a winner has been found and contacted?
I have tried writing an email replying to @Sami , but I got no response, so I’m trying here instead :)
A huge thank you to everyone who participated in our Competition for Vaadin expo booth visitors 2026!
It was fantastic to see so many creative and diverse applications built with Vaadin. We truly enjoyed exploring your ideas and the different ways you used Vaadin to solve real-world problems.
We have already contacted the winner and will publish a summary of an interview that we had with him!
Thank you again to everyone who visited us at our conference booths last spring and took part in the competition. We hope you enjoyed the challenge, and we look forward to seeing you again at Vaadin booth!