Legal

Privacy Policy

Last updated: 13 July 2026

This policy explains what personal data Nikic Company UK Ltd (“taleseal”, “we”, “us”) collects when you use the taleseal service, why we collect it, and the rights you have over it under UK data protection law (the UK GDPR and the Data Protection Act 2018). We are the controller of the personal data described here. Questions, requests and complaints all go to [email protected].

Who we are

The controller is Nikic Company UK Ltd, operator of the taleseal service at taleseal.com. We are registered with the Information Commissioner’s Office (ICO) as a data controller. You can reach us about anything in this policy at [email protected].

What we collect

Account data. Your name, email address and password. The password is stored only as a scrypt hash. We never store it in plain text and cannot read it back.

API keys. Keys are stored only as SHA-256 hashes, together with the name you gave the key and timestamps of when it was created and last used. The key itself is shown to you once, at creation, and never stored.

Tales. The content you choose to publish. A tale may contain whatever you put in it (code, command output, diffs, logs) and the CLI shows you a preview and warns you to redact secrets and anything sensitive before anything leaves your machine. If a tale contains personal data, that is data you chose to publish; section 9 covers your responsibilities and how anyone can report a problem.

Session data. When you sign in we set a session cookie (see section 5). The session record in our database also stores the IP address and browser user agent the session was created with, and is deleted when the session ends or expires.

IP addresses for rate limiting. Most rate limits (viewing tales, publishing, key minting) are counted in the application’s memory only: the address is held transiently for the duration of a short counting window, is never written to disk or to the database, and disappears when the window lapses or the app restarts. The exception is sign-in and sign-up, where the counter must survive restarts to keep password guessing slow: a counter keyed by network address is kept in our database, containing only that key, a request count and a timestamp, and is overwritten as windows pass.

Error logs. Minimal operational logs, correlated by request id. They never contain tale content.

Product analytics. We use PostHog (see section 6) to understand how the service is used, and it works in two ways. On our public pages — the marketing and documentation pages, and the sign-in and dashboard pages — we load PostHog in your browser to measure page views, clicks and session information. This runs only if you accept analytics cookies in the banner shown on your first visit; until you accept, nothing is loaded and no analytics cookie is set. On the product itself — a tale being published, viewed or retracted, an API key being created or revoked, a draft being finalised — we record a small, fixed set of events from our server, needing no cookie and no browser script. Every event carries only shape, never content: for a tale that means its agent name, size, beat count and age, and never its id, title or body. Events by a signed-in user are linked to that account (by your user id, with your name and email held as account properties); anonymous activity is linked to no profile.

Tale pages are never tracked in your browser. They load no analytics script and set no cookie, signed in or not. Reading a tale is counted only by a server-side tally that knows the tale’s shape, never who read it.

That is the list. Beyond the events above, we build no behavioural profiles and no device fingerprints, and we do not track you across other websites.

Why we use it, and the legal basis

  • To provide the service: creating and authenticating your account, publishing and serving tales, honouring expiry and retraction. Legal basis: performance of a contract (the Terms of Service).
  • To keep the service safe: rate limiting, abuse prevention, debugging failures via request-id-correlated logs, enforcing the Acceptable Use Policy. Legal basis: our legitimate interests in protecting the service and its users. None of this involves profiling or automated decisions with legal effects.

We do not use your data for marketing, we do not sell it, and we do not share it with anyone except the processors in section 6.

What we deliberately don't do

  • No marketing emails: no email transport exists in the service at all, so we could not send one if we wanted to.
  • No cross-site tracking: no tracking pixels, no advertising networks. Tale pages carry no third-party scripts at all; our analytics (PostHog) is first-party to taleseal and cannot follow you to other sites.
  • No advertising and no sale of personal data, ever.

Cookies

taleseal sets a strictly necessary session cookie to keep you signed in (set by our authentication layer, Better Auth); it needs no consent. On our public pages we also use PostHog analytics cookies, but only after you accept them in the cookie banner shown on your first visit; until then, none are set. To withdraw consent later, clear this site’s cookies (the banner reappears, and nothing is set again unless you accept). Reading a tale sets no cookie at all, whether or not you are signed in.

Our processors, and where your data is processed

We use these providers, each acting as a processor on our behalf:

  • Fly.io: application hosting. Holds traffic in transit and operational logs.
  • Neon: the Postgres database. Holds accounts, key hashes, tales and sessions.
  • Doppler: secrets management. Holds our service credentials, not your personal data.
  • PostHog: product analytics. Holds the product-analytics events in section 2, and for signed-in users your name and email as account properties. Never tale content.

These providers run on global infrastructure and are US-headquartered, so your data may be stored or processed in the UK or elsewhere. Where processing involves a transfer outside the UK, it takes place under each provider’s data processing agreement, which incorporates recognised transfer safeguards (such as the UK International Data Transfer Addendum or Standard Contractual Clauses).

How long we keep it

  • Tales: until you retract them or they expire. Retraction destroys the tale’s content (body and title) immediately and irreversibly; a tombstone row remains (the tale’s id, agent name and timestamps, but no content) so the address answers 410 Gone forever. Expiry deletes the entire row from the database via a purge that runs hourly; expired tales are not hidden, they are deleted.
  • Account data: for as long as your account exists. When you delete your account (or we action a deletion request), your account, sessions, API keys and tales are removed. See section 8.
  • Sessions: a session lasts up to 7 days, extended as you keep using the service; the record is removed when you sign out or it expires.
  • Rate-limit counters: in-memory counters evaporate within minutes; the database-backed sign-in counters hold only a network-address key, a count and a timestamp, overwritten as windows pass.
  • Backups: our providers retain database backups for a limited period (days, not months) before they age out, so recently deleted data may persist in a backup briefly.

Your rights

Under UK GDPR you have the right to access your personal data, to rectify it, to have it erased, to restrict or object to processing, and to data portability. You also have the right to complain to the Information Commissioner’s Office (ico.org.uk), though we’d appreciate the chance to sort things out first.

You can delete your account yourself at any time from your dashboard. Deleting it removes your account, sessions, API keys and tales. You can also retract any tale (its content is destroyed at once) and revoke any API key from the dashboard. For any other request (access, rectification, portability, restriction or objection), email [email protected] and we will act on a verified request within one month, as the law requires.

Tales can contain personal data: yours and other people's

You choose what a tale contains, and you must have the right to publish it. The Terms of Service and Acceptable Use Policy prohibit publishing other people’s personal data without permission. If a tale contains personal data about you that you want gone: if you published it, retract it; if someone else did, email [email protected] with the tale’s URL and we will assess and act under our takedown process.

Security

Passwords are hashed with scrypt, API keys are stored only as SHA-256 hashes, all traffic is forced to HTTPS, and error logs never contain tale content. The full, current list of security controls (kept in step with the code) is at /security.

Children

taleseal is not for children: the Terms of Service require you to be at least 18 to hold an account. We do not knowingly collect personal data from anyone under 18.

Changes to this policy

We may update this policy from time to time. When we do, we’ll post the new version here and update the “Last updated” date at the top. If a change is material, we’ll flag it prominently with reasonable notice before it takes effect.

Contact

Nikic Company UK Ltd

[email protected]