Home · About

About TinyLink

TinyLink is a link shortener with click analytics, QR codes, bio pages and a REST API. This site runs one instance of it; the software itself is open source, so you can also run your own.

Why it exists

This started as a small PHP link shortener built a couple of years ago. It worked, but it had the problems that small projects tend to have: passwords stored in plain text, a statistics table with no indexes, dates kept as free-form strings, and a redirect handler that printed JSON before sending its Location header — so the redirect never actually fired.

Rather than patch it, the whole thing was rebuilt around prepared statements, a single front controller and a proper schema. The idea stayed the same; the execution did not.

What makes it different

Most hosted shorteners put your links on their domain. If they change pricing, get acquired, or disappear, every link you ever shared breaks. TinyLink does not fix that by magic — links you create here still live on https://r3x.site. What it does is remove the reason you would ever be locked in:

That last point is the honest version of "you own your links": not that this site magically gives you a domain, but that nothing stops you from taking the whole thing and running it yourself.

How it is built

PHP 8.1 or newer with PDO, and either SQLite or MySQL. There is no Composer, no Node, no build step and no background daemon — you upload the folder and it runs. That constraint is deliberate: it keeps the app deployable on the cheapest hosting there is, and it keeps the number of things that can break small.

Even the QR encoder is written from scratch rather than pulled in as a dependency. It implements ISO/IEC 18004 byte mode with error-correction level M, and its output was verified module-for-module against two independent reference implementations.

Every part of this is boring on purpose. Boring software is software that still works in three years without being touched.

Privacy stance

Analytics answer "how many people clicked, roughly from where, on what kind of device". They are not designed to identify anybody. There is no cross-site tracking, no advertising network, no fingerprinting, and no data sold to anyone — partly on principle, and partly because there is nobody to sell it to. The privacy policy spells out exactly what is stored.

Get in touch

Found a bug, or want a feature? The contact page has the details. If you are looking for the technical reference instead, the API documentation covers every endpoint.