Reading the site
You can read every dictionary entry, view embedded scores, and download the MusicXML files without an account and without giving us anything. We do not ask for your name or email simply to read.
Cookies and local storage
The site uses a small number of cookies and browser-storage entries, all functional. None are used for cross-site tracking or third-party advertising. You can clear them at any time from your browser settings.
- access_token — the short PIN cookie used while parts of the site are gated during build-out. Cleared when the gate is lifted.
- lang_pref — remembers the dictionary language you last chose.
- geo_lang — caches the language we inferred from your request region so we don't run that lookup on every page load.
- analytics beacon ID — a randomised, anonymous identifier used to deduplicate page-view counts in our own database. Not linked to your name or email.
- bp_clara_open — remembers whether you had Clara, the conversational helper, open or closed.
- bp_shell_v1 — layout-state preferences (sidebar widths, panel positions).
- bp_score_zoom — your preferred zoom level on the embedded score viewer.
Analytics
Page views are recorded in our own database, on our own server. We do not run a third-party analytics tag by default — no Google Analytics, no Facebook pixel, no Hotjar, no Mixpanel. What we record is the page you visited, the approximate region of the request, and an anonymous beacon to deduplicate the count. The record is not tied to your name or email.
The site is also registered with Google Search Console, which reports the search queries that brought visitors here. That data is aggregate and provided to us by Google, who already sees those searches independently of us.
If we ever introduce a third-party analytics or advertising tag, this page will be updated to disclose it before the tag ships.
Clara — the conversational helper
Clara is open to anonymous visitors and to signed-in users, with a soft daily message limit on each. Signing in uses Google Sign-In through Firebase Authentication; we receive your email address and a Google account identifier. We do not see your password.
Anonymous visitors are rate-limited by a hashed form of their IP address — we do not store the IP itself, only the hash, and only long enough to enforce the daily limit. Signed-in users are rate-limited by their Firebase user ID.
Conversation content is not retained in the current build for personalisation, profile-building, advertising, or resale, and is never used to train a third-party model. It is not visible to other users. Operational logs may briefly hold message text for debugging and abuse prevention, and are pruned on a short rolling schedule.
Score downloads
Downloading a `.mxl` (MusicXML) file does not capture any user data beyond the standard server log line that any web request produces. There is no separate download log, no email gate, and no account requirement.
Future paid features
Audio playback features may move to a paid tier in future. If and when that lands, payment will be handled by Stripe on a Stripe-hosted checkout page. We never see your card number, expiry, or security code; Stripe handles those directly under its own privacy policy. What we receive from Stripe is a customer reference, your email address, and the subscription status — enough to grant access and issue a refund, no more.
Third parties
The site is delivered through Cloudflare, which sees the same request your browser makes to any website. Sign-in is handled by Firebase Authentication and Google Sign-In. Future paid features will use Stripe as described above. No other third parties receive your data.
How long we keep things
Anonymous visit counts are kept indefinitely as part of the editorial record. Account data is kept while your account is active and removed on request. Operational logs roll over on a short schedule.
Your rights — including erasure
Under UK GDPR and EU GDPR you have the right to ask what data we hold about you, to ask for it to be corrected, and to ask for it to be deleted. We will action a deletion request without argument and within a reasonable time. Write to [email protected].
See also our terms of service.