Privacy
Short, because there is not much to say.
What stays on your device
Your settings and your recent words are stored in your browser's local storage, under the
keys pl_prefs_v1 (accent, voice, speed, theme) and pl_history_v1
(the words you looked up). Saved words, practice counts and quiz scores use
lp:saved, lp:practice, pl_lists_v1 and
pl_quiz_v1, and your answer to the consent banner is kept in
pl_cookie_consent. All of it is local storage on your device, not cookies, and
the app never sends any of it anywhere. Clear everything in Settings removes it.
Playing a device voice involves no network request at all — your browser speaks it locally.
What is sent to the server
Playing a server voice sends one request containing the word you typed and the voice you chose. That is the whole payload — speed is not sent. It is applied in your browser to the clip that comes back, so all three speeds are the same recording played at different rates.
That endpoint, /api/say, is rate-limited per IP address, purely to stop one
client flooding the synthesiser. The count is a best-effort counter in the edge cache, keyed
by a truncated hash of your address rather than the address itself, and it is never written
to a database or a log.
Analytics, and how to switch it off
We would rather be straight with you than claim a purity we don't have: this site uses two
third-party analytics providers — Google Analytics 4 (measurement ID
G-3QMNJTBEBD) and Microsoft Clarity (project
y7guya9gyu) — to count how many people visit and which pages they read. Both
collect through their own scripts, so under the ePrivacy Directive they need your consent —
and they get it, together, on one banner.
Neither script is loaded until you press Accept on the banner. Press
Decline, or simply ignore the banner, and no request is ever made to Google or Microsoft and
no analytics cookie is ever set. Your choice is stored in pl_cookie_consent;
clearing your browser storage for this site brings the banner back so you can change it.
If you do accept, one consequence matters here: an analytics provider receives the URL of
the page you are on, and a word page's URL contains the word —
/word/colonel. So the pages you read can reveal individual words to that
provider. Your stored lookup history itself is never sent; the provider sees page URLs as
you browse, not the list in pl_history_v1.
Apart from those two providers, nothing else on the page is third-party. There are no advertising, social or fingerprinting scripts, and no data broker gets anything, because nothing is collected to sell.
What is never collected
Server logs
Whoever operates this instance controls its logs. A standard web server records IP addresses and requested URLs, and a synthesis request has the word in its URL. If you run this yourself, that is yours to configure.