Privacy Policy

Effective date: August 21, 2026

This Privacy Policy describes how Nineva Studios ("we", "us", or "our") handles information in connection with the Screenshot Bro application for macOS and iPadOS (the "App"). We are committed to protecting your privacy and being transparent about our practices.

1. Information We Do Not Collect

Screenshot Bro is designed to work entirely on your device. We do not collect, transmit, or store:

  • Personal information (name, email address, phone number)
  • What you click, type, select, or scroll through — the App records no keystrokes, no pointer activity, and no session replay
  • Device identifiers for tracking purposes — nothing the App sends is linked to your Apple Account, your device's identifier for advertisers, or any profile held elsewhere
  • Location data
  • Advertising identifiers
  • The contents of your projects — screenshots, imported images, fonts, or the text you write

The App contains no advertising frameworks and does no cross-app or cross-site tracking. It does include two services that send data off your device: a crash and error reporting service, which sends technical diagnostics when something goes wrong (Section 5), and a product analytics service, which counts a short, fixed list of milestones such as “an export finished” so we can tell which parts of the App people actually reach (Section 6). Neither carries the contents of your work.

2. Data Stored on Your Device

All projects, images, custom fonts, and settings you create in Screenshot Bro are stored locally on your device in the application's sandboxed container. On Mac, project files are stored under:

  • Project data — screenshot layouts, shapes, text, backgrounds, and locale configurations (stored as JSON files in ~/Library/Application Support/screenshot/)
  • Imported images and fonts — copies of files you import into your projects
  • Preferences — appearance mode, default export format, zoom level, and similar settings (stored in UserDefaults)

This data never leaves your device unless you explicitly enable iCloud sync (see Section 3) or export files to a location of your choice.

3. iCloud Sync (Optional)

Screenshot Bro offers an optional iCloud Drive sync feature that you can enable in the App's settings. When enabled:

  • Your project files and imported images are synchronized to your personal iCloud Drive account so they are available across your Macs and iPads.
  • Data is transmitted and stored using Apple's iCloud infrastructure. We do not operate any intermediate servers and have no access to your iCloud data.
  • iCloud sync is governed by Apple's Privacy Policy.
  • You can disable iCloud sync at any time in the App's settings. Disabling sync does not delete data already stored in iCloud; you can remove it via macOS System Settings > Apple Account > iCloud > Manage Storage, or iPadOS Settings > Apple Account > iCloud.

4. In-App Purchases & Subscriptions (RevenueCat)

Screenshot Bro uses RevenueCat to manage in-app purchase validation for the Pro entitlement, which can be unlocked via a one-time lifetime purchase or an auto-renewing subscription. When you start, renew, or restore a purchase:

  • RevenueCat receives the transaction receipt from Apple's App Store to verify your entitlement. This is standard for all App Store purchases, including auto-renewing subscriptions.
  • RevenueCat may process an anonymous app-specific identifier and purchase details (product ID, transaction and renewal dates, entitlement status, and subscription state such as expiration and renewal). No personal information such as your name or email is shared.
  • For subscriptions, RevenueCat is also notified by Apple when a renewal succeeds, fails, is paused, or is cancelled, so the App can keep your entitlement state accurate. We do not see your billing details — Apple handles all payment processing.
  • RevenueCat's handling of data is governed by their Privacy Policy.

If you do not make a purchase, no data is sent to RevenueCat beyond an initial anonymous entitlement check. Subscription terms, including auto-renewal and cancellation, are described in our Terms of Use.

5. Crash and Error Reporting (Sentry)

To find and fix bugs, Screenshot Bro uses Sentry to report crashes, unhandled errors, and cases where the App stops responding (freezes of roughly three seconds or more). An error report is sent only when something actually goes wrong — the App does not record what you click, type, select, or scroll through. Separately, the App sends a minimal record of each app run, described under App run records below, and a short list of product milestones described in Section 6.

An error report contains technical diagnostics:

  • The error or crash itself — the exception type, message, and stack trace showing which code was running
  • A short trail of recent in-app events leading up to the error — for example that the App launched, a project was opened, an export started and finished, or which editing action was performed (“Move Shape”, “Undo”). Each entry carries only counts, settings values, and durations — the number of rows, templates or locales involved, the export format, elapsed milliseconds — never the names or contents of your projects, rows, locales, or files. Repeated identical actions are collapsed into a single entry with a count.
  • If you use the App Store Connect or Google Play upload features, entries for the network requests the App made to Apple's and Google's publishing APIs — the address and outcome only. Query strings and URL fragments, which is where those APIs carry identifiers and access tokens, are stripped before the report leaves your device.
  • Device and app context — device model, operating system version, App version and build number, language and region settings, and memory and storage state at the time of the error, plus the free space on your disk when a save, copy, or export fails
  • Labels describing how the App was configured — whether projects are stored locally or in iCloud, whether Pro is unlocked, whether the local MCP server is running, which App version this installation first ran, and whether the previous run crashed — together with a summary of the open document expressed purely as counts (how many rows, templates, shapes, locales, and images it contains, and which device categories it targets)
  • A random installation identifier, and the anonymous RevenueCat identifier if you have made a purchase (see below)

Identifiers. Reports are tagged with a random identifier that the App generates the first time it runs and stores on your device. It is not derived from your device, your Apple Account, or anything about you — it exists so that repeated crashes from one installation can be recognised as related, and so that a problem you email us about can be matched to the reports we already received. If you have made a purchase, the anonymous app user ID used by RevenueCat (see Section 4) is attached to reports as well, so that a purchase-related bug can be traced to the transaction that triggered it, and the two anonymous identifiers are associated with one another in our analytics tool (Section 6) so that a purchase can be attributed to the installation that made it. Neither identifier is joined to anything that identifies you personally, because we hold no such data. Both values are shown in the App under Settings ▸ General ▸ Copy Diagnostics, alongside your App version, storage mode, language, and project counts; that information is placed on your clipboard and is sent to us only if you choose to paste it into a support email.

App run records. In addition to error reports, Sentry's SDK sends a small record when the App starts and when it stops, so we can tell whether a crash affects one user in ten or one in a thousand. Such a record says only that a copy of the App ran: the App version, whether it was a release or debug build, how long the run lasted, whether it ended normally or in a crash, and an anonymous per-installation identifier generated by the Sentry SDK. It contains no in-app events, no document information, and none of the labels listed above.

What reports never contain. Reports do not include your projects, screenshots, imported images, fonts, or any text you write in the App. The App does not attach screenshots of its own window, view hierarchies, or its log output to reports, and performance tracing is switched off, so no timing data is collected about normal use. We have configured Sentry not to send personally identifiable information such as your IP address or device name. File paths that appear in technical error messages are rewritten before sending to remove your operating system user name — /Users/yourname/… becomes /Users/~/….

Reports from the operating system. On macOS and iPadOS, the App also receives crash, hang, and disk-write diagnostics from Apple's MetricKit — a system service that captures problems the App cannot observe from the inside, such as a freeze while it is quitting — and forwards them to Sentry. On iPadOS, a report is also sent when the system itself terminates the App in the background, for example to reclaim memory.

Crash reporting is enabled by default and is currently not configurable in the App's settings. Reports are transmitted over an encrypted connection to Sentry, which processes them on our behalf under their Privacy Policy. We use this data only to diagnose and fix problems in the App.

6. Product Analytics (PostHog)

To understand which parts of Screenshot Bro people actually reach — how many installations finish the introduction, create a project, get as far as an export — the App sends a short, fixed list of milestone events to PostHog, hosted in the United States. This is the only feature of the App whose purpose is to observe use rather than to serve you directly, so it is described here in full.

What is sent. The complete list of events, as named in the App's source code:

  • app_launched, and the standard install / update / open / background lifecycle records
  • onboarding_started, onboarding_completed, onboarding_skipped
  • project_created (whether from a blank project, a bundled template, or a duplicate), project_deleted, template_applied
  • screenshots_imported, locale_added, translation_run
  • export_started, export_finished, export_failed, export_routed, export_abandoned
  • store_upload_finished, store_upload_failed
  • paywall_shown, paywall_dismissed, purchase_completed, purchase_failed, purchase_restored
  • mcp_server_toggled, mcp_tool_called — only if you turn on the optional local automation server

Each event may carry counts, settings values, durations and outcomes: how many rows, templates, languages or images were involved, the export format, which destination was chosen, whether an upload succeeded or was cancelled, the identifier of one of Screenshot Bro's own bundled templates. Alongside them, the analytics service records the App version and build, the platform, your device model, operating system version, language, time zone and screen size — the same class of technical context as a crash report.

What is never sent. No project, row, or language names. No screenshots, imported images, custom fonts, or any text you write. No file names or file paths. No record of what you click, type, select, scroll, or hover over. No screen recordings or session replay. The App enforces this in code rather than by convention: an event property must be one of a fixed list of names, and any free text on a property outside a small allow-list of Screenshot Bro's own vocabulary is discarded before the event leaves your device.

Identifiers and location. Events are labelled with the same random installation identifier described in Section 5, and — if you have made a purchase — the anonymous RevenueCat identifier, so that a purchase can be attributed to the installation that made it. The App sets the reported IP address to zero, so PostHog does not derive your city, region, or country from it. Nothing sent is linked to your name, email address, or Apple Account, none of which we hold.

Product analytics is enabled by default and is currently not configurable in the App's settings. It is switched off entirely in development and test builds. Data is transmitted over an encrypted connection to PostHog, which processes it on our behalf under their Privacy Policy. We use it only to decide what to build and fix next.

7. Third-Party Services Summary

ServicePurposeData shared
Apple iCloud DriveOptional project syncProject files (only if user enables sync)
RevenueCatPurchase validationAnonymous ID, transaction receipt
SentryCrash and error reportingRandom installation ID, crash and error diagnostics, recent in-app events, app configuration labels and document counts, device and app version info (when an error occurs); a minimal app run record on launch and exit
PostHogProduct analyticsRandom installation ID and anonymous RevenueCat ID, a fixed list of milestone events (Section 6) with counts, settings values and outcomes, device and app version info
Apple App StoreIn-app purchasesStandard App Store transaction data

No other third-party services, SDKs, or frameworks receive data from the App.

8. Data Retention and Deletion

  • Local data — all project data and preferences are removed when you delete the App, or you can manually delete them from ~/Library/Application Support/screenshot/.
  • iCloud data — disable sync in the App's settings, then remove files via System Settings on Mac, Settings on iPad, or iCloud Drive.
  • Purchase records — managed by Apple and RevenueCat. You can contact RevenueCat to request deletion of any anonymous records associated with your transactions.
  • Crash and error reports — reports and app run records are retained by Sentry for a limited period (90 days by default) and then deleted automatically. You can also email us to request deletion of reports associated with your installation identifier, which you can find under Settings ▸ General ▸ Copy Diagnostics.
  • Product analytics — milestone events are retained by PostHog under their standard retention period. Email us with the installation identifier from Settings ▸ General ▸ Copy Diagnostics and we will delete the events associated with it.

9. Children's Privacy

Screenshot Bro is not directed at children under the age of 13 and does not knowingly collect personal information from children. Since we do not collect personal information from any user, no special provisions are necessary.

10. Security

The App runs inside Apple's app sandbox on macOS and iPadOS, which restricts file system access and network capabilities. All data at rest is protected by platform storage encryption and iCloud encryption when applicable. The limited data the App does send — purchase validation and crash reports — is transmitted over encrypted HTTPS connections.

11. Changes to This Policy

We may update this Privacy Policy from time to time. The updated version will be posted at https://screenshotbro.app/privacy with a revised effective date. We encourage you to review this page periodically.

12. Contact Us

If you have questions or concerns about this Privacy Policy or the App's data practices, please contact us:

Nineva Studios
[email protected]