Stars
Forks
Watchers
Developer links
Shlink
With over 5,100 GitHub stars and eight years of active development since 2016, Shlink has become the definitive self-hosted URL shortener for teams that need unlimited links, full visitor analytics, and complete data ownership without per-link pricing or monthly caps. The PHP backend built on the Mezzio framework with Doctrine ORM serves redirects through any number of custom domains on a single instance, generating unique short codes or accepting custom slugs including multi-segment paths and emoji characters. Every click is tracked with anonymized visitor data including geolocation by country, city, and coordinates, browser and operating system identification, referrer source, and device type classification, all stored in your choice of MySQL, MariaDB, PostgreSQL, Microsoft SQL Server, or SQLite. Dynamic redirect rules route visitors to different destinations based on geolocation, device type, or browser language, enabling targeted campaigns from a single short URL. The REST API exposes every operation with OpenAPI documentation and an interactive sandbox at api-spec.shlink.io, while the CLI provides equivalent functionality for scripting and automation. The official progressive web app at app.shlink.io manages multiple Shlink instances from a single interface with URL creation, tag management, and detailed visit charts. Real-time event integration supports both Mercure and RabbitMQ for webhook-style notifications on new visits. Third-party imports migrate existing short URLs from Bitly and YOURLS with visit history preserved. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. MIT licensed.
Benefits
- Unlimited Links and Domains
- Create unlimited short URLs across multiple custom domains on a single instance with no per-link pricing, monthly caps, or vendor lock-in restrictions.
- Detailed Visitor Analytics
- Track every click with geolocation, browser identification, device detection, referrer source, and bot filtering — all with GDPR-compliant IP anonymization by default.
- Full API and CLI
- Comprehensive REST API with OpenAPI documentation and interactive sandbox plus a CLI that exposes every operation for automation, scripting, and integration.
- Dynamic Campaign Redirects
- Route visitors to different destinations from a single short URL based on geolocation, device type, or browser language for targeted marketing campaigns.
Features
- Multi-Domain URL Shortening
- Serve shortened URLs under multiple custom domains with unique or custom slugs including multi-segment paths, emoji support, and configurable trailing slash behavior.
- Geolocation Visit Tracking
- Automatic visitor geolocation by country, city, and coordinates using GeoLite2 with browser, OS, device, and referrer analytics stored in your database.
- REST API with Sandbox
- OpenAPI-documented REST API at api-spec.shlink.io with interactive testing, API key roles for domain and short URL access control restrictions.
- Progressive Web App Client
- Official PWA at app.shlink.io manages multiple Shlink instances with URL creation, tag filtering, visit charts, and domain configuration.
- Real-Time Event Integration
- Mercure and RabbitMQ integration delivers real-time notifications for new visits, enabling webhook-style event processing and external system triggers.