Privacy Policy

Effective: October 9, 2026

Short version

  • We collect only what we need to run the app: your account (via Clerk), your learning progress, and safety-audit metadata.
  • We never store the raw text of your chat messages in our database. Chat audit records use one-way hashes and structured safety metadata.
  • Your messages to the AI tutor are transmitted to OpenAI for processing.
  • Voluntary course reports and community feedback are sent to Sam by email; they are not published automatically.
  • When welcome emails are enabled, we send one account welcome email through Resend. Signing up does not subscribe you to recurring marketing emails.
  • You can delete your cloud progress or your entire account at any time.

1. Who we are

Itzli is a free educational app for learning Eastern Huasteca Nahuatl, operated by Sam Villa-Smith. For privacy questions, contact admin@itzli.app.

2. What we collect

Account data (via Clerk)

When you sign up, Clerk collects your email address, password (hashed, never visible to us), and any profile information you choose to add. Clerk's Privacy Policy applies to that data.

When welcome emails are enabled, we share your verified primary email address and optional first name with Resend to send one welcome email explaining how to use Itzli. We temporarily store the pending email for delivery retries and clear its address, greeting, and body once Resend accepts it or your account is deleted. Stale pending emails are cleared on the next retry. We retain a hashed account identifier and delivery receipt to prevent duplicate welcomes; deleting your account clears the receipt and leaves only a hashed deletion marker to prevent late account events from sending another welcome. This is an account welcome, not a recurring marketing subscription. Local review and preview environments do not send it.

Learning progress (Neon Postgres)

When you sign in, we store your lesson completions, quiz accuracy, spaced-repetition state, vocabulary practice, vocabulary bookmarks and vocabulary notes in our database, keyed to your Clerk user ID, so they can sync across devices. Vocabulary notes contain the text you choose to save. Your personal expression notebook and unfinished conversation checkpoints remain on your device. Guest progress also stays on the device.

Chat audit log (Neon Postgres)

For AI tutor requests and safety guardrail events, we record an audit row containing: the Clerk user ID, the event kind, request metadata, safety categories and scores where applicable, model names, timestamps, and keyed SHA-256 hashes of chat content. We do not store the raw text of user messages or AI responses. The secret-keyed hashes support repeated-abuse detection without retaining readable chat content or exposing ordinary low-entropy messages to dictionary lookup.

Chat content (transient, via OpenAI)

Your chat messages are sent to OpenAI for completion. OpenAI processes them under its Privacy Policy. Per OpenAI's API policy, API messages are not used to train their models. We do not persist chat messages in our own database.

Course reports and community feedback

If you choose to submit a report, it includes your written explanation, any suggested correction, your interface language, and the page or lesson context shown in the form. Your name, reply email, community or regional variety, and whether you speak Eastern Huasteca Nahuatl are optional. We do not require ancestry information or photographs. Speaker information is self-reported and does not establish verified authority.

When email delivery in the app is enabled, reports from signed-in learners are sent through Resend to admin@itzli.app for Sam to review. Your account ID is used for report-rate counters, and a hash derived from it is included in the provider's duplicate-prevention key. The raw account ID is not included in the report email, and the report text is not stored in our database. Local review can send reports only when the owner explicitly enables delivery; it uses temporary local counters without account authentication or database writes. Deployment previews do not send reports. If submission fails, the form keeps your entries so you can retry.

Reports are reviewed before any course change and are not published automatically. Contact details are used to reply about your report or community connection only when you choose to allow contact. Send only information you want Sam to review. You can request access to or deletion of your report by emailing the contact address below; reports received by email are retained there until no longer needed for review or follow-up, or until a deletion request is fulfilled.

Local storage

Your browser stores a mirror of your learning progress in localStorage so progress remains visible between visits and can be synchronized after sign-in. The app still requires a network connection to load pages and media. We also set a localStorage entry recording that you agreed to these policies, so we don't re-prompt you every visit. Clearing your browser data will clear these.

Cookies

Clerk sets essential authentication cookies required for you to stay signed in. We do not use third-party advertising or analytics cookies.

Server logs

Our hosting provider (Vercel) may record standard server logs (IP address, user agent, request path, timestamp) for operational and security purposes. These are retained for a limited period per Vercel's policies.

3. How we use data

  • to provide authentication and run the app;
  • to sync your learning progress across devices;
  • to detect and prevent abuse of the AI tutor (via hashed audit log);
  • to moderate content using third-party safety APIs;
  • to respond to your support requests.

We do not sell your data. We do not share it with advertisers. We do not use it for behavioral profiling.

4. Third parties

  • Clerk — processes authentication data
  • Neon (Postgres) — stores progress and hashed audit rows
  • OpenAI — processes chat content (completion + moderation)
  • Resend — delivers account welcome emails and course reports when their respective features are enabled Privacy Policy
  • Vercel — hosts the app and serves requests
  • Amazon S3 — serves static assets (images, audio, database bundle)
  • Pexels, Wikimedia Commons, Flickr, Rawpixel, and StockSnap — serve some vocabulary images

5. Your rights

Depending on where you live (including under GDPR in the EU/UK or CCPA in California), you may have the right to:

  • access the personal data we hold about you;
  • correct inaccurate data;
  • delete your data ("right to erasure");
  • object to or restrict processing;
  • receive a portable copy of your data.

To exercise these rights, contact us at admin@itzli.app. We will respond within 30 days. You may also have the right to lodge a complaint with your local data-protection authority.

6. How to delete your data

From inside the app:

  • Go to Progress and use "Reset progress" to clear local progress and delete the cloud copy.
  • Delete your account via Clerk to remove authentication data, cloud progress, tutor rate-limit records, and safety-audit hashes tied to your Clerk user ID.

You can also email admin@itzli.app for an access or deletion request.

7. Retention

We retain progress data for as long as your account is active. If you delete your account, its progress and audit rows are removed. Resetting progress removes only local and cloud learning progress. Hashed audit rows are retained for up to 24 months for abuse-pattern detection, then purged. Server logs follow our hosting provider's retention policy.

8. Children

Itzli is not directed at children under 13. We do not knowingly collect personal information from children under 13. If you believe a child under 13 has provided us with personal information, contact us and we will delete it.

9. International transfers

Our services run on infrastructure in the United States. If you access Itzli from outside the US, your data will be transferred to and processed in the US. By using the app you consent to this transfer.

10. Security

We take reasonable technical measures to protect your data: TLS in transit, authentication via Clerk, password hashing on Clerk's side, and secret-keyed SHA-256 hashing of audit content. No system is perfectly secure; we cannot guarantee absolute security.

11. Changes to this policy

We may update this Privacy Policy. Material changes will be reflected in the effective date above, and you may be asked to re-accept the updated policy on next use.

12. Contact

Privacy questions or requests: admin@itzli.app.

See also our Terms of Service and EULA.