Skip to content

Short Links

A short URL is a promise you have to keep

People screenshot links, print them on packaging and paste them into decks you will never see again. So the short URL stays fixed and everything behind it — destination, rules, expiry — stays editable.

  • paddek.com/summer-saleshop.example.com/collections/summer

    One slug printed everywhere. Point it at a new collection next season and every printed copy follows.

  • go.example.com/pricingexample.com/pricing?ref=sales-deck

    Issued on a domain you own and verified, so the link carries your brand instead of ours.

  • paddek.com/appapps.apple.com/app/id000000000

    With a device rule attached: iOS goes to the App Store, Android to Google Play, everything else to your website.

Naming

Custom slugs and branded domains

The part after the slash is yours to choose, and so is the part before it.

Custom slugs

Slugs accept letters, numbers, hyphens and underscores, and must start and end with a letter or number. They are checked for uniqueness per domain, so the same slug can exist on paddek.com and on your own domain without colliding. Leave the field empty and a short random slug is generated.

A reserved list keeps product routes such as /pricing and /login from being claimed, which is what stops a customer link from shadowing a page on the site.

Branded domains

Add a domain or subdomain you control, verify it with a TXT record or a CNAME to a target under cname.paddek.com issued for that domain alone, and issue links on it. The dashboard shows the exact DNS values and re-checks them on demand.

Customer domains serve links and Bio Pages only. The dashboard and admin area are never served on your brand, so a verified domain cannot become a way into the product itself.

Editing

Change the destination, keep the URL

This is the reason short links exist as a product rather than a script.

Editing a destination rewrites where the link points, not the link itself. The short URL, its QR code and its analytics history all carry on unchanged, and the resolver cache is invalidated on write so the next visitor gets the new destination rather than a stale one.

Stays the same
The short URL, the printed QR code, every click already recorded, the folder and tags, and the link's id in the API.
Changes immediately
The destination, the redirect type, UTM parameters, targeting rules, expiry and the click limit.
Gets recorded
Who changed what and when, in the account activity log — so a redirect that surprises someone has an answer.

Redirects

Pick the status code deliberately

Most shorteners hard-code one. The status code affects caching, SEO and whether a POST survives, so it is a per-link setting.

  • 302

    Found — temporary

    The default. Browsers do not cache it, so a destination change takes effect immediately for everyone, including people who clicked the link yesterday.

  • 301

    Moved Permanently

    Passes ranking signals and is aggressively cached by browsers. Use it when the destination is genuinely permanent — a cached 301 can outlive your ability to change it.

  • 307

    Temporary Redirect

    Like 302 but the request method and body are preserved, which matters when the short link is the target of a POST.

  • 308

    Permanent Redirect

    The permanent counterpart of 307. Method-preserving and cached.

Attribution

UTM parameters, set once

Store the five UTM fields on the link instead of pasting them into a destination you may later change.

The builder takes utm_source, utm_medium, utm_campaign, utm_term and utm_content. They are merged into the destination at redirect time, so a destination that already has a query string keeps it, and a targeting rule that sends someone somewhere else still carries the campaign tags.

A utm_ parameter on the short URL itself fills in any field the link leaves empty — it is recorded against the click and forwarded to the destination — so handing partners ?utm_source=partner-a reports them apart without a link each. Where both carry a value the link’s own wins: a visitor cannot overwrite the owner’s attribution.

Resolved destination

paddek.com/summer-sale
  ↳ https://shop.example.com/collections/summer
      ?utm_source=instagram
      &utm_medium=social
      &utm_campaign=summer-sale

Targeting

One link, several destinations

Rules are evaluated in the order you arrange them and the first match wins. Anyone who matches nothing gets the default destination.

Country

Visitors from DE and AT go to the German storefront.

Device

Mobile and tablet go to the app install page; desktop to the web app.

Operating system

iOS to the App Store, Android to Google Play.

Language

An Accept-Language starting with fr goes to the French landing page.

Referrer

Traffic arriving from a partner site lands on a co-branded page.

Time window

During the sale window the link opens the sale page, then reverts.

Country, region and city come from the edge that fronts the app. When the request carries no geo headers the fields stay empty and a country rule simply does not match — nothing is guessed.

Access

Passwords, expiry and click limits

Three ways to make a public URL less than fully public.

Password

The visitor sees a password screen before the redirect happens.

The password is hashed with bcrypt, never stored in plaintext, and never exposed by the API. A correct entry sets a short-lived cookie for that link only, and attempts are rate limited.

Expiry

The link stops working at a date and time you choose.

Choose what happens afterwards: return 404, show a message you write, or redirect somewhere else — an archive page, the new campaign, your homepage.

Click limit

The link disables itself once it has been used a set number of times.

Useful for limited offers and one-time handovers. When the limit is reached the link is switched off and later visitors get the disabled page rather than the destination.

Preview

An interstitial showing the destination before the visitor continues.

Turn it on for links you post publicly, where showing people exactly where they are going is worth the extra tap.

Offline

A QR code for every link

Generated from the short URL, so the code keeps working after you change the destination.

Customisation

  • Foreground and background colours as hex values.
  • Size from 128 to 2048 pixels, with a configurable quiet-zone margin.
  • Error correction L, M, Q or H — pick H when the code prints on a surface that scuffs, or small enough that a damaged module matters.
  • PNG and SVG download.

Measured separately

A scan is recorded as a QR click rather than a web click, so you can see how a printed campaign performed on its own instead of having it blend into your social traffic. Over the wire the two are identical, so the code we generate carries a marker that the redirect engine reads and then drops — a code made elsewhere from the bare short URL still resolves, but it arrives as an ordinary click.

QR codes are on every plan

Next

See it working

The demo runs the real dashboard interface on clearly-labelled sample data.