Regexcellent

Privacy policy

Privacy policy for Regexcellent.

This policy covers Regexcellent for iPhone, iPad, Mac, Apple Vision Pro and Android, published by Mihail Duchev. For support or privacy questions, contact support@regexcellent.app.

The native Apple Vision Pro edition follows the same local-storage, optional iCloud-sync and optional App Store-tip practices described for Apple devices below. Availability depends on your store and region.

Which version this policy describes

The sections marked version 1.3 describe version 1.3 testing candidates and later installed versions. They do not announce a public release or change the behavior of an installed earlier version.

Version 1.0 stores app data locally and has no cloud sync or purchases. Version 1.0.1 introduces optional sync and Apple tips. Android version 1.0.3 adds an optional link to Ko-fi for tips. Availability of this update depends on your store and region. The sections below marked version 1.0.1 also apply to later versions with these features; those features do not change the behavior of an installed version 1.0.

All versions keep the course, reference and regex engine usable offline. The publisher does not operate a Regexcellent account server, advertising service or analytics backend, and does not sell app data or use it to target advertisements.

Local app data

The app stores completed lessons and challenges, practice days and streaks, saved patterns, unfinished Playground patterns and sample text, matching flags, onboarding state, appearance choice and reminder preferences in local app storage. Version 1.0 does not send those items to the publisher or a sync service. Sync is off until you enable it. Earlier sync builds exclude unfinished Playground drafts, onboarding, appearance and reminder preferences. Newer builds with expanded sync add supported appearance and editor preferences; unfinished drafts, onboarding and reminder settings still stay local.

Local copies remain until you change or remove them, clear the app's data or remove the storage through your operating system. Android excludes app data from system cloud backup and device transfer; this is separate from the optional Drive sync in version 1.0.1. On iPhone/iPad, deleting the app normally removes its local container, while offloading keeps data. Apple system backups may retain earlier copies. On Mac, removing the app may leave its container, preferences and backups. Restoring a system backup may restore app data.

Workspaces and local practice records — version 1.3

A saved workspace can contain its name, regular expression, sample text, matching flags, execution engine and matching mode, replacement template, notes, tags, favorite status, creation/update dates, and test cases. Test cases can include input text, expected capture values and expected replacement output. These fields are stored locally and, if you enable optional sync, are included with the saved workspace in your private iCloud database or Google Drive app-data folder described below. No publisher backend receives this content.

Newer builds with expanded sync include learning aggregates such as mastery, hint use, review schedules and best solutions, plus appearance, editor-size and match-palette preferences. Earlier builds keep those records locally. Recent workspace history, unsaved Playground drafts, notification settings, onboarding, account authorization and other device controls remain local. Completion records and practice days remain part of optional sync. Expanded sync applies only to installed builds that provide it and does not announce a public release. Removing local storage can remove the device-only records; a saved workspace file does not back up the entire app.

Regular-expression evaluation runs locally. Selecting JavaScript uses an isolated WebKit worker on Apple or AndroidX JavaScriptSandbox on supported Android devices. Expressions, input text and replacement templates are not sent to a server for matching. Execution limits terminate slow JavaScript operations. Android JavaScript availability depends on compatible System WebView support; the native engine remains available offline.

Optional iCloud sync — version 1.0.1

If you enable iCloud sync, Regexcellent sends learning/practice progress and saved patterns, including their names, sample text and matching flags, to the app's private database in your iCloud account. It also uses record identifiers, edit/deletion information and synchronization state to combine changes across your Apple devices. The app uses an iCloud account identifier to keep each account's local data separate; it does not request your Apple Account email or password. Private CloudKit data is not visible to the publisher through the developer portal. Apple's service and storage rules apply. See Apple's Privacy Policy and private CloudKit storage.

Sync works between your iPhone, iPad, Mac and Apple Vision Pro using the same Apple Account; it does not connect to Android or Google Drive. Regexcellent uses the one Apple Account signed in to iCloud in this device's system settings. When you enable sync for the first time, it adds your existing local progress and saved patterns to that account's iCloud data. If you later change the Apple Account in system settings, sync turns off and keeps the old account's local data separately. Enabling sync for the newly signed-in account uses a separate workspace without automatically importing the original local data or the old account's data. A confirmed sign-out or account change returns to the original local workspace. Turning sync off without changing accounts keeps the connected account's local copy and its cloud data. CloudKit can use Apple's background push service to notify the app that sync data changed; this is separate from optional practice reminders, and no publisher-operated push server receives your learning data.

Optional Google Drive sync — version 1.0.1

If you connect Google Drive, Regexcellent reads and writes learning/practice progress, saved patterns with names/sample text/flags, and edit/deletion identifiers in a private app-data folder in the Google account you select. It requests only access to its own hidden application data, not your ordinary Drive documents, email messages or contacts. The folder is separate from Android system backups. Google explains this storage in its app-data documentation.

Sync works between Android devices using the same selected Google account; it does not connect to Apple devices or iCloud. The app receives the selected account's email and Drive account identifier to show and verify the connection, and stores those values, the sync preference and last-sync time in private app settings. A random installation identifier distinguishes each device's sync snapshot. Authorization tokens are used in memory for requests to Google and are not written into the app's saved sync settings or sent to the publisher. Google handles authorization and cloud requests under its Privacy Policy.

Disconnect stops the app's sync work and retains your local data, last-account settings and existing Drive data. It does not itself revoke Google's authorization grant. You can separately remove that grant in your Google Account's connected-app settings. Connecting another account requires confirmation before retained local learning data is merged into it.

Information received through Google APIs is used only to provide the sync feature you choose. It is not used for advertising, sold, or transferred to a publisher backend. Regexcellent's use of Google user data follows the Google API Services User Data Policy and applicable Google Workspace Limited Use requirements.

Removing sync data — version 1.0.1

Deleting a saved pattern removes it from the visible library and, when sync is enabled and succeeds, sends a deletion marker so another device will not restore it. This is a synchronized removal, not a promise that every stored byte is immediately erased. Apple's deletion record retains the pattern's content, and older Android installation snapshots may retain content until they are replaced or removed. Local sync metadata, deletion markers and provider-managed copies may also remain.

Turning sync off, revoking access or uninstalling the app does not by itself erase cloud data. To remove cloud copies, turn sync off on every device and use Apple's iCloud app-storage controls or Google's app-data controls for Regexcellent. Remove local app storage and relevant system backups separately if you want a complete reset. Re-enabling sync with retained local data can upload that data again. There is no in-app bulk cloud-erasure command or fixed provider-retention period promised. Contact support for guidance before deleting data; the publisher cannot remotely erase your private provider account or device backups.

Optional Apple tips — version 1.0.1

Apple versions can offer optional one-time tips through the App Store. Tips unlock nothing and every feature remains free. Apple handles checkout and payment details. The app receives StoreKit product/price information and transaction identifiers and verification/revocation status to complete the purchase and handle interrupted transactions. It does not receive payment-card details, create a publisher-held purchase profile or send receipts to a publisher server. Apple retains purchase records under its own terms and privacy rules.

Optional Android tips — version 1.0.3

Progress includes a link to the developer’s Ko-fi page. It opens your browser for an optional one-time tip processed through Stripe. Tips unlock nothing. The app sends no progress, patterns, account identifiers or payment details to Ko-fi, and does not receive payment confirmations or store a tipping history. There is no Ko-fi or Stripe SDK or embedded checkout in the app.

Ko-fi and Stripe process information you provide on their websites, such as your email, display name, message and payment information, along with browser/network information under Ko-fi’s Privacy Policy and Stripe’s Privacy Policy. The publisher can receive support messages and transaction/contact information made available by these services to handle tips, refunds and required accounting. Retention follows those purposes, applicable legal requirements and provider policies; uninstalling the app does not delete their payment records. Contact support for questions about records held by the publisher and the providers for their records. Do not put private regex samples or passwords in a tip message.

Workspace files and result sharing — version 1.3

You can choose text or workspace files through the operating system's file picker, preview workspace imports, and export or share workspace files and extracted results. Exported workspace files include their saved content, including sample text, notes and test cases. Review that content before sharing it. The app has no hosted sharing service and sends files only to the destination or recipient you select through the system controls.

A file provider or recipient you choose may store or process the file under its own rules. Copies outside the app are not removed by deleting the workspace or disconnecting app sync; manage those copies with the chosen destination. Sharing or exporting a workspace file can transfer it between Apple and Android without enabling account sync between the ecosystems.

Reminders, clipboard and links

Practice reminders are optional local notifications. The app asks for permission where required and schedules them on your device. You can disable reminders in Progress or system settings; exact delivery depends on the operating system.

Copying patterns or generated code places your selected content on the system clipboard. You choose where to paste or share it. Website links open your system browser and require internet. The operating system and any destination you choose govern those copies and visits.

Support and website visits

If you email support@regexcellent.app, Cloudflare Email Routing forwards your message to the publisher’s support inbox. Cloudflare, the publisher and the inbox provider process your email address and the information you send to deliver and handle your request. It is used to answer your request and maintain necessary correspondence, and is deleted when no longer needed unless retention is required. Do not send passwords, payment details or private production data in sample patterns or screenshots.

regexcellent.app is hosted by Cloudflare, which may process IP addresses, browser information, requested URLs and request times to deliver and secure the website. Provider processing and retention depend on its configuration and Cloudflare's Privacy Policy; no fixed provider-log retention is promised. The publisher does not add advertising trackers, analytics, a contact form or a mailing list to the website.

Children, privacy requests and changes

The app is intended for teen and adult programming learners. Provider accounts and purchases are optional and subject to the provider's age, family and consent rules. If you believe a child sent personal information in a support request, contact the publisher for review and removal where appropriate.

Depending on your location, applicable law may provide rights concerning personal information the publisher holds. Contact the support address for requests concerning support correspondence and for help managing local/provider data. This policy will be updated when practices change; its version-specific sections do not announce that an unreleased feature is already available.