Privacy Policy

Last updated 2026-04-29. Operator: Ross Shannon (Dublin, Ireland).

1. Who we are

Everyframe is operated by Ross Shannon, a sole trader based in Dublin, Ireland. The registered operating address is [OPERATOR_ADDRESS].

For any privacy question, you can reach us at [email protected].

This policy describes how we handle personal data when you use the Everyframe website, Chrome extension, and rendering service. It is written to meet our obligations under the EU General Data Protection Regulation (GDPR) and Irish data protection law. We are the data controller for the personal data described below.

2. What we collect

2.1 Account data

We use Clerk to handle sign-up and sign-in. Clerk stores your email address and an authentication identifier on our behalf. We receive the same email address and a Clerk user ID, which we link to an internal user record.

If you sign in with a third-party identity provider (for example Google), Clerk receives the basic profile information that provider returns. We only see the email address and the user ID.

2.2 Billing data

Paid subscriptions are processed by Stripe. Stripe collects and stores your card details, billing address, and any tax identifiers you provide. We never see, transmit, or store full card numbers.

We receive a Stripe customer ID, the subscription status, the plan, and high-level billing events (such as renewals and cancellations) so we can give you the right level of service.

2.3 Image submissions

When you submit an image to be animated, the image is held briefly in memory in our Cloudflare Workers proxy and forwarded to Modal for GPU processing. The resulting MP4 is streamed back to your browser.

We do not write the source image or the generated MP4 to disk, and we do not retain either after the response is delivered. We do not use your images to train models.

For audit and abuse-detection purposes, we compute and store a SHA-256 hash of the source image. The hash is a one-way fingerprint and cannot be used to reconstruct the image.

2.4 Render audit log

For each render request we keep a row in our render audit log containing: the SHA-256 hash described above, the render parameters you chose (preset, motion intensity), timing data such as queue and processing latency, the success or failure outcome, any moderation result, your Clerk user ID, and your internal user ID.

We use this log for billing reconciliation, debugging, capacity planning, and detecting abuse.

2.5 Content moderation signals

Every uploaded image is scored by a Cloudflare Workers AI classifier that estimates whether the image is sexually explicit content (NSFW) or likely to depict a minor. We store the classifier scores and the resulting accept or refuse decision against the audit log entry. The image itself is not retained.

2.6 Analytics

We use PostHog for product analytics and session replay. PostHog records page views, sign-up funnel steps, render-success and render-failure events, button clicks, and a recording of your interactions within the Everyframe webapp.

We use this information to understand how the product is used and to fix bugs. You can opt out by enabling Do Not Track in your browser, by blocking the PostHog domain, or by emailing [email protected] and asking us to suppress analytics on your account.

2.7 Cookies and similar technologies

We set a small number of cookies. Clerk sets a session cookie that is strictly necessary to keep you signed in. PostHog sets an analytics cookie used to recognise returning visitors and to associate session-replay recordings with the same anonymous identifier.

We do not use advertising cookies. We do not sell data to ad networks.

3. Why we collect each thing (lawful basis)

Under Article 6 of the GDPR, we rely on the following lawful bases:

4. Subprocessors

We rely on the following subprocessors to operate Everyframe:

Subprocessor Purpose
Clerk Authentication and identity
Stripe Subscription billing and payment processing
Cloudflare Hosting, CDN, the D1 database that holds the render audit log, and Workers AI for content moderation
Modal GPU compute for the LivePortrait animation model
PostHog Product analytics and session replay

We will update this list when we add or change subprocessors.

5. Retention

The render audit log is kept indefinitely. Each row is small and we use it for billing reconciliation and long-term abuse detection.

Your account record is kept for as long as your account is active. When you ask us to delete your account, we delete your user row, cascade-delete any extension tokens, and anonymise your render audit log entries by setting the user ID to NULL. We complete this within 30 days of your request.

Stripe and Clerk apply their own retention rules to the records they hold as subprocessors.

6. Your rights

If you are in the European Economic Area or the United Kingdom, you have the following rights under GDPR:

7. How to exercise your rights

Email [email protected] from the address registered to your account. We will respond within 30 days. We may ask for additional information to verify your identity before acting on a request.

8. Cookie policy

We treat this section as our cookie policy. The cookies we set fall into two groups.

Strictly necessary. Clerk session cookies. These keep you signed in and cannot be disabled while using the signed-in parts of the site.

Analytics. A PostHog analytics cookie, used to associate page views and session replays with the same anonymous identifier. You can opt out using the methods described in section 2.6.

9. Children

Everyframe is not intended for children. We do not knowingly collect personal data from anyone under 16. Any uploaded image that our content classifier identifies as likely to depict a minor is refused at upload and is not processed.

If you believe a child has created an account, contact us and we will delete the account.

10. International transfers

Cloudflare, Stripe, Clerk, Modal, and PostHog are organisations based in or operated from the United States. Personal data may therefore be transferred to and processed in the United States.

We rely on the European Commission's Standard Contractual Clauses, supplemented where applicable by the EU–US Data Privacy Framework, as the transfer mechanism for these subprocessors.

11. Updates to this policy

We may update this policy from time to time. For material changes we will notify registered users by email at least 14 days before the change takes effect. Minor or clarifying changes will be reflected by updating the "Last updated" date at the top of this page.

12. Effective date

This policy is effective from 29 April 2026.