effective november 10, 2026 · version 2026-11-10
privacy policy.
I’m Owen Van Vooren, an individual developer in Minnesota, United States, and the person responsible for the information handling described here. smush is my product name, not a separate company. This policy explains how I handle information for smush and trysmush.app. Contact me at hi@trysmush.app.
the short version
Cursor processing happens on your Mac. I do not receive cursor images, pointer movements, or app settings automatically. I do not add advertising trackers or analytics scripts to this website, sell personal information, or share it for cross-context behavioral advertising.
what stays on your Mac
smush processes cursor images and pointer activity on your Mac to animate shape changes. It checks the active app and window layout so it can yield to menus, dialogs and capture tools. It does not record screen images, document contents or a history of your activity. Cursor activity and window information are not sent to me.
smush recognizes your configured shortcuts and macOS screenshot shortcuts without recording or transmitting typed text. To animate cursors across apps, smush asks you to allow Accessibility access in System Settings. macOS 27 calls this permission Device Control and Data Access. smush checks that the permission works and uses it to recognize interface elements such as dialogs. These checks stay on your Mac. Preferences, shortcut combinations and your in-app license acceptance also stay on your Mac. Trial and activation records use local storage, including Keychain, and may remain after you delete the app.
The app has a voluntary bug-report sheet. It does not send reports or crash logs automatically. If you enable Launch at login, macOS registers smush for your user account. You can turn it off in smush or System Settings. This setting is not sent to me.
software updates
In builds configured for updates, smush requests release information and update files from its website and download service. Cloudflare processes ordinary connection information, including IP address, request headers and timing. Requests identify the app and its version. Optional system-profile reporting is disabled. Public update requests do not include licensing credentials, cursor activity or app settings. Private beta updates authenticate your invitation as described below.
You control automatic update checks and installation in smush’s update settings. These choices stay on your Mac. Builds without an updater configuration do not use the updater. Opening the bug-report sheet also checks public release information to show whether an update may already fix the issue. A failed check does not prevent you from sending a report.
visiting this website
Cloudflare hosts the site, APIs, and download files. It processes request information such as IP address, requested URL, browser headers, and timing to deliver and protect the service. The service does not intentionally copy raw IP addresses into report or licensing records. Infrastructure providers can process or retain request information under their own terms; this is not a promise that no network logs exist. See Cloudflare’s privacy policy.
The site’s own code does not use advertising cookies, browser fingerprinting, or browser storage to track visits. Where the cursor demo is available, it responds to pointer activity locally in your browser without sending those movements to me. My code does not change its behavior in response to Do Not Track or Global Privacy Control signals because it does not perform cross-site tracking or sell or share information for targeted advertising. A separate site you visit through a link, including hosted checkout, has its own practices.
Website footers embed a Stripe Climate badge. Loading it makes a request to Stripe, which receives ordinary connection information such as your IP address and browser headers. The embed does not send the referring page URL. See Stripe’s privacy policy.
contacting me or sending a report
Reports store your category, summary, description, app/macOS versions, optional email address, report ID, submission time, and review/resolution status in private storage hosted by Cloudflare. The website lets you enter version details yourself. The app shows its version/build and macOS version before sending and includes them automatically only when you choose Send report. If smush shows a trial support ID, the in-app trial help form displays it and includes it when you send the report. I use that ID to find the matching trial record. Other than the details shown in the form, the report contains what you type. It does not attach screenshots or logs. The app saves submission timestamps and temporary cooldown deadlines in local preferences to limit repeated requests; report drafts stay in memory until sent or cleared. I use it to respond and investigate issues. Email also contains your address, message, and anything you attach, handled through my email service. Do not include payment credentials, license keys, or unrelated sensitive information.
For report spam prevention, the server derives a keyed hash from your IP address. It is a pseudonymous identifier, not anonymous data. It becomes eligible for removal one hour after submission; an hourly cleanup job clears eligible values. Reports are scheduled for deletion at 24 months from submission, or 12 months after their current resolution date while they remain resolved, whichever comes first. Jobs can run later than the eligibility time. Reopening a report removes the resolution-based deadline, but not the 24-month deadline.
I keep email and manually shared support files while needed for the request and related legal or security obligations, and review them when the request is resolved. Automated report-form deadlines do not apply to a separate mailbox or files you send me. Providers’ recovery copies can persist under their own retention practices.
test purchases, licenses, and recovery
This local preview uses test-mode Stripe Checkout and a local licensing database. Use Stripe test cards here. Sandbox keys work with the sandbox build.
The licensing code stores order/session/payment references, purchase email and checkout name when supplied, payment/refund/dispute status, order time, and agreement revision/time. I receive purchase details from Stripe; the smush server does not receive your full card number or card security code through this integration. It stores encrypted license keys and keyed lookup hashes. Activation records contain a random installation public key, device display name and model, activation identifier, and activation/deactivation times. Signed requests use timestamps and one-time nonces to prevent replay. Device names can contain personal information. The app does not send a hardware serial number or hardware UUID.
Activation and device-list refresh send installation proof and device name/model. Deactivation and removal send proof and the relevant activation identifier. Opening the License tab can refresh this information. A saved device list remains on your Mac for offline use. Friends-and-family license sharing is permitted within the three-Mac limit. Anyone with a valid key and an activated installation can see the checkout name used as the purchaser label and active device names/models on that license, and remove activations. Share a key only with people you trust, and choose a generic Mac name if you do not want to share a personal device name. The installation private signing key stays in Keychain; signed request payloads contain the license key and are not encrypted merely by being signed.
A first-party HttpOnly cookie named smush_claim ties the order to the browser that started checkout. It is sent only to API paths and, on the public site, only over HTTPS. The browser cookie expires after 24 hours. The server separately stops honoring the claim 24 hours after the order starts, even if the cookie was refreshed. Blocking or clearing it can prevent retrieval in that browser. Expiry does not delete the order. Session storage keeps a pending checkout identifier and agreement revision so a reload can resume checkout. Clicking “copy key” writes the key to your clipboard. Licensing rate limits use keyed IP-derived hashes where available.
Purchase and recovery messages are encrypted in a private local outbox. By default, this preview does not email them. Configured email tests use Resend and redirect to the configured test inbox. The local licensing database has no automated record-deletion schedule. Test records remain until I remove them or reset local storage.
hosted license recovery and email
The recovery page checks the email you submit against purchase records in private storage hosted by Cloudflare. The response is the same whether or not it finds a match. An eligible record produces a one-use recovery code that expires after 15 minutes. The service stores a code hash, license reference, expiry and use times, and encrypted message drafts and delivery requests. The email contains a code you paste into the recovery form. Keys and codes stay out of URLs. Private responses are not cached.
Resend processes the destination address, sender/reply address, message text and license key or recovery code needed to deliver the requested message. Signed delivery events provide message IDs and delivery/failure status. Open and click tracking are disabled. No cursor activity is sent to Resend. See Resend’s privacy policy. The hosted preview uses a separate test database and sends messages only to the configured owner test inbox; preview keys cannot activate the installed beta or paid app.
Keyed IP/email-derived hashes limit recovery requests. Their counters become eligible for removal after one day. Expired recovery-code rows become eligible for removal one day after expiry. Message contents for terminal sent/expired/blocked email rows become eligible for removal after 30 days; non-secret row/message identifiers remain to prevent duplicate sending. Unresolved failed or uncertain messages remain available for support review. These cleanup jobs run hourly and can run after eligibility. Underlying license/purchase records remain while needed to provide the license, recovery and support and to meet applicable legal obligations. Providers can retain their own operational or recovery copies under their policies. Contact me about access, correction or deletion.
free trials
The 14-day trial starts automatically when you first open smush and can run offline. No account, email address or payment card is required. After you accept the license, smush checks eligibility with the trial service and Apple when a connection is available. These checks help prevent repeated trials and recover the original deadline after a reinstall; reconnecting does not restart the trial. A trial found to have been used already may stop. Use Get trial help in the app or the trial help form if you need help with a reset, secondhand Mac or unavailable verification service.
Trial checks use a random installation identifier, temporary Apple verification data and basic request information. Cloudflare stores pseudonymous installation records, trial dates and recovery/support status. Raw Apple verification data is not stored, and trial checks do not send cursor activity, document contents, computer names or hardware serial numbers. Trial and support records remain while the service operates. Temporary security records become eligible for removal within a day and are cleared by scheduled cleanup. Apple may retain an eligibility record after local data is removed.
private beta invitations
An invitation key authorizes private beta downloads, updates and activation. Browser access uses a first-party session cookie that lasts up to seven days; you can remove it by locking the beta page. Activation sends a random installation identifier and the Mac’s name and model. You can view and remove activations associated with your key. A saved activation permits offline use; an online check can detect revoked access or a removed activation. No payment or email address is required for an invitation.
Private beta update requests authenticate your invitation and include the app version and ordinary connection information. Optional system-profile reporting is disabled. You control automatic checking and installation in smush’s update settings. Cloudflare hosts beta records and download files. Expired sessions and temporary abuse-prevention records are cleared by scheduled cleanup; security counters become eligible for removal after one day. Invitation and activation records remain while the beta operates. Contact me about removal.
why I use information and who receives it
I use support information to handle your request, request metadata to secure and operate the site, and licensing information where configured to provide activation and enforce the license. Where a legal basis is required, these purposes rely on fulfilling your request or contract, legitimate interests in support and security, and any applicable legal obligation. Acceptance of this policy is not permission for unrelated processing.
Report descriptions are needed to investigate a form submission; the email and version fields are optional. You can submit without an email, but I cannot reply directly through the form without contact details. Checkout and activation, where configured, need purchase and installation information to deliver and manage a license. Automatic trial and receipt checks decide whether animations are available; these checks do not profile you for advertising. Contact me if you think a licensing decision is wrong.
Hosting and email providers receive information needed for their work; Stripe receives information when you use its checkout. I may disclose information where reasonably needed to comply with law, address fraud or security incidents, or establish or defend a legal claim. I limit disclosure to the relevant purpose. Providers may process information outside your country; I do not promise a particular storage country or control of every copy held independently by a provider.
your choices and rights
You can use a generic Mac name, avoid optional report fields, stop using the app, remove activations where configured, and contact me about your information. Depending on applicable law, you may have rights to access, correct, delete, or obtain a copy of personal information, restrict or object to processing, appeal a decision, and complain to your data-protection regulator. Email hi@trysmush.app; if you believe I wrongly declined a request, reply asking for a review. I may reasonably verify your identity. I will respond within the time required by applicable law.
Deletion is subject to records I must lawfully retain or need for an ongoing dispute, security issue, or legal obligation. I will explain a refusal where required. Removing license data can affect recovery and future activation; I will explain that consequence before carrying out a deletion that would do so. A deletion request does not itself waive a paid license or consumer rights.
security, children, and changes
I use measures appropriate to the information, including limited-access storage and encryption for stored license keys and delivery messages. No system can guarantee perfect security. smush is not directed to children under 13, and I do not knowingly collect their personal information. A parent or guardian can contact me about a child’s information.
I will date policy changes and provide additional notice or obtain consent when required. An update does not automatically authorize materially different uses of information already collected.