Privacy policy

1. Controller

The service operator (you) is the controller under GDPR. Set a public contact: support@linkonda.com.

2. What we process

  • Short links: destination URL and a random short code stored in our database (PostgreSQL, e.g. via Neon) to perform shortening and redirects. We store an aggregate click count per link (number of successful redirects)—not per-visitor profiles.
  • QR codes on this site: encoded in your browser from the short URL; no separate QR “upload” to the server.
  • Technical logs: your hosting provider (e.g. Render) may create server/access logs (IP, timestamp). Minimize retention there and in your own logging.
  • Accounts (optional): if you register, we store your email and a password hash, and a plan label (e.g. free or Pro) to apply feature limits such as link lifetime and quotas.
  • Product analytics: we use privacy-focused analytics (for example, Umami) to measure page opens and key product actions such as creating short links or starting checkout. We configure it without marketing cookies, and we do not send shortened destination URLs, email addresses, API secrets, webhook URLs, custom domain hostnames, or URL query parameters in analytics payloads.
  • Anonymous link quotas: to limit abuse without accounts, we derive a one-way hash of the client IP (with a secret salt on the server) and store that hash on anonymous short links so we can count active links per network. We do not store raw IP addresses in the link table for this purpose.

3. Purposes and legal bases (GDPR Art. 6)

  • Providing the service (storing slug → URL, redirect) — contract / steps prior to contract, or legitimate interest in operating a URL shortener you asked to use.
  • Security and abuse prevention (e.g. rate limits, blocking) — legitimate interest, balanced against user rights.
  • Product analytics — we use privacy-focused analytics to understand feature usage, diagnose UX issues, and improve the service. We keep payloads minimal and avoid direct identifiers or user-submitted content. Depending on your setup and jurisdiction, this may rely on legitimate interest for strictly minimal, cookie-free measurement, or consent if your implementation is not essential / privacy-preserving.

4. Data minimization & retention

Store only what you need. Short links may have a scheduled expiry after which they stop working; Pro-tier links may have unlimited lifetime depending on product settings. Define retention for other data (e.g. delete old links after N months if that matches your product). Redirect logs should be minimized or aggregated if you add click analytics later.

5. Subprocessors

Typical infrastructure (update with your actual vendors and sign DPAs where offered):

  • Database (e.g. Neon) — PostgreSQL hosting; prefer EU region if possible.
  • Application hosting (e.g. Render) — runs the API.
  • Static frontend hosting — where the web app is served from.
  • Analytics hosting (e.g. self-hosted Umami or an Umami provider) — receives pageview and custom event data for product analytics.

6. International transfers

If data leaves the EEA, rely on adequacy decisions, SCCs, or other GDPR Chapter V mechanisms as documented with your providers.

7. Your rights

Subject to GDPR, you may have rights to access, rectification, erasure, restriction, portability, and objection. Contact the controller at the email above. You may lodge a complaint with a supervisory authority (e.g. in Germany, state data protection offices).

8. DPIA (privacy impact)

For the current minimal product (shorten + redirect + client-side QR), a full DPIA is often not mandatory. If you add large-scale tracking, profiling, or sensitive categories of data, reassess and consider a DPIA under GDPR Art. 35. Keep analytics privacy-first and avoid turning feature measurement into user profiling.