Legal
Last updated: September 11, 2026
This Privacy Policy explains how Cloaked (“we”, “us”, “our”) at cloaked.ink collects, uses, and protects your information when you use our content-protection platform (“Service”).
We believe in minimal data collection. We only gather what is necessary to provide and improve the Service, and we go out of our way to hash or encrypt data wherever possible.
When you create an account, we collect:
| Data | Purpose | Storage |
|---|---|---|
| Email address | Authentication, account communication | Plaintext |
| Password | Authentication | bcrypt hashed (cost 10) — never stored in plaintext |
| OAuth profile (Google/GitHub) | Authentication (optional, only if you choose OAuth sign-in) | Email only, via provider |
| Subscription status | Billing and usage tracking | Plaintext |
When you subscribe to a paid plan:
Cloaked uses a proxy architecture — your article text is never stored in our database. When a visitor loads your page, we fetch the content directly from your CMS at that moment and hold it in a short-lived cache (up to 5 minutes) to serve concurrent requests efficiently. After that window the cached copy is discarded; see Section 7.3 for the derived render caches.
What we do store in our database:
We do not store your content in recoverable form, and we do not read, analyze, or share it.
When your protected content is viewed by end users, we collect:
| Data | Purpose | Storage |
|---|---|---|
| IP address | Rate limiting, abuse prevention | Keyed hash (HMAC-SHA256) only — raw IP never stored |
| User agent | Analytics (browser/device breakdown) | Keyed hash (HMAC-SHA256) only — raw string never stored |
| Viewport width | Responsive rendering analytics | Integer value |
| Render timestamp | Usage tracking and billing | Timestamp |
| Monthly render count | Free render limit enforcement | Integer counter |
If you integrate Cloaked with a CMS:
We want to be explicit about what we avoid:
| Method | Applied To |
|---|---|
| bcrypt (cost 10) | Account passwords, API keys |
| AES-256-GCM | CMS credentials at rest (your CMS API key and fetch secret) |
| HMAC-SHA256 (keyed) | IP addresses, user agents |
| SHA-256 | Content change detection |
| TLS 1.2+ | All data in transit |
We use your information for the following purposes:
| Purpose | Legal Basis (GDPR) | Data Used |
|---|---|---|
| Providing the Service | Contract performance | Account info, content, API keys |
| Authentication | Contract performance | Email, password hash, OAuth tokens |
| Billing | Contract performance | Stripe IDs, subscription status |
| Rate limiting | Legitimate interest | IP hashes, API key prefixes |
| Render analytics | Legitimate interest | IP hashes, user agent hashes, viewport, timestamps |
| Abuse prevention | Legitimate interest | IP hashes, rate limit counters |
| Service communication | Contract performance | Email address |
| Security monitoring | Legitimate interest | Access logs, error logs |
We do not use your data for:
We share data with third-party service providers only as necessary to operate the Service:
| Service | Role | Data Shared | Privacy Policy |
|---|---|---|---|
| Stripe | Payment processing | Email, subscription status | stripe.com/privacy |
| Brevo | Transactional email (verification, password reset, account and ops notices) | Recipient email address and message content for the email being sent | brevo.com/privacy |
| Cloudflare | DNS, CDN, DDoS protection, and widget asset delivery | Traffic passing through Cloudflare's network in transit, plus static widget assets | cloudflare.com/privacy |
| Google Cloud Storage | Encrypted offsite backup storage | Backups of our systems, encrypted before upload so Google cannot read their contents | cloud.google.com/privacy |
| OAuth provider (optional) | Email (only if user chooses Google sign-in) | policies.google.com | |
| GitHub | OAuth provider (optional) | Email (only if user chooses GitHub sign-in) | github.com/privacy |
We do not sell your personal data to anyone, ever.
Regardless of your location, you have the right to:
If you are in the EEA, you additionally have the right to:
Lawful Bases for Processing:
Pseudonymization, not anonymization: Because we hold the secret that produces these hashes, they remain pseudonymized personal data under GDPR Art. 4(5) rather than anonymous data, and the rights above apply to them.
Data Transfers: Your data is stored and processed in the United States, both by us and by the service providers listed in Section 5. If you access the Service from outside the United States, your data will be transferred there. We rely on Standard Contractual Clauses (SCCs) and provider-specific data protection agreements to ensure adequate safeguards for these international transfers.
If you are a California resident, you have the right to:
Categories of Personal Information Collected (per CCPA definitions):
We do not sell personal information. We do not share personal information for cross-context behavioral advertising.
The Service is not directed at children under 13 years of age. We do not knowingly collect personal information from children under 13. If you believe a child under 13 has provided us with personal information, please contact us at [email protected] and we will promptly delete it.
In the event of a data breach that affects your personal information:
We may update this Privacy Policy from time to time. When we make changes:
For privacy-related questions, requests, or concerns:
For GDPR-specific requests, email [email protected] with the subject line “GDPR Request” and specify which right you are exercising.
For CCPA-specific requests, email [email protected] with the subject line “CCPA Request.”
This Privacy Policy is effective as of September 11, 2026.