Privacy Policy
Last updated: October 3, 2026
EmitDream ("we", "our", or "us") is a private memory and emotional transmission platform. We take your privacy seriously. This policy explains what data we collect, how we use it, and your rights.
What We Collect
- Account data: email address and display name when you sign up.
- Content you create: text entries, photos, videos, voice memos, and scheduled emissions you write or upload.
- Birthday (optional): if you add one, we keep the full date for you alone (it appears on your own Settings). It can be set once a year, so it stays true. People you are connected to can only ever see the month and day — never the year or an age — and only if you turn on “Share my birthday with connections”. If you use “Write with AI” for a birthday greeting, the first name, the tone and the language are sent to an AI provider — nothing else.
- Connection data: the connections you form with other users (by mutual consent only).
- Usage data: basic app usage for debugging purposes (no advertising profiles).
- Security data: hashed IP addresses (not plaintext), removed after 90 days, and your login history (when and on which device you signed in), which stays with your account so you can review it. A record of security-relevant account events (for example sign-in, second-factor, export and deletion events) stays with your account too; any IP address in it is removed after 90 days.
- Billing data: if you subscribe to Pro, your subscription status and the customer reference our payment provider gives us. We never receive or store your full card number.
What We Do Not Do
- We do not sell your data to anyone, ever.
- We do not show you ads.
- We do not use your memories to train AI models — ours or anyone else’s.
- We do not build advertising profiles.
- We do not share your content with anyone except (a) the connections you choose to send it to, (b) the service providers listed below that we need to operate features you use, and (c) where required by law.
How We Store Your Data
Your data is stored in Supabase (PostgreSQL) with row-level security — only you can access your own data. All data is encrypted in transit (TLS) and at rest. File uploads (photos, videos, voice memos) are stored in a private storage bucket and are reachable only through signed links that expire 24 to 36 hours after they are created. Download links in an account export last 7 days.
End-to-end encryption is not on yet. Until it is, your content is protected by access control and encryption at rest, but it is not sealed so that only you can read it: the service and its database host can technically read what is stored. End-to-end encryption is built and is being switched on in stages; when it is on for a kind of content, we will say so here and in the app, and from then on we cannot read that content.
Service Providers We Use
To run EmitDream we rely on a limited set of providers ("sub-processors"). They process data only to provide their service to us, under their own data-protection terms, and never to advertise to you or build a profile of you. Some are always in use; others receive data only when you use a specific feature, as noted.
Always in use to run the core service:
- Supabase — database, authentication, and encrypted file storage. This is where your account, entries, emissions, and uploads live.
- Vercel — hosting and delivery of the web application. Vercel processes request metadata (such as your IP address) to serve the app.
- Upstash — a Redis service used for rate limiting and abuse prevention. It processes short-lived technical identifiers only, not your content.
- Fly.io — runs the background worker that renders scheduled emissions. It processes emission content only at the moment it is being prepared for delivery.
- Resend — sends transactional email (for example sign-in and account notices). Receives your email address and the message content.
- Push delivery services — if you enable notifications, delivery is routed through your browser or device push service (for example Apple, Google, or Mozilla). Only the notification payload needed to alert you is sent.
- Have I Been Pwned — during sign-up we check your chosen password against a breach database using k-anonymity, so only a partial, non-reversible hash prefix is sent — never your password or email.
Used only when you use the related feature:
- Payments (Stripe) — if you subscribe to Pro, Stripe processes your payment details, billing address and email to take the payment. We receive only the subscription status and a customer reference.
- AI reflections (OpenRouter, and the model providers behind it such as OpenAI and Anthropic) — if you use the AI reflection feature, the text you send in that conversation is transmitted to the model provider to generate a reply. Do not put anything in an AI reflection you would not want processed by a third-party AI service. Your stored memories are never sent for AI training. If you never use this feature, no content is sent to any AI provider. You can also switch every AI feature off in Settings → Privacy & Security, and nothing from your account is then sent to an AI provider.
- GIFs (GIPHY, Tenor) — when you search for a GIF, your search words go to our server and on to the GIF catalogue (we send nothing that identifies you). When a chat or a memory shows a GIF, your device loads the picture from the catalogue’s image servers, which can see your IP address and device details as any website would. A GIF you send in an end-to-end encrypted conversation travels inside the encrypted message.
- Music search (Jamendo, Apple iTunes) — when you search for background music, your search terms are sent to these services.
- Maps & location (OpenStreetMap / Nominatim) — when you use location features, the coordinates or place text you look up are sent for geocoding.
- Nature identification (iNaturalist, Wikipedia, Open Tree of Life) — when you use the nature scanner, the photo or query you submit is sent to identify the subject.
- Document preview (Google Docs Viewer) — when you preview an Office document, and only after you agree (we ask once and remember your answer in this browser), its file URL is sent to Google’s viewer to render a preview. You can download the file instead.
- YouTube (Google) — if you attach background music to a memory, the video is embedded directly from YouTube, which may set its own cookies when the embed loads.
We do not use any third-party advertising or behavioral-analytics providers. If we add or change a sub-processor, we will update this list.
Cookies & Local Storage
EmitDream uses:
- Session cookies: a single authentication cookie set by Supabase to keep you signed in. This is strictly necessary for the app to function. It is not used for advertising or tracking.
- Local storage: your preferences (theme, particle effects, layout) are stored locally in your browser so they persist between sessions. An entry you are still writing is also kept there as a draft until you post or clear it. This stays on your device and is not sent to us until you post it.
- IndexedDB: a small set of emission replay IDs is stored locally so the app knows which emissions you have already seen (in local storage if IndexedDB is unavailable). This data never leaves your device.
We do not use tracking cookies, third-party analytics cookies, or advertising cookies of any kind.
Retention & Deletion
You can delete your account at any time from Settings → Account → Delete Account. This permanently and irreversibly deletes all your entries, emissions, connections, and account data from our systems.
Your data stays until you delete it. We do not delete your memories, emissions (sent or received), sent history, connections or messages because of their age, or because of the plan you are on. Your activity feed (notifications) is a running list, so older entries are cleared automatically after a period that depends on your plan. The things we remove automatically are the following:
- Reflected thoughts expire automatically about 24 hours after you reflect them (you chose a one-day thought), and can be ended immediately from the memory’s menu.
- Trashed entries — ones you deleted — are recoverable for 30 days, then permanently removed.
- Hashed IP addresses in security records are removed after 90 days (the record itself stays).
- Delivery receipts and sign-in attempt counters (working data that is never shown) are removed after 24 hours.
- Account export files are deleted after 7 days.
- Inactive push-notification subscriptions are removed after 180 days.
Legal Bases (EEA, UK and Switzerland)
Where the GDPR or a similar law applies, we process your data on these bases:
- Contract: to provide the service you signed up for: your account, your memories, emissions, connections, chat and the features you choose to use.
- Legitimate interests: to keep the service secure and working: rate limiting, abuse and fraud prevention, security logs and fixing bugs.
- Consent: for optional features you switch on, such as push notifications. You can withdraw consent at any time in Settings or your device settings.
- Legal obligation: to keep billing records and answer lawful requests.
International Transfers
Some of the providers listed above process data outside your country, including in the United States. Where data leaves the EEA, the UK or Switzerland, we rely on the safeguards those providers offer, such as the European Commission’s Standard Contractual Clauses or an adequacy decision.
Data Portability
You can export all your data at any time from Settings → Export. The export includes all your entries, emissions sent and received, and connection data in JSON format.
Your Rights
Depending on your location, you may have rights under GDPR, CCPA, or other applicable laws, including:
- Access: request a copy of all data we hold about you (use Settings → Export).
- Deletion: permanently delete your account and all associated data (use Settings → Account → Delete Account).
- Correction: update your name or email from Settings at any time.
- Portability: export your data in machine-readable format.
- Objection and restriction: object to processing based on legitimate interests, or ask us to restrict it, by emailing us.
- Opt-out of sale: we do not sell personal information. There is nothing to opt out of.
- Complaint: you can complain to your local data-protection authority. We would appreciate the chance to help first at the address below.
California Residents (CCPA)
If you are a California resident, you have specific rights under the California Consumer Privacy Act (CCPA):
- You have the right to know what personal information we collect and how it is used.
- You have the right to delete your personal information. Use Settings → Account → Delete Account.
- We do not sell or share personal information for cross-context behavioral advertising. There is no "Do Not Sell or Share My Personal Information" opt-out mechanism because we do not engage in these activities.
- We do not discriminate against you for exercising your privacy rights.
Children
EmitDream is not directed at children under 13. We do not knowingly collect personal data from anyone under 13. If you believe a child under 13 has created an account, please contact us and we will delete it promptly.
Changes to This Policy
If we make material changes to this policy, we will update the date above and notify users via the app. Continued use of EmitDream after changes constitutes acceptance of the updated policy.
Contact
Questions about this policy? Email us at privacy@emitdream.com.