A self-hosted URL shortener built as a real product project: localized web app, dedicated API, Bun worker, Docker-based operations, and docs kept close to the code.
What exists today and why the browser stays same-origin while web, API, and worker remain decoupled.
Read the repository architecture docs →/api/docsSmall enough to understand end-to-end, explicit enough to run and document.
See the repository deployment and system docs →Schema, migrations, and reserved slugs live in shared packages instead of app-specific copies.
Redirect and domain logic are reused across web, API, and worker boundaries.
State lives close to contracts instead of being buried in framework adapters.
Redirects use hot-path cache reads before touching the database.
Rate limiting, locking, and negative-cache helpers are shared across services.
The redirect hot path stays in web, avoiding the previous internal API hop.
Health and readiness endpoints are part of the shipped surface.
Structured telemetry is shared across the monorepo services.
Performance validation lives in docs and tests instead of marketing-style claims.
Why the codebase looks like this today, not like a generic starter.
These cards summarize documented validation targets from the redirect baseline docs, not live public telemetry.
Documented target
Warm-cache goal from the redirect baseline runbook
Documented target
Upper bound tracked during load validation
Documented target
Expected after warm-up in k6 redirect checks
The README is the short repo entry point. The architecture docs in the repository go deeper, and /api/docs reflects the live API surface.