About
Shortly started as a backend learning project while I was exploring Flask and database design.
Why I built it
I mainly built it to better understand routing, analytics, rate limiting, and production-style backend structure. It was a practical way to move beyond basic tutorials and build something functional that I could actually use.
Tech stack
- Backend: Python, Flask, Flask-Limiter
- Database: MongoDB
- Frontend: Vanilla JS, custom CSS
- Utils: Segno for QR codes
What I learned
This project helped me learn frontend/backend integration and deployment workflows. I got comfortable handling MongoDB document schemas, setting up basic API endpoints, and managing custom link expirations programmatically.
Current status
Still improving parts of the UI and analytics system. It's running stably, and expired links are automatically cleaned up via MongoDB TTL indexes. I plan to keep refining the data visualization and overall user experience.