Privacy Policy
Effective Date: 2026-07-03
This document defines the Privacy Policy for Wordrop — a macOS menu-bar vocabulary learning application. It covers both the general (production) app and the Beta version, which applies a distinct data collection layer on top of the standard app.
1. Overview
Wordrop is a native macOS application that helps users learn vocabulary through spaced-repetition quiz popups. The app operates entirely on the user's device for its core learning features. No personal account, cloud sync, or third-party analytics SDK is used in production.
- Product Manager: Daniel
- Contact: support@tannguyen.info
2. Data Collected — General App (Production)
2.1 Data Stored Locally Only
All data listed below is stored exclusively on the user's device using macOS UserDefaults, SQLite (via GRDB), and the app's Application Support container. None of this data is transmitted to any server in the production build.
| Data | Purpose | Storage |
|---|---|---|
| Vocabulary words and quiz history (word, translations, SRS state, review timestamps) | Core learning functionality | SQLite (GRDB) — local |
| Daily learning records (streak, words completed, heatmap data) | Progress tracking | SQLite — local |
| App settings (language pair, daily word goals, quiz modes, session config) | User preferences | UserDefaults — local |
| Pricing tier and daily word-count counter | Freemium feature gating | UserDefaults — local |
| Notification preferences (reminder interval, snooze state) | Quiz delivery scheduling | UserDefaults — local |
| Focus/blocking preferences (calendar blocking, screen-share blocking, video-call blocking) | Context-aware delivery | UserDefaults — local |
| Word pack identifiers (active pack slug) | Vocabulary set selection | UserDefaults — local |
2.2 System Permissions Requested
| Permission | Reason | When Requested |
|---|---|---|
| User Notifications | To deliver quiz reminders when the quiz window cannot be shown (e.g., fullscreen mode) | On first launch |
| Screen Recording / Accessibility | To detect full-screen windows and suppress quiz popups during focused work | On first toggle of fullscreen detection |
| Calendar (Read-only) | To detect active calendar events and suppress quiz popups while the user is in a meeting | On first launch, or when enabled in Settings |
These permissions are standard macOS entitlements. No screen content is captured, stored, or transmitted. Calendar data is read locally on-device only — event titles and attendees are never stored or sent anywhere.
2.3 In-App Purchases (StoreKit 2)
Wordrop uses Apple's StoreKit 2 framework for paid-tier subscriptions and one-time purchases (Monthly, Annual, Lifetime). Purchase transactions are processed entirely by Apple; Wordrop does not store or transmit payment information. The resolved tier is persisted locally in UserDefaults.
2.4 Data Wordrop Does NOT Collect (Production)
- No advertising identifiers (IDFA, IDFV)
- No crash reporting SDKs (e.g., Firebase Crashlytics, Sentry)
- No analytics SDKs (e.g., Mixpanel, Amplitude)
- No network calls to Wordrop-controlled servers
- No screen content or keystrokes
3. Data Collected — Beta Version
The Beta version of Wordrop is a pre-release build distributed directly to invited testers. It includes an additional data collection layer to gather usage feedback and tester engagement metrics. This layer is only present in builds where the compile-time beta flag is enabled.
3.1 Beta Registration Data (Collected Once at Onboarding)
During onboarding (BetaRegistrationView), beta users are asked to provide:
| Field | Purpose |
|---|---|
| Name (optional) | To identify the tester in reports |
| Required to send production-access requests after trial expires | |
| Job / Role (optional) | To understand the user demographic |
| Consent checkbox | Explicit opt-in consent to beta data collection |
This data is stored locally in AppSettings (UserDefaults). Data is only transmitted when the user takes an explicit action (see §3.3).
3.2 Beta Engagement Data (Collected Automatically)
After the consent checkbox is ticked, the following usage data is recorded locally and transmitted at milestone intervals:
| Data | Purpose | Transmitted? |
|---|---|---|
| Words completed per day (count per date string) | Engagement metric | Yes — at milestones |
| Word packs used (set of pack IDs across all days) | Usage pattern | Yes — at milestones |
| App version string and macOS version | Device context for bug reports | Yes — in all reports |
| Beta install date | Milestone calculation (D+3, D+7, D+14, D+30) | Not directly; used locally |
3.3 Data Transmission — When and Where
All beta data is transmitted to a Telegram bot controlled by the Wordrop developer. No third-party analytics services are used.
| Event | Triggered By | Data Sent |
|---|---|---|
| Registration event | Completing the beta registration form | Name, email, job, language pair, app version, macOS version |
| D+3, D+7, D+14, D+30 milestone reports | Automatic — once per milestone on app launch | Name, email, job, language pair, words-per-day log, word packs used, app version, macOS version |
| Feedback submission | User taps 'Send Feedback' in the PLAN tab | Name, email, feedback text, app version, macOS version |
| App rating submission | User taps 'Rate this app' in the PLAN tab | Name, email, star rating (1–5), optional message, app version, macOS version |
| Production access request | User taps 'Request Production' after trial expires | Name, email (editable), preferred pricing tier, optional message, app version, macOS version |
Data is sent over HTTPS to the Telegram Bot API. No data is sent if the Telegram bot token is not configured in the build.
3.4 Beta Trial Window
The beta version grants full paid-tier access for 30 days from first launch. This date is stored locally only. When the trial expires, the app reverts to free-tier restrictions (5 words/day, flashcard-only mode).
3.5 Beta Data Retention
Beta data (daily word logs, pack usage set) is stored on-device and remains until the app is uninstalled. The developer retains transmitted Telegram messages for the duration of the beta program.
3.6 Legal Basis for Beta Data Collection (GDPR)
For users in the European Economic Area, data collection during the beta program is based on consent (GDPR Article 6(1)(a)). Consent is given via the checkbox in BetaRegistrationView. Beta testers may withdraw consent by contacting the developer, who will delete their transmitted data and remove them from the program.
4. Third-Party Services
| Service | Used In | Data Shared | Link |
|---|---|---|---|
| Apple StoreKit 2 | Production + Beta | Purchase transaction processing (handled by Apple) | Apple Privacy Policy |
| Telegram Bot API | Beta only | Beta registration info, milestone reports, feedback, ratings | Telegram Privacy Policy |
5. Children's Privacy
Wordrop is not directed at children under the age of 13. The app does not knowingly collect personal information from children.
6. Data Security
All locally stored data is protected by macOS App Sandbox. Data transmitted to Telegram is sent over TLS-encrypted HTTPS. The developer does not use the transmitted data for any purpose other than improving the beta product.
7. User Rights
Production users: all data is stored locally on your device. You can delete all app data by uninstalling Wordrop.
Beta users additionally have the right to:
- Access the data transmitted about them (contact the developer)
- Request deletion of transmitted data
- Withdraw consent at any time by contacting the developer
8. Changes to This Policy
The developer may update this Privacy Policy. Beta users will be notified of material changes through the app's PLAN tab.
9. Contact
For privacy-related questions, contact our product manager: support@tannguyen.info