Privacy Policy
Effective date: September 4, 2026
TypingDuck ("we," "our," or "us") operates the TypingDuck website and application (the "Service"). This Privacy Policy explains what information we collect, how we use it, and the choices you have concerning your data.
Essential data supports your account and practice. Optional analytics and advertising are controlled through Privacy choices at the bottom of every page.
1. Information We Collect
1.1 Information you provide through OAuth sign-in
When you sign in with a third-party provider (Google or GitHub), we receive limited profile information from that provider, which may include:
- Your name or display name
- Your email address
- Your profile picture / avatar URL
We do not receive or store your password for any third-party provider. Authentication is handled entirely by the provider through the OAuth 2.0 protocol.
1.2 Typing session data
If you are signed in, we store data about your typing practice sessions, including:
- Words per minute (WPM) and accuracy metrics
- Session duration, character counts, and error counts
- Aggregate keystroke statistics (per-key accuracy and timing)
- The practice mode and language used
This data is used solely to provide you with progress tracking, performance analytics, and personalized feedback within the Service.
1.3 Automatically collected information
Like most web applications, our servers may automatically record standard log information such as your IP address, browser type, referring URL, and the date and time of your visit. This information is used for security, troubleshooting, and aggregate analytics and is not linked to your typing data.
1.4 Custom practice and connected repositories
We store extracted document text and saved drills so you can practice them later. Original uploaded files are processed in memory and are not stored. GitHub access tokens are encrypted and used only by our server to retrieve code you are authorized to access. Disconnect GitHub to remove the stored token.
2. How We Use Your Information
We use the information we collect to:
- Create and maintain your account
- Provide, operate, and improve the Service
- Display your typing performance history and analytics
- Process payments and manage subscriptions (if applicable)
- Send transactional communications related to your account
- Detect and prevent fraud or abuse
We do not send your typed content, uploaded document text, or private repository contents to analytics or advertising providers. Google advertising may use identifiers subject to your privacy choices and regional consent requirements.
3. Third-Party Services
We rely on the following third-party services to operate TypingDuck:
- Supabase — Authentication, database hosting, and backend infrastructure. Supabase processes your account information and session data on our behalf. See the Supabase Privacy Policy.
- Google — OAuth sign-in provider. When you choose to sign in with Google, your authentication is governed by Google's Privacy Policy.
- GitHub — OAuth sign-in provider. When you choose to sign in with GitHub, your authentication is governed by GitHub's Privacy Statement.
- Stripe — Payment processing for Pro subscriptions. Stripe collects payment information directly; we do not store credit card numbers. See the Stripe Privacy Policy.
Product analytics and advertising
With your analytics consent, PostHog receives account identifiers, practice summary metrics, feature usage, subscription events, and sanitized error categories. Session replay and automatic input capture are disabled. You can withdraw consent through Privacy choices.
Google AdSense supports free practice. Advertising is disabled for Pro users. Where required, Google’s certified consent message provides additional regional choices. Optional analytics and ad storage are disabled until permitted. See Google advertising information and PostHog’s privacy policy.
4. Cookies and Local Storage
We use browser cookies to manage your authentication session. Supabase sets authentication cookies to keep you signed in across page loads. We also uselocalStorage to persist your typing preferences (such as theme, mode, and settings) on your device. Optional PostHog and Google storage is controlled by your privacy choices. Pending session summaries and guided progress are kept on this device so failed saves can be retried. Rejecting optional storage does not prevent practice or sign-in.
5. Data Retention
We retain your account information and typing session data for as long as your account is active. If you delete your account, we will delete your personal information and session history from our systems within 30 days, except where retention is required by law or for legitimate business purposes (such as fraud prevention or financial record-keeping).
6. Data Security
We take reasonable measures to protect your information, including encryption in transit (TLS/HTTPS), secure authentication through OAuth 2.0, and row-level security policies in our database. However, no method of electronic storage or transmission is 100% secure, and we cannot guarantee absolute security.
7. Your Rights and Choices
Depending on your jurisdiction, you may have the right to:
- Access the personal information we hold about you
- Request correction of inaccurate information
- Request deletion of your account and associated data
- Object to or restrict certain processing of your data
- Export your data in a portable format
To exercise any of these rights, please contact us at the email address listed below. We will respond to your request within 30 days.
8. Children's Privacy
The Service is not directed to children under the age of 13 (or the applicable age of digital consent in your jurisdiction). We do not knowingly collect personal information from children. If you believe a child has provided us with personal information, please contact us and we will take steps to delete such information promptly.
9. International Data Transfers
Your information may be transferred to and processed in countries other than your own. Our service providers (Supabase, Google, GitHub, Stripe, PostHog) operate globally. By using the Service, you consent to the transfer of your information to these providers in accordance with their respective privacy policies.
10. Changes to This Policy
We may update this Privacy Policy from time to time. When we make material changes, we will notify you by updating the "Effective date" at the top of this page and, where appropriate, through a notice within the Service. Your continued use of the Service after any changes constitutes acceptance of the updated policy.
11. Contact Us
If you have any questions or concerns about this Privacy Policy or our data practices, please contact us at:
Email: privacy@typingduck.com. Messages forward to typingduck@mail.com, which is also our reply address.