CARIOCA

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:

  1. Run the game (you can't play without an account).
  2. Improve the product (usage analytics help us find bugs and prioritize features).
  3. 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-processorPurpose
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):

CookiePurpose
next-auth.session-tokenAuthenticated session — keeps you signed in.
NEXT_LOCALELanguage preference (English / Spanish).
pending_inviteCarries an invite token through Google OAuth signup. 5-min lifetime.
NEXT_COOKIE_CONSENTRecords your cookie-consent decision so we honor it on every page. 1-year lifetime.
consent_banner_shown_seenPrevents 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 / StoragePurpose
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