Linky
URL shortener built with Spring Boot and Vue — create short links with one click, redirects with a 301.
Overview
Linky is a classic URL shortener: paste a long URL, get a short code, share it. Simple by design — but built with a production-style full stack: Spring Boot API, PostgreSQL storage, and a Vue 3 frontend, all orchestrated by Docker Compose.


Features
POST /links(text/plain body) — creates a short link, returnsshortCodeandshortLink.GET /links/{shortCode}— 301 redirect to the original URL.- Frontend form with copy-to-clipboard UX, styled with Tailwind CSS.
- PostgreSQL persistence with Flyway-style JPA setup (Spring Data JPA).
Tech stack
- Backend: Java 25, Spring Boot 3.5, Spring Data JPA, springdoc-openapi (Swagger)
- Frontend: Vue 3, TypeScript, Vite, Tailwind CSS, Pinia, Vue Router
- Infra: Docker Compose (postgres:18 + backend + frontend behind nginx)
Running locally
docker compose up --build
# frontend at http://localhost, API + Swagger at http://localhost:8080/swagger-ui.html
Why this project?
The project pairs two ecosystems (Java and Vue) behind one compose file, and the API is small enough to be documented fully by Swagger — a clean example of full-stack delivery. It’s also being reworked as an architecture/load-testing challenge.