self-hosted ยท bun + vue ยท MIT

The hostname is the link.

No /slug. Point one wildcard record at the box, and every subdomain you create becomes a link โ€” then a landing page, a form, a booking calendar, or an API gateway, with the analytics behind it.

resolves โ†’
  • a 301 to your 90-slide deck
  • a landing page
  • a typed contact form
  • a booking calendar
  • a reverse-proxied API
  • a 301 to your 90-slide deck
links.jsr.bz/ โ€” Overview
shortlink dashboard โ€” workspace overview with click time-series, breakdowns, and a live activity feed
one host, your call

Pick what each subdomain does.

A link isn't only a redirect. Flip features on per host โ€” the same wildcard cert, the same dashboard, the same analytics underneath.

go.jsr.bz
redirect
301/302 with rules, A/B, expiry, geo & UTM.
launch.jsr.bz
page
Markdown landing page, themed, with OG tags.
notes.jsr.bz
blog
Paginated posts, tags, RSS, scheduling.
hello.jsr.bz
form
Rating, file upload, logic, multi-step; redirect & CSV.
book.jsr.bz
booking
Durations, per-day caps, pay-to-book, video rooms.
me.jsr.bz
link-in-bio
Avatar, socials, link blocks, embeds, tips.
api.jsr.bz
gateway
Reverse proxy with headers, rate limit, cache.
what's inside

A platform, not a redirect table.

One wildcard A-record resolves every link, each with its own HTTP-01 cert. Raw IPs are never stored โ€” only salted hashes.

Composable

A host, your way

Each subdomain redirects, or serves a page, blog, Typeform-class form, poll, booking scheduler, link-in-bio profile, static site, or reverse proxy.

Analytics

Conversion-grade

Geo, referrer, device/browser/OS, UTM, bot filtering โ€” time-series, breakdowns, conversion rate, plus PostHog-style retention cohorts & user paths.

Pipelines

Funnels & automations

Build multi-step funnels and fire tag / event / webhook / email actions when visitors convert.

Gateway

Proxy + API gateway

Reverse-proxy a backend with custom headers, per-IP rate limits, and edge caching โ€” SSRF-guarded.

Growth

Retargeting & deep links

Fire Meta / Google / TikTok / LinkedIn pixels on click and deep-link into native apps with store fallback.

Embeds

Drop-in widgets

Buttons, cards, badges, and inline / floating / modal / drawer iframes โ€” one script tag, anywhere.

API

REST, keys & webhooks

Scoped API keys with rate limits, an OpenAPI spec, and HMAC-SHA256-signed webhooks with a delivery log.

Platform

Workspaces & commerce

Multi-user workspaces with roles, TOTP 2FA, audit log, Stripe Checkout links, a status page, and GDPR erase.

Safety

Privacy by default

Salted-hash IPs, Safe Browsing destination checks, anomaly alerts, and uptime monitoring.

how it compares

Matches the shorteners, then keeps going.

The hosted shorteners nail the table-stakes. shortlink matches them โ€” then differs on the two axes they don't compete on: you host it, and a link is a destination you build, not just a redirect.

shortlink Bitly Dub Rebrandly Short.io
Self-hosted ยท own your data โœ“ โœ— โ— โœ— โœ—
Link is the subdomain (no /slug) โœ“ โœ— โœ— โœ— โœ—
Domains ยท QR ยท UTM ยท API ยท webhooks โœ“ โ— โœ“ โœ“ โœ“
Geo / device targeting ยท AยทB split โœ“ โ— โœ“ โ— โ—
Landing pages / multi-page sites โœ“ โœ— โœ— โœ— โœ—
Forms ยท polls ยท booking scheduler โœ“ โœ— โœ— โœ— โœ—
Blog / CMS ยท embeddable widgets โœ“ โœ— โœ— โœ— โœ—
Funnels + event automations โœ“ โ— โœ— โœ— โœ—
Pricing free $35/mo usage $24/mo $19/mo
โœ“ built-in ยท โ— partial / higher tier / OSS-only ยท โœ— not offered. Pricing as published mid-2026.
the full sheet

Everything in the box.

No tiers, no add-ons โ€” one self-hosted binary. Every capability, grouped.

Links & routing

  • Subdomain links across multiple zones
  • Own HTTP-01 cert per host + bring-your-own domains (DNS โ†’ cert โ†’ live)
  • 301 / 302 with redirect-type control
  • UTM builder (source/medium/campaign/term/content)
  • Branded QR codes (custom colors) + bulk QR sheet
  • AยทB weighted rotation & geo / device targeting
  • Expiry, click limits, password & scheduled activation
  • Tags + search, CSV import / export
  • OG / Twitter cards to crawlers ยท Safe Browsing checks

Analytics

  • Clicks + unique visitors, bot filtering
  • Geo, referrer, device / browser / OS breakdowns
  • Period-over-period trends & time-of-day heatmap
  • New vs returning visitors
  • Per-link & campaign rollups
  • Conversion rate + revenue tracking
  • Multi-touch attribution โ€” first / last / linear
  • Anomaly alerts on click spikes & drops
  • Live SSE feed ยท public shareable stats ยท CSV export

Composable hosts

  • Redirect โ€” the default
  • Page โ€” themed Markdown landing page
  • Blog โ€” index, tags, RSS, scheduled posts
  • Form โ€” fields, inbox, notify, autoresponder, CSV, honeypot
  • Poll โ€” single / multi-choice, close date, reveal rules
  • Booking โ€” availability, ICS, reminders, video, follow-up
  • Site โ€” multi-page HTML/CSS/JS in a built-in editor (or Garage / S3)
  • Reverse proxy โ€” keep the bar on your subdomain
  • Embeds โ€” button / card / badge + inline / float / modal / drawer

Growth & pipelines

  • Named events from any page (/api/event)
  • Funnels with visitor-level drop-off
  • Automations โ€” tag / event / webhook / email + conditions
  • API gateway โ€” headers, rate limit, response cache
  • Retargeting pixels โ€” Meta, Google, TikTok, LinkedIn, X, Pinterest, Reddit
  • App deep links โ€” open app, fall back to store
  • Stripe Checkout links (optional)
  • Link-in-bio page per user

Platform & team

  • Multi-user workspaces with member roles (editor / viewer)
  • 2FA (TOTP) + recovery codes ยท audit log
  • REST API with OpenAPI spec
  • Scoped API keys (rate limits) + quick-add bookmarklet
  • Signed webhooks โ€” HMAC, retries, delivery log
  • Chat notifications โ€” Matrix, Slack, Discord
  • Email digests โ€” daily / weekly
  • Status page from uptime monitors

Privacy & safety

  • Raw IPs never stored โ€” salted hashes only
  • GDPR per-visitor data export & erase
  • Per-IP rate limiting on public endpoints
  • SSRF guard on proxy & calendar fetches
  • Safe Browsing destination checks
  • Optional data retention auto-purge
  • Honeypot spam filtering on forms
  • Single self-hosted binary โ€” your data, your box
a look inside

The dashboard, end to end.

Real screenshots โ€” every link, its analytics, the funnel it feeds, and the form behind it.

get started

Build it, run it.

Needs Bun. Point a wildcard DNS record at the box and add your zones โ€” every link lives under one of them.

# clone, build the SPA, run
$ git clone https://github.com/oabdrabo/shortlink && cd shortlink
$ bun install && bun run build:ui
$ ADMIN_PASSWORD=dev ZONES=pyxis3.ai bun run dev