What it does: - Bulk API: shorten up to 100 URLs in one POST request - QR code generation: PNG + SVG, customizable sizes (100-2048px) - Click analytics: GeoIP (MaxMind) for country/city, device classification, browser detection, UTM parameter preservation - Custom short codes: 4-20 alphanumeric characters - Hash-based deduplication: same URL = same short code, deterministic - Redis caching layer for sub-millisecond redirect lookups - URL sanitization for malformed Unicode characters
Why I built it: Most URL shorteners either charge for analytics and QR codes, or limit their free tier so aggressively that it's unusable for real work. I wanted something API-first, with real analytics, that I could use in my own projects without hitting paywalls.
Tech stack: Spring Boot 3.4, MySQL, Redis (Jedis), MaxMind GeoIP2, ZXing for QR codes.
Try it: https://u2m.io
Happy to answer technical questions about the architecture or design decisions.