Privacy PolicyOccasions PressUpdated August 17, 2026
The fine printPrivacy & AI reportingOccasions Press

Occasions Press

Privacy Policy & AI Content Reporting

Privacy, plainly printed.

This policy explains how Occasions Press handles data when you create, edit and export personalized AI-generated newspaper front pages, how optional usage analytics works, and how to report AI-generated content.

In short: drafts are stored locally on your device; the text details and any photos you add are sent to our Cloudflare Workers and on to third-party AI providers only when needed to generate your newspaper. While a newspaper is printing, those details and the finished image are held briefly on our EU servers so a dropped connection cannot lose it, then deleted — within 72 hours at the very latest. Optional app-usage analytics is off until you allow it and never includes your newspaper content. Separately, our credit system calculates personless aggregate totals about free trials and purchases without sending installation identifiers to PostHog. We do not sell personal data. Questions or content reports: support@occasionspress.com.

Email us / report content

1. Who we are

Occasions Press is an app for creating personalized, AI-generated newspaper front pages. For privacy questions or to report generated content, contact support@occasionspress.com.

2. Information you provide

The app may ask you to enter recipient details such as name, nickname, date, city, occasion, tone, traits, memories, notes and related story details. You may also choose photos from your device to be placed inside the newspaper.

3. Local storage on your device

The app saves draft and completed newspaper projects locally on your device using Capacitor Preferences. There is no user account system and no cloud archive. If you delete a project in the app, it is removed from local app storage.

4. AI text generation

To generate the newspaper text, the app sends a prompt containing the text details you provided to our Cloudflare Worker. The Worker calls Kimi/Moonshot on the server side. The Moonshot API key is stored only as a Worker secret and is never shipped in the Android app.

Per Kimi's privacy policy, Moonshot may use prompts submitted to their API for purposes including training and refining their AI models. For this reason we recommend avoiding highly sensitive personal details in the prompt fields. Generated text is returned to your device, where you can review and edit it before sharing or exporting.

5. Photos and AI image generation

When you add photos to a newspaper, those photos are uploaded to our Cloudflare Worker and forwarded to a third-party AI image provider, which renders your newspaper as a generated image that incorporates them. In other words, photos you add do leave your device as part of generating the final newspaper image. Photos are also kept in local app storage as part of a saved project until you delete that project or uninstall the app.

Because photos are processed by a third-party AI provider, please only add photos you are comfortable sharing for this purpose, and avoid uploading photos of other people without their awareness.

Temporary storage while your newspaper is printing. Printing a newspaper takes up to a few minutes, and a phone can easily lose its connection in that time — by locking the screen, switching apps, or moving between Wi-Fi and mobile data. So that this does not lose the newspaper you paid for, printing runs on our servers rather than on your phone, and two things are stored temporarily in Cloudflare R2 storage in the European Union:

  • The details you submitted for that print, including your photos, so the print can be retried if it fails part-way. This is deleted as soon as the newspaper finishes rendering, normally within a couple of minutes.
  • The finished newspaper image, so your device can collect it when it reconnects. It is deleted immediately once your device confirms it has saved it — usually within a minute or two.

If a device never comes back to collect a newspaper (for example the phone was switched off), the finished image is deleted automatically within 72 hours at the latest. We do not keep a copy after that, and there is no cloud archive of your newspapers: your device remains the only lasting store.

6. Worker logs, identifiers and security

Our Worker uses server-side API keys, shared-secret request protection, rate limiting and prompt/size limits. Worker logs are intended to contain operational metadata (timing, token counts, prompt length, response length, approximate image sizes, parse status), not the raw text of your prompts or generated newspaper.

To prevent abuse of our AI generation service, the app generates a random installation identifier when you first open it and sends it with generation, balance and purchase-validation requests. We use this identifier to enforce per-install generation limits, attribute prepaid credits to your installation and, within the credit database, calculate aggregate free-trial-to-purchase statistics. It is not derived from device hardware, is not used for advertising or personalization, is not included in optional app-usage events, is not sent to PostHog, and is not shared with our AI providers.

For aggregate billing statistics, the installation identifier is used only inside the Cloudflare D1 credit ledger to compare completed free trials with validated purchases. The scheduled result contains totals such as completed free trials, purchasing installations, installations that have not purchased, and 7-day or 30-day conversion counts. No installation identifier, hash, purchase token or order identifier leaves the billing system in that result, and we do not expose an installation-level list or use it to contact, target or personalize anyone.

Kimi text-generation quota counters for an inactive installation expire after 90 days. Credit, purchase, refund and anti-abuse ledger records may be kept longer where needed to preserve a credit balance, prevent a purchase from being granted twice, reconcile refunds or chargebacks, protect the service, and meet legal or accounting obligations.

7. AI providers and infrastructure

We use Cloudflare to host the Workers and storage that receive generation, credit and optional analytics requests. Cloudflare acts as a service provider and may process connection and operational metadata under its applicable service terms and retention settings. The temporary generation storage described in section 5 is located in the European Union. For AI text we use Moonshot (the company behind Kimi), which processes prompts on its servers and may use them to train and improve its models. For AI images we use third-party AI image providers (currently Google and OpenAI), which process the text details and photos you submit in order to render the newspaper image.

If you allow optional usage analytics, our dedicated Cloudflare analytics gateway validates a strict list of permitted event fields before forwarding them to PostHog Cloud EU. PostHog acts as our product-analytics service provider and processor. The same gateway may forward a daily personless billing snapshot containing aggregate counts only; the installation-level comparison remains inside D1. We do not sell your personal data or use analytics for advertising.

8. Payments and in-app purchases

The app is free to download. You can build and preview a newspaper for free, and new installations may include one limited free newspaper generation. Generating additional newspaper images uses prepaid credits, which you can buy as one-time in-app purchases through Google Play Billing. Different image quality levels spend different numbers of credits. Google Play handles the payment and any applicable VAT; we do not receive or store your full payment card details. The app does not have user accounts, subscriptions, shipping or a cloud archive. This website does not use tracking cookies.

9. Optional usage analytics and aggregate billing statistics

Usage analytics is optional and is off until you make an affirmative choice in the app. If you choose Allow usage analytics, we use your consent to understand which screens and features are used, whether generation and export steps succeed or fail, which non-content options are popular, and safe error categories. We also process event timestamps, app version and build, platform, and temporary random event, session, journey or operation identifiers so related steps can be counted in aggregate funnels.

We do not send names, nicknames, dates, cities, traits, memories, notes, prompts, photos, generated text or images, newspaper files or file names, purchase credentials, order identifiers, advertising identifiers, or the installation identifier used for credits and abuse prevention to PostHog. We do not create a persistent PostHog profile, use session replay, record screen contents, infer your country from the analytics request, or use analytics for advertising or personalization.

Separately from optional app-behavior analytics, we rely on our legitimate interests in understanding whether the free trial supports a sustainable paid credit service to calculate limited aggregate billing statistics inside the credit ledger. This processing uses data already required to deliver free trials, validate purchases, preserve balances and reconcile refunds. We limit the output to personless totals, do not send the installation identifier or any derivative of it to PostHog, do not use the result for individual decisions or targeting, and restrict access to the underlying billing records. You may object to this processing by contacting us.

You can refuse optional analytics without losing any app feature. You can later allow or withdraw consent from Privacy & Analytics in the app. Withdrawing consent stops new app-behavior events and removes any analytics events waiting locally to be sent; it does not affect essential generation, security, Play Billing, credit records or the personless aggregate billing calculation described above. Optional product-analytics events are retained for no more than 12 months, after which they are deleted or converted into statistics that no longer contain the temporary event identifiers.

10. Google Play information

Google Play separately provides developers with store and service information such as installs and uninstalls, acquisition and country aggregates, ratings and reviews, purchase and revenue reports, and Android crash and ANR statistics. This information is governed by Google's terms and your Google settings. We use it to operate and improve the app. We do not join Google Play information to optional PostHog sessions or use it to build individual user profiles.

11. Your choices

You can edit generated text before sharing it, delete local projects in the app, and change optional usage analytics from the app's Privacy & Analytics screen. You can also contact us to ask privacy questions, object to aggregate billing-statistics processing, or report generated content concerns at support@occasionspress.com.

12. Reporting AI-generated content

Occasions Press uses AI to draft playful newspaper copy and images. Generated content should always be reviewed by a human before sharing. If output is harmful, offensive, misleading, defamatory or otherwise unsafe, please report it.

What to report: harassment, hate, threats, sexual exploitation, self-harm instructions, illegal instructions, defamation, impersonation, exposure of private personal information, or other harmful material.

How to report: email support@occasionspress.com with the subject line "AI Content Report" and a short description of what went wrong (occasion and approximate time help).

Report AI content

What happens next: we review reports to improve prompts, safety rules and app behavior. If a report indicates immediate risk or illegal material, we may take additional action consistent with applicable law and platform policies.

13. Children's privacy

Occasions Press is not directed at children. We do not knowingly collect personal information from children. If you believe a child has provided information through the app, contact us at support@occasionspress.com and we will take steps to remove it.

14. Your rights in the EU/EEA and UK

If you are in the EU/EEA or UK, you may have rights under GDPR/UK GDPR including access, correction, deletion, restriction, objection and portability of personal data we hold, and the right to withdraw consent at any time. Because the app does not use accounts and stores most data locally on your device, you can exercise many choices directly in the app — by editing or deleting projects, changing the analytics setting, or uninstalling the app.

For data outside your device, or to object to processing based on our legitimate interests, email support@occasionspress.com. We will respond within the period required by applicable law. Optional analytics uses no account or persistent analytics identifier, so we may be unable to connect already-stored temporary events to you unless you can provide information that lets us locate them. Aggregate billing snapshots contain totals only and cannot be traced back from PostHog to an installation.

15. How long we keep data

Projects you create are kept on your device until you delete them in the app or uninstall the app; your device is the only lasting store for your newspapers. While a newspaper is being printed, the details submitted for that print (including photos) and the finished image are held temporarily on our servers as described in section 5 — the submitted details until rendering finishes, and the finished image until your device confirms it has saved it, and in any case no longer than 72 hours.

Optional product-analytics events and aggregate billing snapshots are kept for no more than 12 months. Kimi quota counters expire after 90 days of installation inactivity. Credit and purchase ledger records are retained as described in section 6. Operational Worker logs are retained according to our Cloudflare configuration and applicable service limits. Prompts and photos sent to our AI providers are retained under those providers' policies; Moonshot may use submitted prompts to train its models.

16. Changes

We may update this policy as the app changes. Material changes should be reflected here before new app versions are submitted to app stores.