Inspiration We wanted to treat a simple URL shortener like a real production service instead of a toy CRUD app. The hackathon format pushed us to think beyond features and focus on what actually matters in production: reliability, scalability, observability, incident response, and clear operational documentation.
What it does fifa-url-shortener lets users create and manage short links, redirect through stable short codes, and track activity through event logging. On top of that core functionality, the project now includes structured logging, Prometheus metrics, Grafana dashboards, alerting to Discord, Kubernetes deployment with TLS ingress, and operator-facing documentation for troubleshooting and incident response.
How we built it We built the application in Flask with a PostgreSQL-backed data layer and added Redis support for caching hot paths. The service is containerized and deployed to Kubernetes, fronted by ingress with HTTPS. For observability, we exposed Prometheus metrics, installed the kube-prometheus-stack, built a Grafana dashboard around the golden signals, and configured alert routing through Grafana contact points and notification policies. We also added k6 load testing, improved automated test coverage, and wrote supporting docs like the runbook, architecture guide, bottleneck report, capacity plan, and troubleshooting reference.
Challenges we ran into A lot of the hard parts were operational rather than application-level. We ran into Grafana state disappearing because it was initially using ephemeral storage, which forced us to understand how persistence and provisioning interacted. We also had to debug ingress and TLS setup, deal with flaky Kubernetes API EOF errors during cluster operations, and sort out the difference between Prometheus-managed rules and Grafana-managed alerting. On the app side, one of the hidden URL challenges came down to subtle status-code behavior that was easy to miss until we traced the exact expectations. Accomplishments that we're proud of We’re proud that the project ended up feeling like an actual operable service rather than just a feature demo. We completed Bronze, Silver, and Gold across reliability, scalability, and incident response, got test coverage comfortably above the threshold, deployed the app publicly over HTTPS, built useful dashboards and alerting, and documented the system in a way that another engineer could realistically pick up and run with.
What we learned We learned how much production engineering is about feedback loops: metrics, logs, alerts, and documentation all support each other. We also got hands-on experience with Kubernetes operations, Grafana and Prometheus integration, alert routing, persistent storage, and the tradeoffs between infrastructure-as-code and UI-managed operational tooling. A big lesson was that small details like status codes, mount configuration, and alert labels can have outsized effects on whether a system is actually reliable.
What's next for fifa-url-shortner The next steps would be to harden the setup further and reduce manual operations. That includes making the full monitoring bootstrap reproducible from code, refining alerting and notification templates, improving load-test performance at higher concurrency, and tightening authentication and access control around observability endpoints. From there, we’d want to keep pushing toward a more fully automated and production-ready platform around the service.

Log in or sign up for Devpost to join the conversation.