SetLinks sets no cookie on a setlinks.io/{slug} short link, and none of its own
in the dashboard. On this website it uses one analytics cookie and one item of browser storage that
you can refuse: both wait until you choose Accept in the banner the website shows
you, and both go when you choose Decline. Everything else this notice lists
is either strictly necessary — including remembering the choice you made — or is not set by us
at all.
The marketing site at www.setlinks.io, including the legal pages you are reading now, loads one analytics script, PostHog, from PostHog's EU cloud. It loads no tag manager, no advertising script and no third-party font. PostHog counts page views and records the address of the page, the page you came from, your browser, device type and screen size, the links and buttons you click, and your IP address, from which PostHog works out your approximate location; it is our processor, listed on the Subprocessors page.
Until you accept, PostHog stores nothing in your browser. It keeps its identifier in the page's memory only, so every page you open is counted as a separate, anonymous view and nothing ties it to the next one. If you decline, it stays that way. If you accept, PostHog and our own first-touch record use the storage below, so that the pages of one visit, and a later return, are counted as yours rather than as new visitors.
| Name | Type | Purpose | Lifetime |
|---|---|---|---|
| sl_consent | localStorage — strictly necessary | Remembers whether you chose Accept or Decline in the banner, and when, so we do not ask again on every page. | Until you clear your browser storage |
| ph_<project key>_posthog | Cookie and localStorage, www.setlinks.io only — after Accept | A random visitor identifier and the current session, set by PostHog, so repeat page views and visits are counted as one visitor. | One year; removed at once if you decline later |
| sl_first_touch | localStorage — after Accept | Where your visit started: the campaign tags in the address you arrived at (utm_source, utm_medium, utm_campaign, utm_term, utm_content), the referring site's host name and the first page you opened. It is added to the dashboard's sign-up link, so a new account records where it came from. | Until you clear your browser storage; removed at once if you decline later |
To change your answer, use Cookie settings at the foot of any page of this website. The homepage's animations are drawn in your browser by our own scripts; they send nothing and store nothing. A link name you type into the homepage's form leaves your browser only when you submit it, as part of the address of the dashboard's sign-up page (§ 4).
Following a setlinks.io short link sets no cookie and stores nothing on your device.
The service that resolves the link reads only the User-Agent and
Accept-Language headers your browser already sends with every request, to work out
which app store or destination to send you to, and it writes nothing back to your browser.
Signing in to the dashboard at app.setlinks.io is what uses browser storage — all of it strictly necessary to keep you signed in, remember your preferences, or carry a few values across a page you're in the middle of (like accepting a team invitation). None of it is used to track you across other sites, and none of it is shared with anyone.
| Key | Storage | Purpose | Lifetime |
|---|---|---|---|
| theme | localStorage | Remembers whether you chose light or dark mode. | Until cleared or changed again |
| locale | localStorage | Remembers your chosen dashboard language. | Until cleared or changed again |
| bootstrap:<uid> | localStorage | Caches your account bootstrap response so the dashboard loads faster next time. | Until cleared or you sign out |
| active-team:<uid> | localStorage | Remembers which team you were last working in. | Until you clear your browser storage |
| verify-email-sent:<uid> | localStorage | Records when a verification email was last requested, so we don't send too many. | Until you clear your browser storage |
| sl_post_login_path | sessionStorage | Remembers where to send you back to once you finish signing in. | Until the tab closes |
| sl_carried_invite_token | sessionStorage | Carries a team invitation through the sign-up flow. | Until the tab closes |
| sl_carried_invite_email | sessionStorage | Carries the invited email address through the sign-up flow. | Until the tab closes |
| sl_carried_slug | sessionStorage | Carries a slug you started creating on this website through sign-up, so you don't lose it. | Until the tab closes |
The dashboard's product analytics and session recordings (PostHog and Sentry, described in our Privacy Policy) store nothing on your device: both keep their identifiers in memory only, so they set no cookie and add no key to the table above.
Signing in also creates a Firebase Authentication session, kept in your browser's
IndexedDB storage, so you stay signed in between visits. The staff portal, used only
by our own team, stores the same theme and locale preferences and nothing
more.
When you open a form to add or update a card, the dashboard loads Stripe's own script (js.stripe.com) — but only at that moment, never on a page you haven't asked to pay from. Whatever cookies
or storage that script sets are Stripe's own, governed by
Stripe's cookie policy
, not by us.
The SetLinks mobile apps keep your active team in the device's own app preferences, and keep you signed in, the same as the web dashboard. There is no advertising identifier in either app.
While you are signed in, the apps' product analytics (PostHog, described in our Privacy Policy) keep a random identifier and the events not yet sent in the app's own storage. Signing out resets the identifier, and uninstalling the app removes both. Sentry keeps error reports and session recordings waiting to be sent in the same way, until they are sent.
This is version 2.2 of this notice, published on its effective date above. Every version, along with every other document's, is listed on the change log. If a future version adds a cookie or a storage item that isn't strictly necessary, we will ask for your consent before it starts running, not after.
Questions about this notice can be sent to support@setlinks.io.