slsh.me/Privacy Policy

Legal · the specifics are in sections 2 and 3

What we actually collect.

Two different sets of people show up here: people who click a short link, and people who have an account. We collect very different things about each, so this policy treats them separately rather than blurring them into one list.

Last updated 9 September 2026

Who is responsible

The controller for the personal data described here is Stqn Technology SRL (enterprise & VAT no. BE 1035.377.208), Belgium. Write to hello@slsh.me about anything in this policy, including a request to see or delete your data.

We haven't appointed a Data Protection Officer. We're a small operation and don't meet the criteria in Article 37 GDPR that would require one; the address above reaches a human who can act.

This policy sits alongside the Terms of Service, which cover what you may point a short link at.

If you clicked a slsh.me link

You didn't sign up for anything, so this is the section that matters to you. When you open a slsh.me short link we record one row about the visit, and we send you on to the destination.

What that row contains

Approximate location (country, region, city), device type, operating system, browser and browser version, the referring page your browser reported, any utm_* campaign tags in the link, whether the request looked like a bot, and the time. That's the whole row.

What we don't do

  • Your IP address never enters your click record. That table has no field for it, so the analytics the link's owner sees can't contain it. It does pass through our systems briefly — see the caveat below, which we'd rather over-explain than gloss.
  • A successful click sets no cookie. The redirect is a bare HTTP 302; nothing is written to your browser and no page of ours loads. (Two exceptions below.)
  • We don't track you across links or sites. There is no identifier tying one click to another, so neither we nor the link's owner can build a profile of you.
  • Your browser fingerprint is blunted on the way in. Version numbers in the user-agent are zeroed past the major version (Chrome/120.0.6099.234 becomes Chrome/120.0.0.0), and the referring URL is cut back to scheme and host, so the page you came from is recorded but not the path or query.
  • We don't sell anything to anyone, and there is no advertising or data-broker service anywhere in our stack.

Where your IP does go. To turn an address into "Belgium / Brussels" we send it to ipinfo.io and keep the answer in a lookup cache so the next visitor from the same address doesn't trigger another request. That cache is keyed by IP, so an IP sits in our database for up to about two weeks before it is aged out automatically.

Recording a click also happens on a background queue, and the address is one of that queued task's arguments — so it is written to our database for up to an hour until the completed task is swept away, or for longer in the unusual case that the task fails and is kept for diagnosis. Our web server logs, like almost every web server's, also note the address of each request.

None of these are attached to your click record and none reach the link's owner. We're listing them because "we don't store your IP" would be the easy sentence to write and it wouldn't be true.

The one exception to the no-cookie rule. Unlocking a password-protected link stores one strictly necessary cookie so you aren't asked again. The pages we show for an expired, disabled or password-protected link load our own stylesheet and nothing else — no analytics, no third parties.

Who gets to see it

The person or business whose link you clicked sees this data, aggregated in their dashboard — how many clicks, from which countries, on what devices, from which referring sites. They cannot see your IP address, your name, or anything that identifies you individually, because we never collected it.

If a link owner turned on public statistics for a link, those same aggregates are visible to anyone holding that link's statistics URL.

If you have an account

What you give us

An email address and a password, which is the whole of what's required. Optionally a display name and a profile picture. Your appearance preference (light, dark or follow-the-system) is stored so the app looks the same next time.

Your password is stored only as a bcrypt hash — we can't read it, and neither can anyone who obtains the database. API tokens are stored the same way, as HMAC digests: the raw token is shown to you once at creation and never again, because we no longer have it.

What we record as you use it

For each sign-in we keep a session record with the IP address and browser user-agent of the device, so you can stay signed in and so we can investigate account misuse. Unlike link visitors, an account holder's IP is stored.

We also keep what you create: links and their destinations, campaign names, tags, custom domains, imports, and webhook endpoints. We record when you accepted the current Terms of Service, and the version you accepted.

Product analytics

We use PostHog on its EU infrastructure to understand which features get used. It behaves differently on the two halves of the site, on purpose:

  • The marketing site (slsh.me) runs PostHog in cookieless mode. It stores nothing whatsoever in your browser — which is why you've never seen a cookie banner here.
  • The app (app.slsh.me) runs it in normal mode once you're signed in, which does set cookies, and identifies you so we can tell a returning user from a new one.

The thing we'd rather tell you than have you discover: the analytics cookies on the app are set without asking you first, on a legitimate-interests basis rather than consent. If you'd rather not be included, write to hello@slsh.me and we'll exclude your account.

What we don't send is your email address. The identifier PostHog sees for you is an opaque random id that means nothing outside our own database — so a person in their system can't be tied back to you by anyone looking at it, including us, without our database in hand. Crash reports carry the same opaque id.

Some events are recorded on our own servers rather than in your browser — an account being created, a link imported, a campaign report emailed. Those carry that same opaque id and the name or slug of the thing you acted on, and nothing else. Even in cookieless mode on the marketing site, your IP address and user-agent do reach PostHog, where they are hashed with a daily-rotating salt to count visitors without identifying them.

Two things you might not expect

If you invite someone, we store the email address you typed so we can send the invitation and recognise them when they accept. That's an address belonging to someone who may never become a user, held on your instruction. Unaccepted invitations expire after 14 days but the record isn't automatically removed; ask us and we'll delete it.

If you import links from a CSV, the uploaded file's contents are kept on the import record so the import can be undone and its report re-read. If your CSV contained anything personal beyond URLs, it's in there.

Cookies and local storage

The complete list. There is nothing else.

WhatWhereWhyLifetime
session_id app + admin Strictly necessary. Keeps you signed in. Signed, HTTP-only, SameSite=Lax. Until you sign out
Rails session cookie app, and the primary domain on a password-protected link Strictly necessary. Carries form-security tokens, one-off messages, and the fact that you unlocked a password-protected link. Browser session
PostHog cookies app and admin only Product analytics. See the note in section 3. Not set on any page a link visitor can reach. Up to 1 year
API-docs token api.slsh.me/doc The interactive docs keep the API token you generate in your browser's sessionStorage so the "try it" console can reuse it. It is your own credential, never transmitted to us for storage. Until you close the tab
Free-tool preferences marketing site The URL encoder remembers your last input in your browser's localStorage. It is never transmitted to us. Clearing site data removes it. Until you clear it

The marketing site sets no cookies at all. Where we note the entry page you arrived from so we can credit a signup to it, that is held in the page's memory for as long as the tab is open and written to neither a cookie nor local storage.

Why we're allowed to do this

WhatLawful basis (Art. 6 GDPR)
Running your account and serving your linksContract — you asked us to provide the service
Click analytics on a linkLegitimate interests — the link's owner needs to know whether their link worked, and the data is minimised so it can't identify the visitor
Product analyticsLegitimate interests — understanding which features are used at all
Abuse, fraud and security recordsLegitimate interests, and legal obligation where we must respond to an authority
Transactional email (password resets, reports you asked for)Contract

Where we rely on legitimate interests you have the right to object — see section 9.

Who else sees it

Every third party we use, what they see, and where they are. We don't use anyone else.

ProviderWhat forWhat they seeWhere
HetznerServers and databaseEverything, as our hosting providerEU
CloudflareDNS, TLS, protection against attackAll traffic passes through it, including IP addressesGlobal
ipinfo.ioTurning an IP into an approximate locationVisitor IP addresses, one lookup at a timeUnited States
PostHogProduct analyticsFeature usage, against an opaque id — not your email addressEU
ResendSending transactional emailYour email address and the message contentUnited States

Each acts as a processor on our instructions under a data-processing agreement, except where they are a controller in their own right for their own infrastructure.

Not on this list, deliberately

No font, script or stylesheet on this site comes from anyone else. Our two typefaces used to load from Google and from Fontshare, which meant both companies saw the IP address and user-agent of every visitor to every page. We serve them from our own origin now, so that stopped. There is no CDN, no tag manager, no advertising network and no session-replay vendor anywhere in the stack.

Endpoints our customers choose

An account holder can register a webhook, and we'll then POST a summary of each click on their links to a URL they nominate: country, region, city, device, browser, operating system, the referring host, the campaign tags and the time. No IP address and no user-agent are included. Where a link owner has done this, the operator of that endpoint receives the data as an independent controller and we have no control over what they do with it.

We may also disclose data to law enforcement or a regulator where we are legally required to, or to investigate abuse of the service — see the Terms of Service.

Transfers outside the EU

Our servers, our database, our product analytics and our webfonts are all in the EU. Two providers are not, both in the United States:

  • ipinfo.io — receives a visitor's IP address to return an approximate location, and nothing else.
  • Resend — receives your email address and the content of a message you asked us to send you.

Both rely on the European Commission's Standard Contractual Clauses and, where the provider is certified, the EU–US Data Privacy Framework. Nothing else you give us leaves the EU.

This list was longer. Self-hosting our typefaces removed two transfers outright — see the note in section 6.

How long we keep it

WhatKept for
Your account, your links, and the click records on themAs long as your account exists. There's no scheduled expiry — a click record from three years ago is still there if the link is.
A link you deleteDeleted immediately, and its whole click history goes with it. Same for a workspace.
Session records (your IP and browser)Until you sign out on that device, or reset your password. If you never sign out, the record stays — one per device you've signed in on.
IP addresses in the geolocation lookup cacheUp to about two weeks, then aged out automatically
IP addresses in the click-recording queueUp to an hour, until completed tasks are swept; longer for a task that failed
Invitations you sent that were never acceptedKept after the 14-day expiry unless you ask us to remove them
An address blocked after a terms violationKept indefinitely, deliberately — that record is the thing that stops the same account being recreated. It holds the address and the reason, nothing else.
Records about abuse of the serviceKept after an account is closed, for as long as needed to prevent recurrence and to meet our legal obligations

Being straight about the mechanics. There is no self-serve "delete my account" button in the app, and nothing runs on a timer to age data out. Email hello@slsh.me and we'll close the account and delete the data by hand, within one month, as Article 12 requires. We'd rather say that than imply a button exists or a sweep runs.

Your rights

Under the GDPR you can ask us to give you a copy of your data, correct it, delete it, restrict what we do with it, or hand it to another provider in a portable format. Where we rely on legitimate interests you can object to that processing, and where we rely on consent you can withdraw it at any time.

Write to hello@slsh.me. We'll respond within one month. There's no charge, and we won't ask you to justify the request.

One honest limitation: for someone who merely clicked a link, we hold nothing that identifies you, so we have no way to find "your" data in order to show or delete it. That is a consequence of not collecting it in the first place, and it's the trade we'd make again.

Complaining about us

If you think we've handled your data unlawfully you can lodge a complaint with the Belgian supervisory authority, or with the authority where you live:

Autorité de protection des données / Gegevensbeschermingsautoriteit
Rue de la Presse 35 / Drukpersstraat 35, 1000 Brussels, Belgium
contact@apd-gba.be · +32 (0)2 274 48 00
dataprotectionauthority.be

We'd appreciate the chance to fix it first, but that's your call, not ours.

Security

Everything is served over HTTPS. Passwords are bcrypt-hashed and API tokens are stored as HMAC digests, so neither can be recovered from the database. Session cookies are signed and HTTP-only, so they can't be read or forged by scripts. Access to the production database is limited to the people who operate the service.

If a breach happens that puts your rights at risk, we'll notify the Belgian authority within 72 hours and tell you directly where the regulation requires it. If you've found a vulnerability, please write to hello@slsh.me before disclosing it publicly.

Children

slsh.me isn't aimed at children and we don't knowingly create accounts for anyone under 16. If you believe a child has an account here, tell us and we'll remove it.

Changes to this policy

The current version is always on this page with its last-updated date. If we change something material — a new provider, a new category of data, a longer retention period — we'll update the date and, for changes that affect account holders, say so in the app.

Controller

Stqn Technology SRL
Belgium
Enterprise & VAT no. BE 1035.377.208

Privacy requests

hello@slsh.me

Report abuse

abuse@slsh.me

Supervisory authority

Belgian Data Protection Authority, Brussels