Privacy Policy
This policy describes what LokaScript Learn collects, why, and what you can do about it. It is written to match what the software actually does rather than to cover every hypothetical. If something here does not match your experience of the product, that is a bug — tell us at support@textshelf.com.
Who we are, and who controls your data
LokaScript Learn is operated by TextShelf LLC, 1025 Connecticut Ave NW Ste 615, Washington, District of Columbia 20036-5446. For privacy questions, write to privacy@textshelf.com.
Who controls your data depends on how you got here, and the distinction matters:
- If you signed yourself up, TextShelf LLC is the controller of your personal data.
- If your school, college or bootcamp enrolled you — that is, your account is attached to an organisation, or you joined a class with an enrollment code — the institution is the controller of your education records. TextShelf LLC processes them only on that institution's instructions, as what US law calls a school official with a legitimate educational interest.
In practice this means that if your school put you here, requests about your records go to your school first. We will help them; we will not act around them.
Account information
When you create an account we store your email address (required, and unique), and optionally your display name and an avatar URL if one came from a sign-in provider. We also store your chosen interface theme, your time zone, your native and study languages, your role (learner, instructor, or organisation admin), and the organisation you belong to if any.
Passwords are never stored. We store an argon2id hash and nothing else, so we cannot tell you your password and neither can anyone who obtains our database. Accounts that only ever sign in with Google or GitHub have no password at all.
Signing in with Google or GitHub
If you use "Sign in with Google" or "Sign in with GitHub", we store which provider you used, the opaque account identifier that provider gives us, and the email address on that account. That is what lets us recognise you next time.
We do not retain the access or refresh tokens those providers issue. We use them once during sign-in and discard them, so we cannot read your Google or GitHub account for any other purpose, then or later.
Your work and your progress
This is the bulk of what we hold, and it is the point of the product.
For every exercise you answer while signed in we record the text you typed, the answer we expected, whether it was correct, how long you took, what kind of mistake it was if any, and the verb, language, grammatical function, difficulty and domain involved. If you answered inside a lesson or a class, we record which.
From those answers we derive and store: a spaced-repetition schedule per item (when to show it to you again, and how well you knew it last time), a mastery summary per verb and language and function, and a record of which lessons you have completed and with what score.
If you are not signed in, answers are graded and shown to you but not sent anywhere or stored on our servers. They may be kept temporarily in your own browser so they can be added to your account if you sign up — see "Cookies and local storage" below.
Classes, instructors and institutions
If you join a class, we store the class, your role in it, whether your enrollment is active, and when you joined.
Be clear about what this means, because it is the part people are most often surprised by. The instructor of a class you are enrolled in can see your individual work: every answer you gave in that class including the wrong ones, how long you took, your mastery scores per topic, your position on a class leaderboard, and an analysis of the grammatical mistakes you make most often. They can export all of it as a spreadsheet.
They can see this only for work you did in their class. Practice you do on your own is not visible to any instructor.
Cookies and local storage
We use essential cookies only. There are no advertising cookies, no cross-site tracking, and no third-party tags that follow you around the web.
session— a random identifier that keeps you signed in. HttpOnly, SameSite=Lax, Secure in production, expires after 30 days.oauth_stateandoauth_verifier— ten-minute cookies that make the Google/GitHub sign-in flow safe against forgery. Deleted as soon as sign-in finishes.
Your browser's local storage may hold your theme choice, your preferred reading language for book pages, and — if you practise without an account — the answers from your guest session, so they can be added to your progress if you sign up. That guest data stays on your device, is limited in size and age, and is cleared when you sign out or when it is merged into an account.
IP addresses
We use your IP address in two distinct ways, and they have different consequences:
- In memory only. Sign-in, registration and public form submissions are rate limited by IP to stop brute-force and spam. Those counters live in server memory, are discarded every few minutes, and are never written to the database.
- Stored. If you submit a testimonial or request early access, we store the IP the submission came from alongside it, for abuse investigation. Those rows are deleted when you delete your account, matched on your email address.
Why we use it
To deliver and score lessons and exercises; to schedule your reviews; to show your progress to you, and to the instructor of a class you have joined; to keep the service secure and to prevent abuse; and to reply when you write to us.
We do not sell your personal data. We do not share it for cross-context behavioural advertising. We do not profile you for advertising of any kind. There is no advertising in this product.
AI-assisted features
Some features — the tutor hints, and the chat learning modes — send text to Anthropic PBC to generate a response. What we send is the text you typed and the exercise or lesson context around it.
Your name, email address and account identifier are not included in those requests. The prompt is built from the exercise and your answer, not from your profile.
We do not train any model on your work, and we do not grant our AI provider rights to do so.
Responses to identical requests may be cached in server memory for up to an hour. These features are disabled entirely unless an AI provider is configured for this deployment — see the subprocessor table below.
Who else processes your data
We use a small number of service providers to run the product. Each processes data only to provide its service to us.
We do not sell your personal data. We disclose it otherwise only where we are legally required to, or where it is necessary to protect someone's rights or safety.
| Provider | What they do for us | Where | Status |
|---|---|---|---|
| Fly.io | Application hosting, compute, and daily encrypted volume snapshots | United States | In use |
| Tigris Data | Encrypted database backups, via Litestream | United States | In use |
| Google LLC | Optional "Sign in with Google" | United States | In use |
| GitHub, Inc. | Optional "Sign in with GitHub" | United States | In use |
| Anthropic PBC | AI tutor hints and the chat learning modes | United States | In use |
| Resend | Transactional email (password resets, class invitations) | United States | Not currently in use |
Status reflects this deployment: a provider marked "not currently in use" is not configured here, so no data reaches it. The full list is shown either way.
Where your data is stored
In the United States. The application runs on Fly.io; the database is a SQLite file on an encrypted persistent volume, with continuous encrypted replication to Tigris object storage and daily encrypted volume snapshots held by Fly.io.
If you are in the European Economic Area or the United Kingdom, your data is transferred to the United States. The transfer mechanism for your deployment should be confirmed with privacy@textshelf.com before you rely on it.
How long we keep it
Sessions expire after 30 days and expired rows are deleted. Password-reset and invitation links expire and are single-use.
Your learning data is kept for as long as your account exists, because it is your progress — deleting last month's answers would delete the schedule built from them.
When you delete your account, everything keyed to you is removed immediately: your answers and the text you typed, your review schedule, your mastery summaries, your lesson completions, your class enrollments, your linked sign-ins, your sessions, and any testimonial or early-access request submitted with your email address.
Backups are the exception. Two systems keep an encrypted copy: continuous replication to object storage, and a daily snapshot of the disk. Deleted data persists in those for up to 7 days before rolling off. It is not restored to the live service and is not used for any other purpose.
Your choices and your rights
- See and correct your account information at /settings, and your learning data at /progress.
- Delete everything yourself at /settings. No email, no waiting. (If you teach a class that has students in it, you will be asked to transfer or archive it first — other people's records are attached to it.)
- Export: write to privacy@textshelf.com and we will send you your data in a machine-readable form.
- Complain to your local data protection authority if you think we have got this wrong.
If you are in the EEA or UK, our legal bases are: performing our contract with you (to run the service), our legitimate interests (security and abuse prevention), and your consent (for optional AI features). If you are in California, Colorado, Connecticut, Virginia or a state with comparable law: you have the right to know, delete and correct; we do not sell your data or use it for targeted advertising, so there is nothing to opt out of.
If your account was created by your school, send these requests to your school. We will assist them.
For schools and institutions
This section is for the person at an institution who has to sign something.
- Education records created by your students on this service remain yours. We process them only on your documented instructions.
- We act as a school official with a legitimate educational interest under FERPA 34 CFR §99.31(a)(1)(i)(B), under your direct control with respect to those records.
- We do not re-disclose student records to anyone outside the subprocessor list below, which exists solely to run the service.
- Nothing student-identifying is published, and there is no directory-information disclosure of any kind.
- We will give you notice of a material change to the subprocessor list.
- We will notify you of a confirmed security incident affecting your data within 72 hours of confirming it.
- On termination we will return or delete your institutional data within 30 days, at your election.
- No advertising, no sale of data, no behavioural profiling, for students or anyone else.
- FERPA does not itself require a signed agreement for a school official, but we will sign a data protection agreement. Write to privacy@textshelf.com. If your district or system has its own template, send it — we would rather work from your paper than ours.
Children
This service is not directed to children under 13, and we do not knowingly collect personal information from a child under 13 who signs themselves up.
Where an institution enrolls students under 13, the institution is responsible for obtaining parental consent under COPPA's school-consent provisions and directs our processing of those students' data. If you believe a child under 13 has signed up without that, write to privacy@textshelf.com and we will delete the account.
How we protect it
Passwords are hashed with argon2id. Sessions are server-side, with HttpOnly, Secure and SameSite cookies. HTTPS is enforced for all traffic. Authentication endpoints and public forms are rate limited. Access to production data is limited to those who need it.
No system is perfectly secure, and we will not claim otherwise. If you find a vulnerability, write to security@textshelf.com — we would much rather hear from you than not.
Changes to this policy
This policy is effective 11 August 2026. If we make a material change we will say so on the site and, where required, by email. Continuing to use the service after a change means the updated policy applies to you.
Contact
- Privacy questions and rights requests: privacy@textshelf.com
- Security reports: security@textshelf.com
- Anything else: support@textshelf.com
- Post: TextShelf LLC, 1025 Connecticut Ave NW Ste 615, Washington, District of Columbia 20036-5446