Privacy Policy — DM Notes
Last updated: October 11, 2026
This policy explains how DM Notes ("the app", "we") handles your information, including the features in version 1.0.6.
At a glance
- No app account or sign-up is required.
- Campaigns, notes, images and recordings are stored on your device. Version 1.0.6 does not sync campaign data through iCloud.
- AI features send the content needed for your request through Cloudflare to Anthropic for text generation, or to OpenAI for cloud transcription and portraits. This also applies to the first free recap.
- Apple processes payments. RevenueCat handles subscription validation and subscription analytics using an anonymous app user identifier.
- Product analytics is enabled by default. You can turn it off in the app's Settings.
- Publishing a player share link makes the shared content available to anyone with that link until you revoke it.
Campaign data on your device
The app stores campaigns, NPCs, locations, plot threads, sessions, characters, encounters, notes, image attachments, voice recordings and app preferences locally. Ordinary local storage does not publish your campaign or send its contents to our analytics service.
Version 1.0.6 uses an on-device database and does not provide iCloud campaign sync. Keep an exported copy of important campaign data before deleting the app. Device backups, if enabled through Apple, are controlled by your Apple settings.
AI requests
When you request a cloud AI feature, the app sends the relevant content to a Cloudflare Worker we operate, which forwards it to the provider for that feature:
- Session recaps and NPC or loot suggestions — Anthropic: the session notes or transcript needed to produce the recap and suggestions.
- Name suggestions, backstories, session preparation, tactical tips and encounters — Anthropic: the relevant campaign, character, combat or form inputs for that feature.
- Cloud transcription — OpenAI: the audio recording you choose to send for transcription.
- Portraits — OpenAI: the relevant name, role, traits and other image-generation inputs.
On supported devices and languages, you can choose on-device transcription using Apple's speech technology. That transcription keeps the audio on your device; a speech model may need to be downloaded first. Requesting an AI recap sends the resulting transcript to Anthropic through our backend. If on-device transcription fails, the app does not automatically upload your recording for cloud transcription.
This processing happens when you request the feature, including a free recap. Our application code does not log the contents of AI prompts or responses. Cloudflare, Anthropic and OpenAI process technical request information to operate their services; provider retention is governed by their applicable policies. AI requests do not have a guarantee of zero retention. See Anthropic's API data retention documentation and OpenAI's API data controls.
For access checks and abuse prevention, requests may also include a randomly generated installation identifier and an anonymous RevenueCat app user identifier. Our backend checks subscription eligibility and stores usage counters associated with hashed installation and network identifiers. These counters do not contain note text or AI responses.
Purchases and subscriptions
Apple processes in-app purchases. We do not receive your payment card details or Apple Account credentials.
RevenueCat receives purchase and subscription information associated with an anonymous app user identifier. We use this information to validate purchases, restore access, check eligibility for Pro AI features and understand subscription performance. The app does not send RevenueCat a name, email address or advertising identifier.
You can manage or cancel your subscription in your Apple Account's subscription settings. Deleting the app does not cancel a subscription.
Product analytics
Product analytics is enabled by default and can be turned off in the app's Settings. We send product events to our Supabase backend to understand feature use and reliability. Events include a random installation identifier, app version, iOS major version, timestamps and limited event properties. Examples include creating a first campaign or note, using an AI feature and purchase outcomes.
This analytics channel does not send campaign names, note text, audio recordings, AI prompts or payment card details. We do not use advertising identifiers or use these events for cross-app advertising tracking.
Turning analytics off stops this product event channel. Installation and RevenueCat identifiers may still be used for subscription checks, the free recap allowance and abuse prevention. Disabling analytics does not automatically delete previously received events.
Optional player share links
When you publish a player share link, the app sends the share payload to our Cloudflare backend. It includes campaign details, the party roster, session recaps, and NPCs, locations and plots marked as visible to players. Private campaign notes, session notes and plot beats are not included in the share payload.
Anyone with the link can view the published page without an account. You can revoke the link in the app. Revoking removes the hosted page, but cannot remove copies that another person has already saved. Keep the app's campaign data until you have revoked any links you want to remove.
Permissions
Microphone: used when you record a session. You can revoke microphone permission in iOS Settings.
Photos: used to add an image you select, such as an NPC portrait or location map.
Notifications: optional local session reminders when you enable them. We do not send marketing push notifications.
Retention and deletion
- Local content: remains on your device until you delete it or delete the app. Export important data first.
- Published share pages: remain on our backend until revoked or otherwise deleted. Deleting the app does not revoke a link.
- Product events and usage records: are stored for product analysis, service operation and abuse prevention. Contact us to request deletion of records associated with your installation.
- Purchase records: Apple and RevenueCat retain records under their applicable policies and obligations. Uninstalling does not automatically delete these records.
- Provider logs and AI processing: retention depends on the provider, service and applicable settings; see the provider policies below.
To request access, correction or deletion of data we hold, email support@dmnotes.app. Because the app uses anonymous identifiers, locating a record may require the corresponding installation or subscription identifier. Do not send passwords or payment card details.
Service providers
- Apple — app distribution, payments, TestFlight and on-device speech technology.
- Cloudflare — website hosting, AI request routing, access checks, usage counters and published share pages.
- Anthropic — processing requested text generation, including session recaps and NPC or loot suggestions. API content processing is governed by its commercial terms and API data retention policies.
- OpenAI — processing requested cloud audio transcription and portrait generation.
- RevenueCat — subscription validation, restoration and subscription analytics.
- Supabase — storage and processing of product events.
Children's privacy
DM Notes is not directed at children under 13. We do not knowingly collect personal information from children under 13. If you believe a child has provided information to us, contact us to request deletion.
Your choices and rights
You can turn off product analytics in Settings, choose not to use AI features, revoke player share links, delete local content and manage device permissions. Depending on your location, you may have rights to access, correct or delete personal data, object to certain processing, withdraw consent where applicable, or complain to your local data protection authority. Contact us for requests concerning data we hold.
Policy updates and contact
We will update this page when our data practices change. The date above identifies the latest revision.
DM Notes: support@dmnotes.app