Privacy Policy

Last updated: August 2026

Data Collection

KeyboardGym stores your learning progress locally in your browser using LocalStorage and IndexedDB. We never ask for your name, email address or any other personal information. The only data we send to our servers is your typing result when you take part in the monthly language-based ranking, as described below.

Monthly Typing Ranking

When a typing session meets the entry conditions (a minimum duration, a minimum number of keystrokes and a minimum accuracy), the result is automatically submitted to the monthly ranking for that language. We send:

  • Pontuação, CPM (carateres por minuto), precisão, tempo decorrido, toques e erros
  • Percurso de prática, idioma e tipo de aparelho (computador ou telemóvel)
  • A data e a hora da sessão
  • An anonymous device identifier

No name, nickname, email address or any other identifying information is sent or displayed. The ranking table shows only rank, score, CPM, accuracy and device type.

The anonymous device identifier is a random string generated inside your browser. We use it only to prevent repeated submissions from the same device and to show you your own position. It is never shown in the ranking table and cannot be used to identify you.

Sessions that do not meet the entry conditions are never sent to our servers.

Submitted results are stored by Upstash, Inc. (Tokyo region) and are deleted automatically after about 45 days. Your IP address is used only to count requests per hour so that we can block abuse; it is never linked to a ranking record.

Analytics

We use Vercel Analytics to understand how users interact with our service. This helps us improve the platform.

Cookies

We use cookies to store your language preference and improve your experience on KeyboardGym.

Your Rights

Data kept in your browser is fully under your control and can be cleared at any time through your browser settings. Clearing it also discards your anonymous device identifier, after which you are treated as a new device. Please note that results already submitted to the ranking contain no identifying information, so we cannot locate and delete an individual entry; those records are removed automatically when the retention period ends.