A pure-JDK URL shortener built as a learning vehicle for the Advent Calendar 2025 series. Every step is documented in a blog post — 14 parts covering everything from the route registry and persistence layer to Server-Sent Events for live click tracking and a Vaadin Flow UI.
What it covers
- No Spring, no JPA, no magic. Pure Core Java + Vaadin Flow.
- Per-step incremental builds. Each post in the series adds one feature you can run, break, and learn from in isolation.
- REST + UI in one binary. A REST endpoint creates short URLs; the Vaadin Flow admin UI lists clicks live via SSE.
- Production-style concerns covered too — auth, observability, persistence, rate-limiting — but always from the JDK side, not framework-side.
Why a separate project site?
The shortener has its own domain (url.svenruppert.com) because it doubles
as the live demo — every shortened link runs through this exact codebase.
Eat your own dogfood, etc.
The build details, architecture decisions and lessons-learned all live on the series page on this site.

