Getting found · Edition No. 10 · 4 Sep 2026

shlinkio/shlink

The short link in the YouTube description, and the only honest answer to 'did that video do anything?'

← Getting foundRead the whole edition →

5.3k stars · MIT · v5.1.6 (2026-09-06) · Track this in Scout

The short link in the YouTube description, and the only honest answer to 'did that video do anything?'

▶Repo detailsthe review · specs · pros & cons

What it is

A self-hosted URL shortener running on your own domain, with a REST API, per-link visit statistics, tags, UTM handling and built-in QR-code generation. One PHP container plus a database, and a separate web UI if you want one.

What it is good for. A video channel and the website it points at usually have no measurable relationship. You publish a tutorial, some people watch it, some number of visits arrive, and there is no way to connect the two. Dub (Ed.1 #2) was the answer offered on 21 August, and self-hosting a large Next.js application is not the shape of thing most people start on a Tuesday. Shlink is the shape they do. go.yourdomain/ru-map-01 in the description of every video, a QR code on the end card, and a stats endpoint that tells you which videos send people and which merely get watched. That is the number that turns a channel from a hobby into a channel with a job.

Stars5.3k
LicenceMIT
Latestv5.1.6 (2026-09-06)checked 7 Sep 2026
Written inPHP
NeedsDocker, PostgreSQL and MySQL
Setup effort
3 / 5
Payoff
4 / 5
Good
  • MIT and mature at v5.x, with a real release cadence — the least risky attribution tool in the ledger.
  • REST API means n8n or Claude Code can mint a tagged link per video automatically, so you never hand-make one.
  • QR codes are built in, which matters for end cards and for slides in a Slidev deck (Ed.5 #4).
Watch for
  • PHP/Symfony — a stack many teams do not otherwise run, so its upgrades are a separate chore from everything else on the machine.
  • The admin UI is a second project (shlink-web-client) you also host; the core is API and CLI only.
  • A short-link domain needs its own DNS and TLS, and needs guarding — an open shortener gets abused and then blocklisted, which would take your links down mid-campaign.
Works well with

Pull visit data via the REST API into research.db beside the yt-dlp (Ed.6 #4) video metadata, and "video → clicks → signups" becomes a single SQL join.

Screenshots
shlinkio/shlink: GitHub preview cardshlinkio/shlink: Screenshot 1

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.