This page describes what data Music Theory Trainer (theory-trainer.com) collects, where it's stored, and how you can remove it. The short version: almost everything stays in your browser. The one exception is the Etudle daily-puzzle leaderboard, where your time and an anonymous identifier are sent to the server so the leaderboard can rank everyone consistently.
Last updated: April 2026.
What stays in your browser
The trainers (Chord, Circle of Fifths, Interval, Note, Practice Gauntlet) and the Etudle daily puzzle save state to your browser's localStorage. This includes:
- Best times for each trainer + setting combination, so you can race your previous run.
- Whether you've completed today's Etudle, your current streak, and your last result.
- Practice Gauntlet lifetime round count and tier progress.
- An anonymous player ID generated the first time you complete an Etudle (a random UUID; not tied to your name, email, or device).
- Optionally, a display name you choose for the leaderboard.
localStorage data never leaves your browser unless explicitly sent (see the leaderboard section below). It's only readable by this site. Clearing your browser's site data wipes all of it.
What goes to the server
When you finish an Etudle daily puzzle, the following gets sent to a serverless API endpoint and stored in a Vercel-hosted Redis database:
- Your anonymous player ID (the random UUID generated locally).
- Your display name, if you set one.
- The puzzle number, your time, your total guess count, and the per-card guess breakdown.
This is the entire payload. No IP address, browser fingerprint, location, email, or device info is sent or stored. The anonymous player ID is the only thing tying multiple submissions to "the same person," and it's scoped to your browser — clearing localStorage gives you a fresh ID, indistinguishable from a new player.
What we don't do
- No analytics scripts (no Google Analytics, no Plausible, no Mixpanel, no anything). Server logs from the hosting provider are limited to Vercel's standard request logs, retained briefly for operational purposes.
- No tracking pixels or third-party cookies.
- No advertising. No advertiser data sharing.
- No newsletter, no email collection. No accounts to create.
- No social-media tracking pixels (Facebook Pixel, etc.).
Embedded content
The "How does the circle of fifths work?" article embeds a YouTube video. We use YouTube's privacy-enhanced embed (youtube-nocookie.com), which doesn't set tracking cookies until you actually press play. If you do play the video, YouTube's standard tracking applies; their privacy policy governs that interaction.
How to remove your data
- Local data: clear your browser's site data for theory-trainer.com (Settings → Privacy → Clear data, or the equivalent on your browser).
- Leaderboard data: DM @pierce.engineer on Instagram with your anonymous tag (visible on the Etudle results screen, e.g., #K7P9XR) and we'll remove your row from the server within a week.
Third parties
The site is hosted on Vercel, which processes requests and serves static files. Vercel's privacy practices apply to that infrastructure layer. The Redis database used for the leaderboard is also operated by Vercel (via Upstash). No other third-party services have access to user data.
Changes to this policy
If this policy materially changes, the "Last updated" date at the top will reflect the change. The site is small and has no incentive to expand data collection — most plausible changes will be in the direction of collecting less, not more.
Contact
Questions, removal requests, or anything else — DM @pierce.engineer on Instagram.