Data Privacy & Security
Privacy is a core value at DevLingo. Here we explain in detail how data flows, where it’s stored, and who can access it.
Data Flow Transparency
Section titled “Data Flow Transparency”Scenario 1: Single Lookup (No Cloud Sync)
Section titled “Scenario 1: Single Lookup (No Cloud Sync)”Step 1: You select "idempotent" in Slack ↓Step 2: Press ⌘⇧D ↓Step 3: Mac app checks local database and cache ↓Step 4: If no match, sends query to Cloudflare Workers (HTTPS encrypted) Request includes: • Selected text: "idempotent" • Context (surrounding text) • App identifier (Slack) • Mode: Word ↓Step 5: Workers calls Claude API ↓Step 6: Claude returns structured JSON result ↓Step 7: Mac app receives the result ↓Step 8: Unless the user clicks "Save," the result is not stored (data disappears when the floating window is closed)Scenario 2: Saving to Word Book
Section titled “Scenario 2: Saving to Word Book”Steps 1-7: Same as above ↓Step 8: User clicks "Save to Word Book" ↓Step 9: Data is stored in local SwiftData (completely on-device, not uploaded to the cloud) ↓Step 10: Word Book sync toggle OFF → done (local only) Word Book sync toggle ON → Step 11 ↓Step 11: User device syncs to Cloudflare D1 (private user database, with authentication)Key Commitments
Section titled “Key Commitments”Text Is Not Used for Model Training
Section titled “Text Is Not Used for Model Training”Important: Any text sent by DevLingo through the Claude API will not be used to train Claude or any other model. We follow Anthropic’s default policy.
✓ Your text is used once and discarded✓ Claude discards it immediately after processing (no storage)✓ Not used for any form of data mining:::note Verification
All Anthropic Claude API requests are tagged with “user=
Local Storage with Cloud Sync Disabled by Default
Section titled “Local Storage with Cloud Sync Disabled by Default”The Word Book is saved only on your Mac by default, using SwiftData:
~/Library/Containers/com.devglish.com/Data/└── default.store/ └── word_entries.db (local SQLite)This database is device-private and only accessible by the DevLingo app.
Cloud Sync Is Optional
Section titled “Cloud Sync Is Optional”If you want to sync your Word Book across multiple Macs, you can explicitly enable cloud sync:
Settings → iCloud Sync → Toggle ONOnce enabled, the Word Book is encrypted and uploaded to Cloudflare D1:
Encryption: Client-side encryption (Curve25519) → server storageAuthentication: User's JWT token (security token)Access control: Each user can only access their own dataIsolation: Row-level database isolation prevents cross-user access:::caution Data Transfer After enabling cloud sync, if you cancel your subscription or delete your account, cloud data is automatically deleted after 30 days. Local SwiftData is unaffected and remains on your device. :::
What We Do Not Collect
Section titled “What We Do Not Collect”DevLingo strictly follows the “minimize collection” principle:
Data We Do Not Collect
Section titled “Data We Do Not Collect”✗ Code content (even though you may use DevGlish in Xcode)✗ Full browsing history or app usage history✗ Chat logs or email content✗ Your Git history✗ Other private files on your deviceOnly the Necessary Data We Collect
Section titled “Only the Necessary Data We Collect”✓ The text you selected for lookup✓ 50 characters of surrounding context (used only for AI understanding)✓ Current app's Bundle Identifier (helps AI adjust style)✓ Your native language setting (for L1 interference tips)✓ Word Book content (only when cloud sync is explicitly enabled)API Key Security
Section titled “API Key Security”Claude API Key
Section titled “Claude API Key”The DevLingo backend (Cloudflare Workers) holds the Claude API key. Your Mac app never needs to expose the key directly — all API requests are proxied through Workers.
Mac App Workers (edge) ↓ (HTTPS) ↓ │── Bearer: user_jwt ────────→ │ │ │ │ (1-hour expiry) │ (Claude API Key) │ │ │← Structured Response ←────── Claude APIBenefits:
- Key is not stored locally (cannot be leaked)
- All API calls are processed at Cloudflare’s trusted edge
- Even if your Mac is compromised, the key remains safe
User JWT Token
Section titled “User JWT Token”Users receive a short-lived JWT token (1-hour expiry) upon sign-in:
Algorithm: HS256 (HMAC SHA-256)Signing key: Cloudflare Secret (not stored locally)Storage location: macOS Keychain (system-encrypted)Refresh: Token is automatically refreshed before expiryKeychain security level:
Tied to the Mac's iCloud unlock keySystem prompts user confirmation on each accessEven if someone steals your hard drive, it cannot be readNetwork Transport Security
Section titled “Network Transport Security”All communication from Mac to Cloudflare Workers is HTTPS encrypted:
TLS 1.3 (latest protocol)Certificate: LetsEncrypt (auto-renewed)Perfect Forward SecrecyOffline Capability
Section titled “Offline Capability”DevLingo’s tiered lookup system ensures you can use it offline:
Select "idempotent" in airplane mode ↓Query local technical vocabulary (85+ terms) → success! ↓Result displayed instantly, no network requiredNetwork is only needed for:
✓ Looking up new vocabulary not in the local database✓ Syncing Word Book to the cloud✓ Fetching latest TTS audio cacheThe other 95% of lookups can be completed entirely offline.
Account Deletion & Data Removal
Section titled “Account Deletion & Data Removal”If you decide to delete your DevLingo account:
Step 1: Settings → Account → Delete Account ↓Step 2: System will ask you to confirm again ↓Step 3: Cloudflare deletes: • User account • Cloud Word Book • Login history • API usage logs (completely deleted after 30 days) ↓Step 4: Local data is unaffected (still on your Mac, to be deleted by you manually):::caution Data Permanence Once an account is deleted, cloud data cannot be recovered. However, you can export your local Word Book as CSV for permanent storage. :::
Compliance
Section titled “Compliance”DevLingo complies with the following regulations:
| Region | Regulation | Status |
|---|---|---|
| EU | GDPR (General Data Protection Regulation) | ✓ Compliant |
| US | CCPA / CPRA | ✓ Compliant |
| China | Data localization | ✓ Local storage only; cloud sync uses Cloudflare (optional) |
:::note Data Protection Officer For privacy inquiries, contact [email protected]. We respond within 24 hours. :::
Regular Security Audits
Section titled “Regular Security Audits”The DevLingo engineering team regularly conducts:
• Code security audits (OWASP Top 10)• Dependency scanning (npm audit, Xcode security)• Penetration testing (third-party)• Database access auditing (who accessed what)Audit reports are transparently published to users every quarter.
Summary: DevLingo’s privacy design follows the “zero trust” principle — assuming the network is being monitored, assuming the device is compromised, but through encryption, authentication, and minimum data collection, ensuring your data always remains under your control.