HHolaDoneType Spanish until it sticksPRIVACY · 2026-08-28
Practice stays local by default. You enable anything extra.
No account is required. There are no ads, payments, or marketing trackers. Anonymous analytics require consent, and cross-device sync is off until you create or connect a sync space.
Local practice data: course position, round order, completion, daily counts, mistakes, accent rule, sound, and speech speed are stored in browser localStorage.
Listening audio cache: pre-generated Spanish audio enters browser Cache Storage only after you confirm preparation or enable “Prepare word and example audio after each round.” Automatic preparation runs only while the completion screen remains open, never while typing. Settings shows audio downloaded today and current cache size, and lets you clear it. The browser may also evict cached audio.
Not uploaded by default: practice data is not sent to the sync database until you create or connect a sync space. Audio downloads request only public card files; practice history, mistakes, and the listening queue are not sent to the speech-generation provider.
Delete local data: clear site data for HolaDone in your browser to remove local records and audio cache. Deleted local data cannot be recovered.
What happens if you allow anonymous analytics?
Purpose: understand whether practice starts, completes, or is abandoned, and improve round length and mode transitions.
Sent: manually defined summary events plus coarse entry and landing-page groups, such as Google organic, an on-site SEO landing page, direct or unknown, A1 vocabulary, accents, or dictation.
Never sent: typed text, specific cards, card IDs, sync codes, sync contents, search terms, full URLs, raw referrers, marketing-parameter values, session replay, heatmaps, or automatic error capture.
Provider: PostHog Cloud EU. With consent, a random browser identifier is stored locally for return and retention measurement. HolaDone does not connect it to a name, email, or account.
Decline or withdraw: the site still works normally. You can change the choice in Settings; withdrawal affects future collection.
What happens if you enable sync?
Synced data: practice position, recent queues, daily records, per-card evidence, mastery, mistakes, challenges, and preferences are encrypted in the browser before upload.
Encryption: the browser derives an AES-256-GCM key from the 20-character sync code. Vercel Functions and Upstash Redis handle derived credentials and ciphertext, not the plaintext code or a directly usable decryption key.
Code responsibility: anyone with the code can join, modify, or delete that progress. Treat it like a password. HolaDone has no account recovery.
Retention: each cloud write renews ciphertext expiry to 400 days. Delete cloud data in Settings; stopping sync on one device does not delete the cloud copy.
What happens if you submit feedback?
Sent: the feedback type and message, optional contact details, current page, interface and target languages, and browser technical information.
Never attached automatically: practice history, specific cards, typed answers, mistakes, sync codes, or sync contents. Do not put passwords, sync codes, or other sensitive information in the message.
Purpose: read feedback, diagnose problems, improve the product, and reply only when contact information is voluntarily provided. Feedback is not used for marketing subscriptions.
Provider: a Vercel Function sends feedback to the project maintainer through Resend. Resend may process message content, delivery status, and technical logs needed to provide the service under its policies.
Abuse prevention: the server stores a short-lived, non-reversible network-address hash to limit high-frequency submissions.
Speech and hosting boundaries
Spanish speech: words, examples, dictation, and listening sessions use pre-generated synthetic Spanish audio served as ordinary site media. Runtime playback does not call Google Cloud TTS or send practice content or the listening queue to a speech-generation service. The separate French practice may still use browser Speech Synthesis.
Hosting: Vercel hosts the site, public audio, and sync endpoint; optional encrypted sync data is stored in Upstash Redis. Providers may process technical request and security information.
External links: methodology and source notes link to Instituto Cervantes, Kaikki, wordfreq, and other third parties whose own privacy rules apply.