Privacy Policy
This Privacy Policy describes how Nineva Studios ("we", "us", or "our") handles information in connection with the Screenshot Bro application for macOS, iOS, iPadOS and Windows (the "App"), whether it comes from the App Store, the Microsoft Store or our website. We are committed to protecting your privacy and being transparent about our practices. The Windows version sends less than the others; how it differs is summarized at the end of Section 1. Section 9 covers this website, screenshotbro.app, which is separate from the App.
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) — the one exception is the email address you enter if you buy Pro on our website (Section 4)
- 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. They leave your device only when you turn on iCloud sync, export files, start an upload to App Store Connect or Google Play, or connect an automation client (Sections 3 and 8), and even then they never reach us
The App contains no advertising frameworks and does no cross-app or cross-site tracking. Besides purchase validation (Section 4), the Mac, iPhone and iPad versions 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. The version of Screenshot Bro downloaded from our website also checks our website for updates (Section 7), and a few features you choose to use talk directly to Apple or Google (Section 8).
The Windows version. Screenshot Bro for Windows, from the Microsoft Store or our website, contains no crash reporting and no product analytics: Sections 5 and 6 do not apply to it. It sends data off your PC only to:
- RevenueCat, to check and activate Pro, which is bought on our website (Section 4). The App calls RevenueCat's web API with the anonymous identifier it creates the first time it runs; the request carries your IP address and a standard user agent naming Windows, but no device model or other identifier.
screenshotbro.app, to check for updates — the version downloaded from our website only; the Microsoft Store version is updated by the Microsoft Store (Section 7).- Apple and Google, only for the store uploads you start, and Apple's public lookup service to show your app's icon (Section 8).
It has no iCloud sync and no automatic translation, so the parts of Sections 3 and 8 about those do not apply. Leaving a rating opens the Microsoft Store's own review page, which is governed by Microsoft's Privacy Statement, as are downloads and updates through the Microsoft Store.
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/; on Windows, in%APPDATA%\Screenshot Bro\data, for both the Microsoft Store version and the one from our website) - 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), export files to a location of your choice, upload screenshots and listing text to App Store Connect or Google Play, or connect an automation client to the App (see Section 8).
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, iPads and iPhones.
- 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.
- Like any request, those RevenueCat makes carry your IP address, and its SDK adds technical context: the App version and build, operating system and version, device model, preferred languages, and App Store country. On iPhone and iPad it also sends Apple's identifier for vendor — a random ID that Apple gives our apps on that device, which is not the advertising identifier and resets when all of our apps are removed.
- On iPhone and iPad only, the App lets RevenueCat collect an Apple Ads attribution token through Apple's AdServices framework. RevenueCat exchanges it with Apple to learn whether the App was installed after tapping an Apple Ads (Search Ads) ad, and from which campaign, so we can tell which ads work. This does not use the advertising identifier, does not ask for tracking permission, and is not used to track you across other companies' apps or websites. The Mac version does not do this.
- 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.
Purchases on our website. If you use the version of Screenshot Bro downloaded from our website, or any Windows version including the one from the Microsoft Store, Pro is bought through a checkout page hosted by RevenueCat, with payments processed by Stripe. The checkout collects your email address and payment details; Stripe handles the payment details and we never see your card number. RevenueCat and Stripe share the email address with us so we can send your receipt and activation link and help with refunds or moving a purchase. When you open the activation link, the App links the purchase to its anonymous RevenueCat identifier — no account is created. For refunds or to move a website purchase to another computer, email [email protected].
If you do not make a purchase, RevenueCat still receives the anonymous identifier and technical context above each time the App checks your entitlement and loads the available products, and on iPhone and iPad the Apple Ads attribution token, but no purchase details. Subscription terms, including auto-renewal and cancellation, are described in our Terms of Use.
5. Crash and Error Reporting (Sentry)
This section does not apply to the Windows version.
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 (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. The anonymous app user ID that RevenueCat assigns to every installation, whether or not you buy anything (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, with one exception: if you bought Pro on our website, RevenueCat keeps the email address you entered at checkout with that purchase, and therefore with its anonymous identifier. On Mac, both values are copied by 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. On Mac, iPhone and iPad, the RevenueCat identifier is also shown as RevenueCat ID under Settings ▸ Purchase. The iPhone and iPad versions do not currently display the installation identifier.
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, hosted in the United States, 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)
This section does not apply to the Windows version.
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. Apart from the Apple Ads attribution described in Section 4, 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$screen— one record each time you open one of the App's own windows or full-screen panels, carrying that window's fixed internal name but nothing about what is in it. The complete list of names iseditor,no_project,new_project,projects,settings,help,onboarding,paywall,purchase_celebration,developer_rating(versions before 4.25),export_destination,showcase_export,asc_upload,asc_metadata,asc_experiment_upload(versions before 4.28),google_play_upload,manage_locales, andtranslation_overviewonboarding_started,onboarding_step_viewed,onboarding_completed,onboarding_skippedproject_created(whether from a blank project, a bundled template, or a duplicate),project_deleted,template_appliedscreenshots_imported,locale_added,translation_runexport_started,export_finished,export_failed,export_routed,export_abandonedstore_upload_finished,store_upload_failedpaywall_shown,paywall_dismissed,purchase_completed,purchase_failed,purchase_restoreddeveloper_rating_shown,developer_rating_dismissed,developer_rating_accepted(versions before 4.25),review_prompt_requested(when the App asks Apple to show its standard rating prompt, with what triggered it and how many exports or uploads you have completed),rate_app_tapped(whether from the menu or Settings)testflight_graduation_shown,testflight_graduation_dismissed,testflight_graduation_accepted— only in TestFlight beta buildsmcp_server_toggled,mcp_server_started,mcp_server_start_failed,mcp_session_started,mcp_session_finished,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, the name of one of the automation server's own tools. Each event also carries the name of the window you were on when it happened, taken from the same fixed list above, so that a milestone can be read in context. Alongside them, the analytics service records the App version and build, whether the copy came from the App Store or our website, the platform, your device model, operating system version, language, time zone, screen size, and whether you are on Wi-Fi or cellular — 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 type, select, scroll, or hover over, and no record of the individual buttons, menus, or controls you click — only which of the App's own windows and panels were opened, by the fixed internal names listed above. 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, which is also linked to the anonymous RevenueCat identifier so that a purchase can be attributed to the installation that made it. The analytics library also tags events with a random session identifier that changes when you come back to the App after a break, so that events from one sitting can be read together. The App sets the reported IP address to zero, so PostHog does not derive your city, region, or country from it. If you use the optional local automation server, its events also carry a random identifier generated for that working session and discarded afterwards, so that the tools an agent used can be counted as one session rather than as unrelated events; it is not tied to you or to your installation across sessions. Nothing sent is linked to your name or Apple Account, which we do not hold. If you bought Pro on our website, the anonymous RevenueCat identifier is associated in RevenueCat with the email address you entered at checkout (Section 4); the events themselves never contain it.
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. Software Updates (Direct-Download Version)
The App Store version is updated by the App Store, and this section does not apply to it. The version of Screenshot Bro downloaded from our website uses Sparkle, an open-source updater built into the App, to check for new versions. It periodically downloads a list of available versions from screenshotbro.app, and when you choose to install an update, the update itself.
These requests carry only what any web request does: your IP address and a user agent naming the App and its version. The App does not send Sparkle's optional system profile, so no device model, hardware, or operating system details are included, and no identifier, purchase information, or project data is sent. Automatic update checks are enabled by default; you can turn them off with Automatically check for updates under Settings ▸ About, and still check by hand with Check for Updates…. Sparkle asks before installing an update unless you have chosen to have it install updates automatically.
Windows. The Microsoft Store version is updated by the Microsoft Store and does not check by itself. The Windows version downloaded from our website checks the same way, with the open-source electron-updater: about once a day it downloads a list of available versions from screenshotbro.app, and, when you choose to install one, the installer from downloads.screenshotbro.app. These requests carry your IP address and a standard user agent, but no identifier, purchase information, or project data. You can turn automatic checks off under Settings ▸ About, and it asks before installing an update.
8. Store Uploads, Translation, and Automation
These features send nothing unless you use them, and none of them sends anything to us.
- App Store Connect and Google Play uploads. If you add your own App Store Connect API key or Google Play service account, the App connects directly to Apple's App Store Connect API or Google's Google Play Developer API (signing in through Google's OAuth service) when you open those screens or start an upload. It reads your apps, versions, existing screenshots and, from App Store Connect, store listing text. It uploads the screenshots you choose to send and, to App Store Connect, any listing text you edit in the App — name, subtitle, description, keywords, promotional text, what's new, and support, marketing and privacy policy URLs — including product page experiments when you upload to one. Your credentials are kept in your device's Keychain (on Windows, in a file encrypted for your Windows user account), are not synced, and are sent only to Apple or Google. Apple and Google handle this data as the providers of your developer accounts, under the Apple Privacy Policy and the Google Privacy Policy.
- App Store lookups. To show your app's icon in the App Store Connect screens, the App looks up its bundle identifier in Apple's public iTunes lookup service. Settings ▸ About lists our other apps using the same service, sending your device's region code so names and prices match your store, and TestFlight beta builds use it to check whether a newer version is on the App Store. These requests carry your IP address, as any web request does, but no identifier.
- Translation and background removal. Auto-translate uses Apple's Translation framework, which translates on your device; the system may download language files from Apple the first time you use a language. Background removal uses Apple's Vision framework, also on your device. Your text and images are not sent to us or to any AI or translation service.
- Local automation server (Mac and Windows). If you turn it on under Settings ▸ Automation, the App runs an MCP server that accepts connections only from your own computer (
127.0.0.1) and only with an access token kept on your device (in the Keychain on Mac). AI agents and other MCP clients you connect can read and change your projects, including their text and images, and export screenshots. What such a tool does with that content — including sending it to an AI provider — is governed by that tool and its provider, not by this policy.
9. This Website and Cookies
This section is about visiting screenshotbro.app, not about the App. The App does not use Google Analytics.
Google Analytics. We use Google Analytics 4 to understand how visitors find and use the website: which pages are viewed, the referring site or campaign, the approximate location Google derives from your IP address, the device and browser type, and clicks on the download, App Store and purchase links. We ask Google to anonymize IP addresses. With your consent, Google Analytics sets first-party cookies (_ga and _ga_*) to tell visits apart. When you arrive from a Google ad, the page also records that you clicked a download or App Store link, so we can tell which ads work.
Your choice. We use Google Consent Mode. If you visit from the European Economic Area, the United Kingdom or Switzerland, analytics and advertising storage are off until you choose Accept in the cookie banner; until then, and if you choose Reject, no Google Analytics cookies are set and Google receives only cookieless signals (for example, that a page was viewed) without an identifier. Elsewhere, analytics is on by default. Wherever you are, you can change your choice at any time with Cookie settings at the bottom of every page.
Your choice is saved in your browser's local storage on this device (the consent key), as is the light or dark theme if you pick one (the theme key). Neither is sent to us. Clearing your browser's site data resets both.
Embedded badges. The site footer shows badge images hosted by Product Hunt and TrustMRR. As with any image, your browser requests them from those services, which receive your IP address and browser details.
Google processes website analytics data under its own privacy policy and keeps it for the retention period set in our Google Analytics property.
10. Third-Party Services Summary
| Service | Purpose | Data shared |
|---|---|---|
| Apple iCloud Drive | Optional project sync | Project files (only if user enables sync) |
| RevenueCat | Purchase validation; website checkout; Apple Ads attribution (iPhone and iPad) | Anonymous ID, transaction receipt, device and app version info; on iPhone and iPad, the identifier for vendor and an Apple Ads attribution token; for website purchases, the email address entered at checkout |
| Stripe | Payment processing for website purchases | Email address and payment details entered at checkout (only if you buy on our website) |
| Sentry | Crash and error reporting (not on Windows) | Random 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 |
| PostHog | Product analytics (not on Windows) | Random installation ID and anonymous RevenueCat ID, a random session ID, a fixed list of milestone events (Section 6) with counts, settings values and outcomes, device and app version info |
| Apple App Store | In-app purchases | Standard App Store transaction data |
| Microsoft Store | Distribution, updates and ratings (Windows) | Standard Microsoft Store download and review data; no purchases go through it |
| Google Analytics (website only) | Website usage statistics (Section 9) | Pages viewed, referrer, approximate location, device and browser type, link clicks; cookies only with consent where consent is required |
| screenshotbro.app | Update checks (direct-download version only) | IP address and App name and version, as in any web request |
| Apple App Store Connect API | Screenshot and metadata uploads you start (Section 8) | Your API credentials, the screenshots and listing text you upload |
| Google Play Developer API | Screenshot uploads you start (Section 8) | Your service account credentials, the screenshots you upload |
| Apple iTunes lookup | App icons, our other apps, TestFlight version check (Section 8) | An app's bundle or App Store ID, your region code, IP address |
No other third-party services, SDKs, or frameworks receive data from the App. Automation clients you connect to the local server (Section 8) are your own tools, chosen by you.
11. 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/. On Windows, projects are kept when you uninstall, so that reinstalling or switching between the Microsoft Store and website versions keeps your work; delete%APPDATA%\Screenshot Broto remove them. - iCloud data — disable sync in the App's settings, then remove files via System Settings on Mac, Settings on iPhone or iPad, or iCloud Drive.
- Purchase records — managed by Apple and RevenueCat, and by Stripe for website purchases. You can contact RevenueCat, or email us with the RevenueCat ID shown under Settings ▸ Purchase (on Windows, copied by Settings ▸ General ▸ Copy Diagnostics), to request deletion of the anonymous records associated with your installation and transactions. For a website purchase, email [email protected] to request deletion of the email address kept with it; payment records that the law requires us or Stripe to keep are retained for as long as required.
- 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 on Mac under Settings ▸ General ▸ Copy Diagnostics, or with the RevenueCat ID shown under Settings ▸ Purchase on any device.
- Product analytics — milestone events are retained by PostHog under their standard retention period. Email us with the installation identifier from Settings ▸ General ▸ Copy Diagnostics (Mac), or the RevenueCat ID from Settings ▸ Purchase (any device), and we will delete the events associated with it.
12. Children's Privacy
Screenshot Bro is not directed at children under the age of 13 and does not knowingly collect personal information from children. The only personal information we receive from any user is the email address entered when buying Pro on our website.
13. Security
The App runs inside Apple's app sandbox on macOS, iOS and iPadOS, which restricts file system access and network capabilities. On Windows, its interface runs in a sandboxed process with no direct access to your files or the network. All data at rest is protected by platform storage encryption and iCloud encryption when applicable. The limited data the App does send — purchase validation, crash reports, analytics events, update checks, App Store lookups, and the store uploads you start — is transmitted over encrypted HTTPS connections. The local automation server accepts connections only from your own computer.
14. 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.
15. 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]