Building Fleek — A Side Project URL Shortener
What I shipped when I wanted something small, fast, and fully mine.
I built Fleek because I wanted a side project where I owned everything end to end — not just a feature inside a larger product. The goal grew into a Bitly-style connections platform: short links, campaigns, QR codes, link-in-bio pages, and click analytics with redirects that stay fast under load. Stack: NestJS + Next.js monorepo, PostgreSQL, Redis for cached redirects, and Prisma.
The app shell covers overview, links (bulk import, filters, live SSE click counts), QR codes, pages, and campaigns. Integrations include API keys, webhooks with delivery logs, OAuth apps, custom domains, and optional AI URL screening. Production runs split across Vercel (web) and a GCP e2-micro VM (API + Postgres + Redis), with GitHub Actions building images to GHCR and deploying via Workload Identity Federation.
It's live at app.fleek.festinme.com. Side projects like this are useful for trying architecture and deploy choices without a release deadline attached — a complete product I can point to when someone asks if I can ship on my own.