Privacy Policy
Last updated: April 23, 2026
Carioca, LLC ("we," "us," "our"), a Washington State limited liability company, operates playcarioca.com and playcarioca.cl (the "Service"). This Privacy Policy explains what information we collect, why we collect it, and how you can control it.
Information we collect
When you create an account, we collect:
- Email address — to identify your account and send transactional emails (password reset, email verification).
- Display name — shown to other players in your games.
- Profile image — optional avatar you upload or pick from our library.
- Password hash — we store a one-way hash of your password. We never store your plain-text password.
When you play, we collect:
- Game data — rounds, scores, melds, discards, chat messages, and other gameplay actions.
- Technical information — browser type, screen size, IP address (used for rate limiting; not stored in analytics events), and limited device details.
We do not sell your information. We do not show third-party advertisements.
Why we collect it
We collect this information to:
- Run the game (you can't play without an account).
- Improve the product (usage analytics help us find bugs and prioritize features).
- Communicate with you (transactional emails and occasional product updates).
Who processes your data
We use the following sub-processors to operate the Service. Each processes your data on our behalf under a data processing agreement.
| Sub-processor | Purpose |
|---|---|
| Neon (Postgres database, US) | Primary data storage — accounts, games, scores |
| Upstash (Redis, US) | Short-lived game-state cache |
| Cloudinary (US) | Avatar image storage and delivery |
| Resend (US) | Transactional emails (password reset, verification) |
| PostHog (US) | Product analytics and error tracking |
| Render (US) | Hosting |
| Cloudflare (US) | DNS, CDN, bot protection, email forwarding |
| Google (US) | Optional OAuth sign-in |
Your rights
You can:
- Access your data — log in to see your profile, game history, and settings.
- Correct your data — update your name, avatar, or email from your profile page.
- Export your data — sign in and click Profile → Account Settings → Download your data. You'll get a JSON file containing your profile fields, game participation, per-round scores, ELO history, and feedback submissions. Same data is also available by emailing [email protected] if you prefer.
- Delete your account and data — sign in and click Profile → Danger Zone → Delete account. We'll anonymize your account immediately: your name, email, avatar, ratings, and feedback are removed; your participation in past games is preserved as "Closed Account" so other players' game history stays intact. You can sign up again with the same email — it'll be a brand new account with no history. Removal of cached copies (image hosting, analytics provider) is initiated immediately and typically completes within a few minutes; in rare cases of provider unavailability, removal completes within 24 hours via automated retry. Database backups retain personal data for 7 days after deletion before auto-expiring. The manual
[email protected]path is also available if you prefer it or your account is in an unusual state.
If you're in the European Economic Area, you have additional rights under GDPR (access, rectification, erasure, portability, objection, restriction). If you're in Chile, you have rights under Ley 19.628. If you're in California, you have rights under the CCPA/CPRA. Exercise any of these via the contact emails below.
Nothing in this policy limits any mandatory consumer-protection right you have in your country of residence.
Cookies
We use only first-party cookies — no third-party advertising, no marketing pixels, no A/B-test cookies. Two categories:
Essential (required for the Service to work, always on):
| Cookie | Purpose |
|---|---|
next-auth.session-token | Authenticated session — keeps you signed in. |
NEXT_LOCALE | Language preference (English / Spanish). |
pending_invite | Carries an invite token through Google OAuth signup. 5-min lifetime. |
NEXT_COOKIE_CONSENT | Records your cookie-consent decision so we honor it on every page. 1-year lifetime. |
consent_banner_shown_seen | Prevents duplicate cookie-banner-shown analytics emissions per session. 30-min lifetime. |
__ph_opt_in_out_<projectId> | PostHog's opt-in/opt-out preference flag — set when you reject analytics so the SDK remembers across reloads. |
Analytics (toggleable via the cookie banner or Profile → Cookie preferences):
| Cookie / Storage | Purpose |
|---|---|
ph_<projectId>_posthog, $session_id, distinct_id (PostHog) | Help us understand how players use Carioca so we can fix bugs and improve features. No advertising; no third-party sharing. |
Cookie consent management. We show a non-blocking cookie banner to visitors from the EU / EEA / UK on first visit. The banner has three options: Accept all, Reject all, or Customize (toggle Analytics individually). You can revisit your decision at any time via Profile → Cookie preferences. The decision is stored per-domain (playcarioca.com and playcarioca.cl are separate; you'll be asked once per domain).
Withdrawing consent is forward-only. Rejecting consent — via the banner OR Profile → Cookie preferences after a prior accept — stops future event collection. Events captured during a prior accepted window remain in PostHog and continue to inform aggregate analytics. To erase those captured events, use Profile → Danger Zone → Delete account (which calls PostHog's person-deletion API). This aligns with the standard interpretation of GDPR Art 7(3): withdrawal does not retroactively invalidate processing that was lawful at the time.
Server-side analytics under rejection. When you reject Analytics, our backend continues to collect aggregate operational metrics (e.g. "100 game-action events from EU traffic this hour") but replaces your user identifier with an anonymous bucket id (cardinality ≥ 1024) so no event can be attributed back to you individually. This is anonymous data — outside the scope of GDPR — and is processed under our legitimate interest in service quality (GDPR Art 6(1)(f)). Identified analytics for opted-in users is consent-grounded under Art 6(1)(a).
Post-deletion cookies. The NEXT_COOKIE_CONSENT cookie persists on your device after account deletion. It contains no personal data — only your prior preference token — and exists so re-visits to our marketing site (signed-out) honor that choice. Clear it via your browser settings if desired.
Children
The Service is not directed to children under 13. If you believe a child under 13 has created an account, contact us and we'll delete it.
Changes to this policy
We may update this policy as the Service evolves. Material changes will be announced in-app and by email, and we may require you to re-accept before continuing use.
Contact
- English: [email protected]
- Español: [email protected]