Short links you own. Numbers you can trust.
Vialb shortens links, makes QR codes and shows you who clicked, from where and when. All on a server you control.
- MIT licensed
- Visitor IPs never stored
- OpenAPI 3.1
- One docker compose up
From long URL to clear answers
Three steps, no tracking pixels, no third-party scripts on your links.
- 1
Paste a long link
Pick a custom code if you like, add an expiry, a visit limit or a password.
https://acme.dev/blog/introducing-acme-2?ref=navvialb.link/launch - 2
Share it anywhere
Post it, print it as a QR code or send it by email.
vialb.link/launch
Copied to clipboard
- 3
Learn what worked
See which channel, country and hour brought the clicks, and plan the next post.
- news.ycombinator.com46%
- x.com21%
- linkedin.com12%
Everything a link needs
The features of a paid link platform, in one small app you can read, change and host yourself.
Clicks, last 30 days
1,775
Analytics you can act on
Countries, devices, referrers, UTM campaigns and the hours people click. Computed in your own database.
QR codes in your colors
Download PNG or SVG for print, packaging or a table card. Every scan is counted.
Password required
Password protection
Gate a link behind a password, hashed with argon2id. Crawlers never see the destination.
Expiry and visit limits
Stop a link after a date or a number of visits. Limits are enforced atomically in the database.
Private by design
Link visitors are counted with a daily-salted hash. Their IP addresses are never written to disk.
# Create a short link
curl -X POST https://vialb.link/api/v1/links \
-H "Authorization: Bearer tw_••••" \
-d '{"url":"https://example.com"}'A real REST API
OpenAPI 3.1 with interactive docs, personal API keys and per-key rate limits.
Introducing Acme 2.0
Faster builds and a new CLI.
Link previews you control
Set the title, description and image people see when the link is shared in chat.
Also included
- TOTP two-factor sign-in
- Admin roles and bans
- Domain blocklist
- Safe Browsing checks
- CSV export
- Bulk actions
- Anonymous links you can claim later
- GitHub and Google sign-in
When people scan the menu
vialb.link/menu| Day | 00 | 1 | 2 | 03 | 4 | 5 | 06 | 7 | 8 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sun | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5 | 3 | 7 | 14 | 49 | 50 | 25 | 11 | 7 | 11 | 36 | 51 | 56 | 38 | 30 | 12 |
| Mon | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| Tue | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 3 | 3 | 18 | 25 | 37 | 20 | 11 | 2 | 5 | 27 | 50 | 54 | 52 | 30 | 9 |
| Wed | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 | 1 | 7 | 26 | 30 | 45 | 28 | 6 | 4 | 18 | 35 | 50 | 53 | 46 | 31 | 9 |
| Thu | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 4 | 4 | 16 | 34 | 35 | 25 | 11 | 9 | 7 | 26 | 48 | 44 | 40 | 25 | 8 |
| Fri | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 8 | 8 | 27 | 58 | 57 | 33 | 17 | 9 | 20 | 43 | 61 | 92 | 65 | 24 | 11 |
| Sat | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 5 | 3 | 7 | 12 | 64 | 62 | 30 | 9 | 5 | 19 | 39 | 74 | 87 | 65 | 46 | 15 |
Busiest time
Fri 20:00
Clicks peak on Fridays around 20:00 UTC. Post or send around then.
Direct traffic
91%
Most visits had no referrer. That is typical for QR codes, chat apps and email.
A restaurant learns it should staff up on Fridays.
One QR code on each table. A month later the owner knows the dinner rush starts at 19:00, that nine in ten guests scan with a phone, and that Mondays are dead. That is the kind of answer every link in Vialb gives you.
Your links. Your server. Your data.
One Docker Compose file starts the app and Postgres, with Redis as an option. Back it up like any other database and move it whenever you want.
$ git clone https://github.com/RaydanAridiCS/vialb.link.git && cd vialb.link$ cp .env.example .env# set SITE_URL and BETTER_AUTH_SECRET in .env$ docker compose up -d