Self-Hosted URL Shortener
To run your own link shortener on your domain, three options cover it. For a powerful, API-first shortener with analytics, Shlink. For the long-standing PHP classic, YOURLS. For a modern UI with user accounts, Kutt.
Updated 2026-06-03 · by Jonathan Caruso
Top pick
Shlink
Shlink is the most capable of the three: a full REST API, detailed visit analytics, support for multiple domains, and official web and mobile clients. If you want a shortener you can automate and measure, it is the strongest pick.
The options
Shlink
MIT, freeA powerful, API-first URL shortener with analytics and a web UI.
Visit Shlink site- Runs on
- Docker, ~1 GB RAM, needs a database.
- Pick it if
- You want a capable shortener with an API, stats, and multiple domains.
YOURLS
MIT, freeA long-standing, lightweight PHP URL shortener with plugins.
Visit YOURLS site- Runs on
- PHP and MySQL, very light.
- Pick it if
- You want a simple, proven shortener and like PHP plugins.
Kutt
MIT, freeA modern, open-source shortener with a clean UI and user accounts.
Visit Kutt site- Runs on
- Docker, needs Postgres and Redis.
- Pick it if
- You want a polished UI with accounts and link management.
How to choose
If you want power and automation, Shlink is the strongest: a full REST API, detailed visit analytics, multiple domains, and official mobile and web clients. YOURLS is the lightweight veteran, dead simple to run on basic PHP hosting with a big plugin library. Kutt sits in between with a modern UI and user accounts, at the cost of needing Postgres and Redis.
Whichever you pick, point a short domain or subdomain at it and put it behind a reverse proxy with HTTPS. For that, see Caddy vs Nginx.
The verdict
For a powerful self-hosted shortener with an API and analytics, run Shlink. Choose YOURLS for a simple, lightweight classic on basic PHP hosting, or Kutt for a modern UI with accounts. Point a short domain at whichever you pick, behind a reverse proxy; see Caddy vs Nginx.
FAQ
What is the best self-hosted URL shortener?
Shlink for power and API access, YOURLS for a simple lightweight classic, or Kutt for a modern UI with accounts. All run on your own domain so you own the links and the data.
Do I need my own domain?
Yes, that is the point. A self-hosted shortener uses your domain or a short subdomain, so links are branded and you own the redirects and the analytics.
Which is the lightest to run?
YOURLS, which runs on basic PHP and MySQL. Shlink and Kutt need a database and a bit more setup, but offer more features like APIs and richer analytics.