YOURLS vs Shlink vs Kutt — Best Open Source URL Shorteners Compared
URL shorteners are one of those tools everyone uses but almost nobody thinks about. Every link you share on social media, in a newsletter, or in a chat has probably been through one — yet the big commercial shorteners track your clicks, show you ads, and hold your links hostage on their servers. Self-hosting fixes all of that. You get your own branded short domain, full click analytics, and complete control over your data, all for free. In this guide I compare the three best open source options — YOURLS, Shlink and Kutt — so you can pick the right one for your setup.
YOURLS
YOURLS (Your Own URL Shortener) is the de facto standard self-hosted shortener. Written in PHP and distributed under the MIT licence, it has been around since 2009 and powers countless personal and business short-link setups. You can find it in our YOURLS directory listing.
The headline feature is how easy it is to run. Because it is plain PHP with a MySQL backend, YOURLS installs on virtually any shared hosting plan — upload the files, run the installer, done. It gives you custom short URLs, a developer API, and detailed statistics with historical click reports, referrer tracking and visitor geo-location. What really sets it apart, though, is the plugin architecture: dozens of community plugins add integrations, URL shortening rules, and admin features without touching the core code.
- REST API — create, expand and manage short URLs programmatically with a simple JSON API.
- Click statistics — historical reports, referrer tracking and visitor geo-location per link.
- Bookmarklet — shorten the page you are viewing with a single browser bookmark click.
- Plugin ecosystem — dozens of community plugins extend functionality without core hacks.
- Custom keywords — choose your own short codes or let YOURLS generate them.
- Multi-user — create user accounts so teams can manage links separately.
- Import & export — bulk import existing links and export your data at any time.
Setup difficulty is the lowest of the three — if you have ever installed WordPress, YOURLS will feel familiar. It suits personal users, marketers and anyone on shared hosting who wants a reliable shortener without Docker.
Shlink
Shlink is the modern, developer-focused option. Despite what some roundups claim, Shlink is built with PHP (not Go) — it is distributed under the MIT licence and powered by Mezzio, Doctrine and Symfony. What makes it different is the API-first design: every feature is exposed through a clean REST API, a CLI tool, and an official web client that works as a progressive web app. See the Shlink directory listing for the full feature set.
Shlink is the best choice when you want to integrate link creation into your own tooling. The REST API lets you shorten URLs from scripts, CI pipelines or other applications, and the CLI does the same from the terminal. There is also an official web client (a PWA) that can manage multiple Shlink instances from one interface — handy if you run shorteners for different domains or clients. Analytics are thorough: anonymised visit stats with geo-location, referrers, browsers and operating systems, plus support for sending visit events to Matomo.
- API-first — a well-documented REST API for creating, managing and tracking short URLs.
- CLI tool — shorten and manage links, list visits and configure domains from the terminal.
- Official web client — a polished PWA that manages one or many Shlink instances.
- Custom domains — serve short URLs under your own domains, with per-domain stats.
- Custom slugs — human-friendly short codes instead of random strings.
- QR codes — generate QR codes for every short URL out of the box.
- Matomo integration — forward visit data to Matomo for centralised analytics.
Setup is moderate: the recommended path is the Docker image, and you will want to pick a database (MySQL, MariaDB, PostgreSQL, SQLite or SQL Server are all supported). It is slightly more involved than YOURLS but still a single Docker Compose file away from running.
Kutt
Kutt is the sleek, user-friendly option. Written in Node.js (JavaScript) and released under the MIT licence, it powers the popular kutt.to service and is developed by The Devs community. If you want a shortener that looks and feels like a polished commercial SaaS product but runs entirely on your own server, this is it. Check the Kutt directory listing for more details.
Kutt’s standouts are its modern interface and its custom domain handling. You can add and remove custom domains for free, protect individual links with passwords, set expiry dates, and view detailed statistics per link. There is a clean REST API for programmatic access, and official Chrome and Firefox extensions for one-click shortening from the browser. The whole thing runs on Node.js with PostgreSQL and deploys cleanly with Docker.
- Custom domains — add and remove your own domains for short links, free.
- Detailed stats — views, referrers, browsers and countries per link.
- Password protection — lock individual links with a password.
- Expiry dates — set links to expire automatically.
- REST API — create, delete and manage URLs programmatically.
- Browser extensions — official Chrome and Firefox extensions for one-click shortening.
- Link descriptions — add notes so you can find and organise links later.
Setup is similar to Shlink — Docker Compose with a PostgreSQL database. The interface is the most attractive of the three, making Kutt a great pick for individuals or small teams who want a beautiful, feature-complete shortener without heavy administration.
Head-to-Head Comparison
Setup Complexity
- YOURLS: Easiest. Plain PHP + MySQL, installs on shared hosting, no Docker required.
- Shlink: Moderate. Docker image is the recommended path; pick from five supported databases.
- Kutt: Moderate. Docker Compose with PostgreSQL — clean but requires a container setup.
API & Automation
- YOURLS: Simple REST API — good for basic create/expand operations.
- Shlink: Best in class — full REST API plus a CLI tool for scripting and CI pipelines.
- Kutt: Clean REST API for create, delete and manage operations.
Analytics
- YOURLS: Click counts, referrer tracking and visitor geo-location.
- Shlink: Deepest — visits, geo, referrers, browsers and OS, plus Matomo export.
- Kutt: Solid — views, referrers, browsers and countries per link.
Custom Domains
- YOURLS: Works with any domain you point at it, no per-domain limit.
- Shlink: Multiple domains supported with per-domain statistics.
- Kutt: First-class custom domain management, added or removed for free.
Extensibility
- YOURLS: Largest ecosystem — dozens of community plugins.
- Shlink: Official SDKs for PHP and JS, plus third-party integrations.
- Kutt: Browser extensions and a public API; smaller plugin ecosystem.
Which One Should You Pick?
Choose YOURLS if: you want the simplest possible setup and do not want to touch Docker. If you already have shared hosting or a plain PHP/MySQL server, YOURLS is up and running in minutes, and its plugin ecosystem covers almost any extra feature you might want.
Choose Shlink if: you are a developer or a team that wants to automate link creation. The REST API and CLI make it the most scriptable shortener here, the web client is genuinely good, and the analytics depth (including Matomo export) is unmatched in this trio.
Choose Kutt if: you value a beautiful interface and first-class custom domain management. If you want a shortener that looks like a modern SaaS product — password-protected links, expiry dates, browser extensions — and you are happy running Docker, Kutt delivers the most polished experience.
The Bottom Line
All three are excellent, free and open source, and all three keep your links and click data on your own server. YOURLS is the pragmatic pick for individuals and anyone on shared hosting. Shlink is the winner for developers who want API and CLI automation plus the deepest analytics. And Kutt is the one to choose when interface polish and custom domain management matter most. Whichever you pick, you are done with commercial shorteners tracking your traffic.
Download them at yourls.org, shlink.io or kutt.to — free, no subscriptions, no account required.
Looking for more self-hosted web tools? Browse our URL Shorteners category or the full free and open source directory.