product · link shortener · response desk

Short links with an expiry date and an audit trail.

Use branded campaign links that can be tagged, scheduled, protected, retired, and reviewed without a tracker script.

There's a free version, no signup
·· frmsp.io short domain·· real-time click analytics·· expiry + scheduling·· password protection
·· links · spring-sale · last 7d
no 3p · no fingerprint · EU only
01 / capabilities

Built for the things email can't do.

Email is fine for alerts. It's lousy for ownership, retention, file handling, and audit trails.

01 · readable

Readable slugs

Use frmsp.io by default or bring your own verified host on Pro and Team (one domain each) or unlimited on Scale.

02 · aggregated

Aggregated click records

See clicks, referrers, country, and device without a third-party tracker in the redirect path.

03 · expiry

Expiry as cleanup

Start or stop links on a date, or retire them after a click limit.

04 · protected

Protected destinations

Put sensitive pages behind a passphrase or one-time access.

05 · utms

UTMs without drift

Build and preserve campaign parameters so people stop inventing variants.

06 · bulk

Bulk housekeeping

Tag links by campaign or owner, then import via CSV or API when the spreadsheet gets too long.

02 / how it works

Three steps, no glue code.

·· step 01Paste the destination

Add the URL, choose a readable slug, and apply owner or campaign tags.

·· step 02Share the short link

Use frmsp.io or a branded domain where the campaign runs.

·· step 03Review and retire

Track clicks, protect sensitive destinations, and expire links when the campaign ends.

03 / for developers

Snippets ship for eleven frameworks.

HTML, React, Vue, Next.js, Astro, SvelteKit, Nuxt, vanilla JS, Python (requests), PHP (curl), Ruby (Net::HTTP).

·· HTML·· React·· Vue·· Next·· Astro·· Svelte·· Nuxt·· Python·· PHP·· Ruby·· curl
// React
async function handleSubmit(e) {
  e.preventDefault();
  const data = new FormData(e.target);
  await fetch("https://formspring.io/f/abc123", {
    method: "POST",
    headers: { Accept: "application/json" },
    body: data
  });
}

// Receive the signed webhook
const sig = req.headers["x-formspring-signature"];
const ok = timingSafeEqual(
  hmacSha256(secret, rawBody),
  sig
);
04 / questions

About Link shortener.

What is Formspring Link shortener?
A short-link product for campaign URLs that need readable slugs, owner tags, expiry, password protection, and aggregated click records.
Is Formspring Link shortener an alternative to Bitly?
Yes - for teams that want EU data residency, no third-party trackers in the redirect path, and pricing that does not scale by click volume.
Do free accounts get short links?
Yes. The Free plan includes 5 short links with click analytics. Paid plans raise the cap and unlock branded domains.
Can I use my own short domain?
On Pro and Team, verify one custom host and use it for short links plus public form, survey, and funnel URLs. Scale includes unlimited verified domains.
Are click analytics privacy-friendly?
Yes. We aggregate clicks, referrers, country, and device without third-party trackers, and never sell or share click data.

Start with one link. Scale when it earns it.

Free plan covers a personal site or a small intake flow. Upgrade when you cross 50 submissions a month.