Security is a property, not a product

We do not sell security. We built the system so the question rarely needs asking, and so that the honest answers are short.

Your customers' data

Events, never content

We record that something happened and when. Never what your customers wrote, typed, logged or uploaded. There is no field for it in the schema, so there is nothing to leak.

No identity across apps

Users are random identifiers scoped to a single app. Linking a person between two apps is not forbidden by policy, it is impossible by structure, because no shared key exists.

Erasure in one call

One request removes a user and everything attached to them. No ticket, no waiting period, no retention of a shadow copy.

Money

Checkout runs on Stripe rails. We never hold funds and never store card data, so we inherit the compliance of a processor built for it rather than claiming our own. No custody means there is no pot worth attacking.

The behavioural layer

A system that decides when to contact people can be turned into a pressure machine. Ours cannot, and that is structural rather than a promise:

Caps in the engine

Frequency limits are enforced where the decisions are made, not left as a setting you could turn off.

The taper is mandatory

Once behaviour holds, contact stops. Not reduced, not re-sequenced. Stops.

Harm is visible

Because a slice of users always receives nothing, the dashboard can show when reaching people is making retention worse. When it does, the play stops.

There is no spend-maximisation objective anywhere in the engine, and identifying high-value customers exists so you know who to look after, not who to squeeze.

What we do not have yet

No SOC 2. Buying a certification before there is revenue to justify it would be theatre. What we offer instead is legibility: the SDK source is plain and readable at retains.netlify.app/retain-sdk.js, the field list is published, and the API is documented. Every claim on this page can be checked rather than taken on faith. Certifications follow when the business supports them.

How we work internally

Secrets are never sent to the browser. The key embedded in your site or application can write events and nothing else. Row level security is applied to every table before any data goes into it. Keys rotate on any suspicion of exposure rather than on a schedule.

Questions we have not answered here

Security questions get a direct answer, including where the answer is that we do not have something yet.

Request access