Short links that stay fixed

Put your links on your own domain, then change where they go whenever you like. The poster, the deck and the email you already sent keep working.

Free for 25 links. No credit card, no trial timer.

fixedlink.dev/dashboard/links/new

Unfurls the way you meant it to, wherever it lands

  • LinkedIn
  • X
  • Facebook
  • WhatsApp
  • Telegram
  • Reddit
  • Email

Every link carries its own title, description and image, so a paste into a channel shows what you chose - not whatever the destination page happened to have in its head tag. See it being written.

#campaigns— Slack

Dana10:24

fixedl.ink/spring-sale

The link unfurled in a Slack message: site name, title, description and cover image
What everyone else in the channel sees. You wrote all three lines and the image.

The whole idea

The link is what you print. The destination is what you change.

A short link is one level of indirection, and that level is the entire product. Everything below is what becomes possible once you have it.

A poster, a deck and an email all point at one short link, and that link is repointed from an old destination to a new one without any of them changing.The printed posterLast quarter’s deckAn email you sentgo.acme.com/springNEVER CHANGESacme.com/spring-24WASacme.com/summerIS, SINCE TUESDAY

Repointing

Change where it goes. Not what it is.

The short URL is the identifier. The destination is a field on it. Editing that field is the entire operation, and it takes effect on the next click - including clicks from things you can no longer edit, like a printed insert or an email already sent.

Immediately
The next click goes to the new place. No propagation, no cache to clear.
Everywhere
Every copy of that link, wherever it was pasted or printed.
Reversibly
It is a field. Put the old destination back the same way.
Without a redirect chain
One hop, to wherever the link currently points.
fixedlink.dev/dashboard/links/atlas-launch

Routing rules

One link. Different answers, decided at click time.

A QR code on a conference banner gets scanned for months after the show. A rule sends January's scans to the recap instead of a dead promotion, and nobody reprints anything.

Test a visitor before you save. Pick a country, a device and a date, and the panel tells you where they would land and which rule sent them there.

How a click is resolved →

By where
Country lists, for pricing pages and regional stores.
By what
Device, OS, browser and language, for app downloads.
By when
Date windows, business hours, days of the week.
In order
Rules run top to bottom, first match wins, and nothing matching is fine.
fixedlink.dev/dashboard/links/booth-qr/routing

Analytics

Four answers, not forty charts.

Where the clicks came from, on what, and whether the number is going up. That is the set of questions a link can actually answer, and a fifth panel would only make the four harder to find.

Visitors are counted from a salted hash of the address rather than the address itself, so “unique visitors” is a number without also being a record of who.

Who showed up
Clicks and unique visitors, per link or across the account.
From where
Countries, and referrers grouped by host so t.co stays one row.
On what
Device, browser and operating system, parsed at click time.
For how long
a year of history on Pro.
fixedlink.dev/dashboard/analytics
The analytics page: clicks over time, top countries, top referrers, devices and browsers

Custom domains

Your name on the envelope.

A link on someone else's shortener asks the person clicking it to trust a domain they have never seen. On yours, the first thing they read is your name.

What connecting one looks like →

Two records
A CNAME and a TXT at your DNS provider. That is the setup.
Certificates
Issued and renewed for you. Nothing to remember in a year.
How many
5 on Pro, unlimited on Enterprise.
Or use ours
Links serve from fixedlink.dev until you connect one of your own.
fixedlink.dev/dashboard/domains
The domains page, with one domain live and another waiting on DNS verification

Social previews

The card is a field you type into.

A short link pasted into Slack, LinkedIn or iMessage unfurls with whatever the destination page happens to say in its head tag - which, for a PDF, a gated form or a single-page app, is usually nothing worth reading.

Write the card instead. It updates beside you as you type, using the same rules the crawler endpoint applies, so what you see is what gets served.

Per link
Title, description and image, overriding the destination’s own tags.
Per rule
A routing rule can carry its own preview, so one link can unfurl two ways.
Hosted by us
Uploaded images are cropped to 1.91:1 and served from this domain, so they cannot break when the destination changes.
Or switched off
Crawlers get the plain redirect, like everyone else.
fixedlink.dev/dashboard/links/webinar-sept/preview

Print and packaging

A QR code that survives a change of plan.

Every code encodes the short link. Six months and one rebrand later, the ten thousand cards still in the box go somewhere you chose this morning.

Follow one poster through six months →

SVG
Sharp at poster size, and at business-card size.
PNG
For pasting into whatever the printer asked for.
Points at the link
Never at the destination, which is what makes it repointable.
fixedlink.dev/dashboard/links/newsletter-08
The QR code panel, showing that the code points at the short link rather than the destination

For developers

Make the link in the deploy that needs it.

A REST API with an OpenAPI document, bearer tokens from the dashboard, and errors that name the limit you hit.

curl -X POST https://fixedlink.dev/api/v1/links \
  -H "Authorization: Bearer $FIXEDLINK_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "destination": "https://acme.com/launch",
    "slug": "spring",
    "domain": "go.acme.com",
    "tags": ["campaign", "q3"]
  }'
The same endpoints the app uses
Links, domains, routing rules and analytics. There is no second-class API.
Typed, from a spec
Generate a client from the OpenAPI document.
Included with Pro
Not a separate line on the invoice.
Read the API reference

Pricing

Free until you outgrow it. One price after that.

$25 a month for unlimited links, your own domains, routing rules, the API, and a year of history.

If you stop paying, every link you have made keeps redirecting. You just cannot create new ones until you are back under 25.