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)

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

Repo detailsthe review · specs · pros & cons · install

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.

Why it matters

Your YouTube channel and your website currently 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 it has sat untouched for two weeks, which is itself information: self-hosting a large Next.js application is not the shape of thing you will do on a Tuesday. Shlink is the shape you will. 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 the 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 you do not otherwise run, so its upgrades are a separate chore from everything else on the box.
  • 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.

How to get it

Docker on the Hetzner box behind its own short subdomain, pointed at a database.

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.