Legal

Privacy Notice

Last updated 28 August 2026 · Presentify

The short version

To build a deck we send your prompt, your document’s text, your slide content, and pictures of your rendered slides to Google’s Gemini API. Your uploaded file is not kept, but the text pulled out of it is. Stripe handles cards; we never see them. A share link records a random viewer id and per-slide dwell time — no IP address, no name. There are no advertising or analytics cookies. Deleting your account erases your decks and the image files behind them, not just the rows that point at those files — section 9 says exactly what goes, and in what order.

1 · Who this is for

This notice covers Presentify — the app, the API, and the shared-deck viewer. It is written to be read, not to be survived, so it says what is stored in specific terms rather than in categories.

It applies to two different people: the account holder who builds decks, and the viewer who opens a share link without an account. Section 6 is for the second one.

2 · What we store

Your account. Name, email address, whether that address has been verified, an optional avatar URL, and a hash of your password — never the password itself. Each sign-in session records its token, its expiry, and the IP address and browser user agent it was created from, so that a compromised account can be traced afterwards.

Your decks. The title, the theme, the prompt you typed (or the text extracted from your document — see section 3), the audience, the approved outline, every slide and its speaker notes, images, the full revision history behind undo, and the copilot conversation on that deck including actions awaiting your confirmation. If you used the research pass, the findings it returned and the source URLs it cited are stored with the deck so its claims stay checkable.

Your preferences, remembered. The copilot keeps a short list of durable facts about how you like to work — stated preferences, and approaches you rejected so it stops proposing them. These can be scoped to one deck or to your whole account, and they are deleted with the account.

Billing. Your Stripe customer identifier and subscription status, plan, and period dates. No card numbers: see section 7.

Usage and cost. Per-period counters — decks created, slides generated, refinements, copilot turns, AI images — plus a modelled estimate of the AI spend your account caused, which is what enforces plan allowances and cost ceilings.

Product events and errors. Named events with a small set of properties (for example, that a deck was created, in which mode, on which plan), and error reports carrying the message, the stack trace, the route that failed, and the account and deck involved. Both are written to our own database; errors are also forwarded to an external monitor if one is configured.

Operational records. Background job rows for generation, PDF, and PowerPoint export; short-lived rate-limit counters that expire on their own; API keys you created; saved brand themes; collaborator invitations, which include the email address you invited.

3 · Uploaded documents, precisely

When you build a deck from a document, the file itself is not kept. It is parsed in memory — .docx, .pdf, .txt, and .md — the text is normalised, and the file is discarded when the request ends. There is no stored copy of your PDF or Word file.

The extracted text is stored, however, as the deck’s source prompt, up to roughly 200,000 characters. That is what lets the deck be regenerated and revised later without you re-uploading. It lives in the deck record, is deleted with the deck, and is sent to Google’s Gemini API in the same way a typed prompt is. If a document is too sensitive to send to an AI provider, do not upload it.

4 · What the AI provider sees

Presentify does not train or host its own model. Generation, the copilot, the design critique, and AI imagery are all calls to Google’s Gemini API through Google AI Studio. What we send is listed in section 7, and it is substantial: prompts, document text, slide content, and — for the critique step that catches overflowing text and weak contrast — rendered images of your slides.

Google’s handling of that content is governed by its own Gemini API terms, and those terms treat paid and unpaid tiers of the API differently, including in whether content may be used to improve Google’s services. If your organisation needs a specific guarantee on that point before you upload anything, ask us at the address in section 14 and we will tell you which tier the deployment you are using runs on.

5 · Cookies and browser storage

One cookie: the session cookie that keeps you signed in. It is strictly necessary, it is not shared with anyone, and there is no advertising, tracking, or third-party analytics cookie on this site — which is why you were not asked to dismiss a banner.

Everything else this site keeps in your browser it keeps in your browser’s own storage, and every key is named presentify something, so this list can be checked against what is actually there. Kept until you clear site data: presentify-theme, whether you asked for the light or the dark appearance; presentify-viewer, described in the next paragraph; and presentify:present-live:<deck>, the slide a deck is currently showing, which is how a projector window and a speaker window stay on the same slide. Kept only until the tab closes: presentify:present-at:<deck> and presentify:present-timer:<deck>, your own position and your elapsed talk timer while presenting, and presentify-copilot-research, whether you left the copilot’s web-research switch on.

presentify-viewer is the only one of those that ever reaches us: a random 24-character identifier, generated in your browser when you open a shared deck and sent with each view of it, so that reopening the same deck counts as one viewer rather than two. It is not linked to an account, contains nothing about you, is not readable by any other site, and clearing site data removes it. None of these values is used for advertising or to recognise you on other sites.

6 · Share links, and what a viewer's visit records

A share link is a read-only copy of a deck at an unguessable URL. The owner can set a password (Ultra) — stored only as a salted scrypt hash — or an expiry, and can revoke the link at any moment.

For each visit we store: which link was opened, the random viewer identifier from section 5, how long the viewer spent on each slide, and whether they reached the last one.

We do not store a viewer’s IP address, browser, location, or email against a deck view, and the deck owner sees aggregate figures — distinct viewers, dwell per slide, completion — not identities. Viewing statistics are deleted when the deck or the owner’s account is deleted. Revoking a link is not a deletion: it stops the link opening, and the visits already recorded against it stay with the deck, so the owner’s figures for a talk they have already given do not vanish when they close the link.

We ask search engines not to crawl or index share URLs. That is a request, and it does not protect a link that has been forwarded, posted, or pasted somewhere public. Treat a share link as a key.

7 · Who else handles it

Every third party in the path is named below, with what it receives. The application itself runs on a hosting provider, which necessarily processes requests in transit. We do not sell personal data, and none of these services is an advertising network.

Neon (managed Postgres)

The database: your account record, every deck, slide, revision, copilot message, share link, view count, and usage counter.

Always. Connections are TLS-only.

Google — Gemini API (via Google AI Studio)

Your prompt or the text extracted from your document, the audience and outline, slide content on every refinement, image-generation prompts, and — for the design critique — rendered PNG images of your slides. With the optional research pass, your topic is also run as a Google Search query.

Every generation, refinement, copilot turn, critique, and AI image.

Stripe

Your email address and whatever you type into Stripe's own checkout. Card details go to Stripe directly and never reach us; we store only the customer identifier and subscription status Stripe returns.

When you start, change, or cancel a paid plan.

Resend

The recipient address and the body of transactional email — address verification, password reset, collaborator invitations.

When one of those messages is sent. Without a Resend key configured, such messages are written to the server log instead.

Amazon S3 or Cloudflare R2 — optional

The image files used on your slides, stored as opaque blobs.

Only when object storage is configured. Otherwise images are written to the application server's own disk.

Pexels — optional

A short stock-photo search query derived from the slide. No account data, no deck content beyond the query itself.

Only as a fallback when AI image generation is unavailable, and only if a Pexels key is configured.

External error monitor — optional

Error reports: the message and stack trace, the route that failed, and the account and deck identifiers involved.

Only if an error webhook is configured.

8 · How long we keep it

Plainly: your decks stay until you delete them. There is no automatic expiry, and we would rather tell you that than imply a tidy retention schedule that does not exist. Rate-limit counters expire within minutes. Everything else — decks, slides, revisions, copilot history, share statistics, usage counters, product events — persists for the life of the account.

After you delete the account, Stripe retains its own record of your payments for as long as its own tax and accounting obligations require; that copy is not ours to erase.

9 · Deleting things

A deck. Deleting a deck removes its slides, revisions, copilot history, share links, all viewing statistics for those links, and the images on its slides — the stored image files themselves, not only the database rows that point at them.

Your account. Settings → delete account, confirmed with your password. That cancels any active Stripe subscription and then erases: your decks and their slides, images (the stored files as well as the rows), revisions, events, and copilot messages; your share links and their view records; collaborator invitations you sent and invitations pointing at you; saved brand themes; API keys; the copilot’s remembered preferences; usage counters; background jobs; product events; and the subscription record. It is irreversible, so export first.

How the image files go. Both of those deletions happen in one request, and in this order: the database rows first, the files in storage second. The rows first because that is the erasure you asked for and it has to complete even if the storage service is briefly unreachable, and because after it Presentify can no longer serve those images to anybody — a request for a deleted deck’s image is answered “not found” whether or not the file is still there. If a file cannot be removed at that moment, the deletion still stands and the failure is recorded, with the file’s storage key, so the file can be removed afterwards. What we will not do is call it done and forget it. If you need confirmation that a particular deck’s files are gone, ask at the address in section 14.

10 · Security

Passwords are hashed by the authentication layer and never stored in readable form. Share-link passwords are salted and hashed with scrypt and compared in constant time. Database connections require TLS. Every deck route checks ownership or an explicit collaborator grant before it reads or writes, and the expensive endpoints — generation, upload extraction, copilot turns — are rate limited per account.

No system is perfect. If you find a vulnerability, please tell us at the address in section 14 before telling anyone else.

11 · Where your data goes

The processors in section 7 operate internationally, so your content may be processed outside the country you are in — in particular by Google, for every AI call. Where the law requires a transfer mechanism for that, we rely on the terms and safeguards those providers publish.

12 · Your rights

Depending on where you live you may have the right to access a copy of your data, correct it, delete it, restrict or object to its processing, and ask for it in a portable form. Most of that is self-service: your decks are visible and editable in the app, exportable as PDF on every plan and as PowerPoint on paid ones, and deletable outright.

For anything the app cannot do for you, write to privacy@presentify.myapps.ai from the address on your account. We answer within 30 days. If you think we have handled your data badly, you can also complain to your local data protection authority.

13 · Children

Presentify is not intended for children. Do not create an account if you are under 16, or under the age at which you can consent to online services where you live if that age is higher. If we learn that an account belongs to a child, we will delete it.

14 · Changes and contact

When what we collect or who processes it changes, this page changes with it and the date at the top moves. For a change that materially affects you, we will email the address on your account.

Questions, requests, or a vulnerability report: privacy@presentify.myapps.ai.

App appearance