Open-source URL shorteners, compared honestly.
If you want a URL shortener you run yourself and never pay for, there are good free options. Here are the five people actually use, what each is good at, and the catch with each. Kortli is not one of them. It is a paid product built on one of them, and we say exactly where it fits at the end.
The five worth knowing
All five are free to download and run on your own server. They differ in the licence, in what they are written in, and above all in how much work they leave to you.
| Licence | Built with | Best at | The catch | |
|---|---|---|---|---|
| YOURLS | MIT | PHP and MySQL | The longest-running option, with a large plugin library for anything it lacks. Runs almost anywhere PHP does. | Built for one user. The admin screens feel their age, and the extras come from plugins of mixed quality. |
| Shlink | MIT | PHP, usually in Docker | A clean REST API and command line, several domains, tags, and rules that send different visitors to different places. | The web interface is a separate app. No password-protected links, no A/B tests, no styled QR codes. |
| Kutt | MIT | Node.js | A modern, tidy interface, custom domains and private link statistics. | Fewer power features than Shlink or YOURLS. |
| Dub | AGPLv3, with some parts under a commercial licence | TypeScript (Next.js) | The most polished of the five: the same code that runs the dub.co service. | Self-hosting is not one server. Its guide asks for Vercel, PlanetScale, Upstash, Tinybird and more. |
| Polr | GPL-2.0 | PHP | Simple and lightweight. | Last updated in May 2024. Treat it as unmaintained. |
Which one we would pick
- A personal shortener on ordinary web hosting: YOURLS. Nothing else runs in as many places.
- A team, several domains, or an API-first setup on a server with Docker: Shlink. It is the most solid engine of the five, which is why we built on it.
- Something that looks modern and does not need much else: Kutt.
- Dub’s polish, and the time to wire up its services: Dub.
What open source gives you, and what it does not
It gives you software that costs nothing, that anyone can inspect, and that nobody can switch off. Your links live on your server and your domain, so no company going under or raising its prices can break them.
What it does not give you is a support desk. Updates, backups and the evening something breaks are yours. You still pay for a server and a domain. And the features businesses tend to ask for, such as password-protected links and split testing, are usually the ones missing. For the wider picture, see what a self-hosted URL shortener involves.
Where Kortli fits
Kortli is not open source. It is Shlink underneath, with the parts Shlink lacks built on top: password-protected links, A/B testing across up to four destinations, styled QR codes as vector artwork, a full interface, an MCP server for AI assistants, a one-command install, nightly backups and a person to ask. You get all of the source code for one payment of $199, under a commercial licence rather than an open-source one.
If one of the free options above covers what you need, use it. That is a fine answer, and we would rather you heard it from us.
Questions people ask
Is Kortli open source?
No. You get the complete source code when you buy, and you can read and change every file, but it comes under a commercial licence, not an open-source one. The engine underneath, Shlink, is open source under the MIT licence.
What is the best open-source URL shortener?
It depends where it will run. For one person on ordinary PHP hosting, YOURLS. For a team, several domains or an API-first setup, Shlink. For a modern-looking interface and not much else, Kutt.
Can I move my links from YOURLS or Kutt?
Yes. Shlink, which Kortli runs on, can import from YOURLS (after installing a small plugin in YOURLS), Kutt, Bitly, another Shlink install or a CSV file. If you would like a hand with it, that is part of the installation service.
Is a free self-hosted URL shortener really free?
The software is. You still pay for a server, though a $6-a-month box is plenty for most people, and for a domain. And you spend your own time on updates, backups and fixing things when they break.
The free engine, finished.
One payment. Full source code. Your server, your data. Also weighing a hosted service? See our Bitly alternative page.