Privacy
Plain words about what Versed Teach keeps and who can see it. Last updated 11 September 2026 (added goals, data points and service minutes, then AI drafts, the worksheet maker, and then the sample class, the behaviour log, reminder emails and read-only share links).
The short version
- Your students' data belongs to you. We store it only so you can get it back on another device. We never sell it, share it, or use it for anything else.
- No account, nothing leaves your browser. "Try without an account" keeps everything in this browser's storage. We cannot see it. "Try it with a sample class" is stronger still: six invented students that live in that browser tab alone and are never saved to your device or sent anywhere.
- With an account, we store your email, a hash of your password, and your tracker (class names, student names, scores, notes, flags, parent-contact log, accommodations, goals with their data points, the behaviour log, service minutes, settings) on Cloudflare's D1 database, in the Asia-Pacific region.
- No ad tracking, and no cookies except one session cookie that keeps you signed in. Page views are counted by Cloudflare Web Analytics, which sets no cookies, does not fingerprint your device and never sees a student's name or any tracker content — only which page was opened, from which country, and how fast it loaded.
- You can export or delete everything yourself, at any time, from the account menu. Deleting your account removes the lot immediately.
What we store, exactly
Without an account: your tracker lives in your browser (IndexedDB, or localStorage on older browsers). It is never sent to us. Clearing your browser's site data deletes it, so keep a JSON backup from Settings.
With an account:
- Your email address, used to sign you in and to send a password-reset link when you ask for one.
- A salted scrypt hash of your password (PBKDF2-SHA256, 100,000 iterations, where scrypt is unavailable). We cannot read your password.
- Your whole tracker as one JSON document, with a revision number and a time stamp, so that your devices can stay in step.
- Session records (a hash of your sign-in token, when it was created and last used; sessions expire after 30 days) and a short-lived counter used to slow down repeated wrong passwords.
Student names, scores and your notes are personal data about children. Treat notes the way you would treat a mark book: write what you would be comfortable showing a parent or a colleague.
- Notes: the text you type, the time you typed it, and any tags you pick (behaviour, effort, wellbeing, parent, accommodation, praise). They are yours: nobody else can read them, and deleting a note removes it from the next sync onwards.
- Parent contacts: the date, the channel (call, email, message, in person), who you spoke to as you wrote it, your summary and a follow-up date. Kept only inside your tracker, owned by you, deletable one entry at a time or with the student.
- Accommodation logs: each student's list of accommodations (extra time, reader, seating, breaks, or your own) and, per class and per day, whether each was provided, not needed or the student was absent. Same rules: stored in your tracker, exportable as CSV for the school's records, deleted when you delete the student or the class.
- Goals and their data points: the goal as you wrote it, its area, how it is measured, the baseline, the target and target date, its status and your notes on it; then one row per observation — the date, the number you recorded (and how many trials it was out of), and an optional note. Progress lines and the "on track" sentence are worked out from those rows in your browser; nothing is scored or judged anywhere else. Same rules as notes: yours, exportable as CSV, and deleted when you delete the goal, the student or the class.
- Service minutes: the date and the number of minutes you recorded with a student, with an optional note. Same rules again — a record you keep for your school, stored only in your tracker.
- The behaviour log: per entry, the date and time, the setting you picked, what came before, what the student did, what happened next, an intensity of 1 to 3 and your one-line note. It is the most sensitive thing in the tracker, so it stays the most tightly held: it is stored only in your tracker, it prints and exports only when you ask, and no part of its text is ever sent to a model — an AI parent update may be told that something happened four times, never what it was like or what you wrote about it.
- Review and meeting dates: a date on a goal and a date on a student, and a single on/off setting for whether you want an email about them. Nothing else — see Reminder emails.
- Share links: for each link you create, a random identifier, which class and student in your own tracker it points at, the date range, when it was made and when it stops working. No copy of the record is made — see Read-only share links.
The sample class
"Try it with a sample class" loads six invented students — A. Tan, B. Okonkwo, J. Lim, M. Ortiz, R. Haddad, S. Novak — with invented marks, goals, notes and behaviour entries. Nobody real is in it. While you are in the sample, nothing is uploaded and nothing is written to your own tracker: the sample lives in that browser tab's session storage and is thrown away when you close the tab, press "Leave the sample", or sign up. If you already have an account, your own classes carry on syncing untouched in the background; the sample is never part of that.
Where it lives and who can see it
Accounts and trackers are stored in a Cloudflare D1 database (SQLite) belonging to Versed, hosted in Cloudflare's Asia-Pacific region. Traffic between your browser and the server is encrypted (HTTPS). Cloudflare encrypts its storage at rest as part of its infrastructure, but we do not add our own layer of encryption on top, so the tracker is readable by anyone with administrative access to that database — in practice, the one person who runs Versed, and Cloudflare as the hosting provider under its own policies. We look at a teacher's data only to fix a problem they have asked us about.
The fonts on this site are loaded from Google Fonts, which means Google receives your IP address when the page loads. That is the only third-party request the app makes. The small "Ad" line at the bottom is a static credit and does not track you.
AI drafts
Some pages have a Draft with AI button: it writes a first draft of a progress narrative, a measurable goal, a few things to try next, or a short parent update, from what you have already recorded. It is optional and it does nothing until you press it.
- Student names never leave your device. Before the request is made, your browser replaces every student name in the class with their initials — in the goal you typed, in your notes, everywhere. The draft is written about "A.T.", not about a child the model can identify. A parent update is written as "your child", with no initials at all.
- What is sent: those initials, the numbers and dates you recorded (baseline, target, the data points, service minutes), and the text of the goal, notes or contact summaries the draft is built from. Nothing else — not your email, not your class names, not the rest of your tracker.
- Nothing is stored. The request is read, passed to the model and dropped. The only thing written down is a counter of how many drafts your account has used today (the limit is 20), and that counter holds a number and no text at all.
- Where the model runs: on Cloudflare's own network (Workers AI), in the same account that already hosts this app. The text is not sent to OpenAI, Anthropic, Google or anyone else. Cloudflare's data statement for Workers AI says it "does not use your Customer Content to (1) train any AI models made available on Workers AI or (2) improve any Cloudflare or third-party services". We do not use it to train anything either.
- Nothing is written into your records. A draft arrives as editable text in a sheet. It becomes a note only when you press Save as note, and a goal only when you press Use this and then save the goal yourself.
- Read it before you use it. A draft is a suggestion from a language model. It can be wrong, it can miss the point, and it is your name on the record — so read it, edit it, and keep the parts you would have written yourself.
Worksheets
The Worksheets page writes practice questions from something you give it: a topic, a question you paste, your notes, the text of a PDF, or a photograph of a page. A worksheet is about a subject and never about a child — there is no student in it, so no student’s name, mark or note is ever part of the request.
- What is sent: exactly what you typed, pasted or chose — the topic or the words — plus the settings you picked (kind of question, difficulty, how many, level, language). A PDF is read in your browser by the page itself and only the words it contains are sent; the file never leaves your computer. A photograph is shrunk in your browser and sent once, to be read back into a box you can correct, and is dropped the moment it has been read.
- Nothing is stored. The request is read, passed to the model and dropped — no topic, no notes, no photo, no question and no answer is written down anywhere. The only write is a counter of how many worksheets your account has made today, which holds a number and no text at all.
- Where the model runs: on Cloudflare’s own network (Workers AI), exactly as the AI drafts above, under the same data statement. The finished worksheet lives in that browser tab and nowhere else until you print it.
- Read it before you hand it out. The questions are a draft from a language model. They can be wrong or badly pitched, and every one of them is editable on the page for that reason.
Reminder emails
If you turn reminders on in Settings, a job runs once a day, looks at the review dates on your goals and the meeting dates on your students, and emails you seven days and one day before each one. It goes to the address on your account and nowhere else. We use Resend to send it, the same provider as a password reset.
- No student name is in the email. Students are named by their initials, the same rule the AI drafts follow: "J.L. — goal review". Your students' names leave your account only in something you export or share yourself.
- Nothing is stored about a reminder. There is no sent-log, no queue and no per-reminder row: the job reads the dates already in your tracker, sends, and forgets. Turning the setting off stops it at once.
Read-only share links
On a student's page, Share makes a link that shows that one student's record — exactly what the printed record shows for the range you pick, built by the same code — to anyone who opens it, with no sign-in. It is for handing a record to a colleague, a parent or a review meeting without emailing a file around.
- It shows only what the printed record shows: that student, that range. No other student, no other class, no settings, no way into your tracker.
- It expires after the 7 or 30 days you chose, and you can revoke it from the student page at any time; the link stops working on the next request.
- It is unguessable and signed. The link carries 128 random bits and a signature made with a key we hold only as a server secret. We store the identifier but never the signature, so a copy of our database on its own produces no working link.
- No copy is taken. The page is built from your live tracker when it is opened, so deleting the student, the class or your account empties the link too.
- Anyone with the link can open it until it expires or you revoke it. Treat it like the paper copy: send it to the person who needs it, and revoke it when they are done. We record nothing about who opens it — no hit counter, no log of visitors.
What we never do
- Sell, rent or share your data, or your students' data, with anyone.
- Use student data to train models, build profiles, or send marketing.
- Send a student's name to a model, or store anything an AI draft was written from.
- Send a student's name in an email, or put one in a link. Initials only.
- Send any of the behaviour log's text — the antecedent, the consequence or your own note — to a model. Counts by kind are the most that ever travels, and only for a parent update you asked for.
- Record who opens a share link, or keep a copy of the record behind one.
- Run analytics scripts, tracking pixels or advertising trackers.
- Read your tracker for any reason other than a support request from you.
Your controls
- Export: account menu → Export my data downloads everything we hold about you as JSON. Settings → Export JSON does the same for the local copy.
- Delete: account menu → Delete account removes your account, sessions and tracker from the server straight away. There is no soft-delete or backup we keep on purpose; Cloudflare's own point-in-time backups age out within 30 days.
- Revoke a share link: student page → Share → Revoke. It stops working straight away.
- Reminders: Settings → Email me about dates coming up. Off by default.
- Sign out clears the local copy from that browser (it stays on the server for your next sign-in).
- Ask us: if you would rather we do it, email hello@versedapps.com from the address on the account and we will delete it, or send you a copy, within a few days.
Children
Versed Teach is for teachers and tutors, not for students. There are no student accounts and no student logins. Do not create an account for a child. Students' names and marks are entered by their teacher, who remains responsible for them under their school's policies; if a parent or school asks you to remove a student's data, delete the student and it is gone from the next sync onwards.
Your rights, wherever you teach
Versed Teach is used by teachers and tutors in many countries. The rules below are the ones people ask about most; the practice is the same everywhere: the data is yours, you can export or delete it yourself, and we never sell it.
European Union and United Kingdom (GDPR)
- For your own account details, Versed is the controller. For your students' names and marks, you (or your school) are the controller and Versed is a processor acting only on your instructions: storing the tracker so you can get it back on another device.
- The lawful basis for your account is the contract with you; for student data it is whatever basis your school relies on for a mark book, usually its public task or legitimate interest.
- Access, rectification, erasure and portability are self-serve: edit anything in the app, Export my data gives you a JSON copy, and Delete account erases everything at once. Email us if you would rather we did it.
- The data is stored on Cloudflare in the Asia-Pacific region, so it leaves the EU/UK. Cloudflare's data processing addendum and standard contractual clauses cover that transfer. If your school needs a signed processing agreement, ask and we will send one.
- We keep no data longer than your account exists; sessions expire after 30 days.
United States (FERPA and COPPA)
- Names, marks and notes you enter are education records under your school's control. Versed only stores them for you and does not use them for anything else, which is the "school official" arrangement FERPA describes. You decide what to record; keep to what your school would put in a mark book.
- COPPA does not apply, because no child uses Versed Teach: there are no student accounts, no student logins, and we collect nothing from students directly. The only account is the adult teacher's or tutor's email.
- A parent's or school's request to correct or remove a student's data is met by editing or deleting that student in your tracker; the change reaches the server at the next sync.
Singapore (PDPA)
- Versed collects your email only to run your account, and stores your students' data only for the purpose of showing it back to you. We do not use it for any other purpose and do not disclose it.
- You may withdraw consent and have the data removed at any time from the account menu. Our Data Protection Officer can be reached at hello@versedapps.com.
For school IT
No student logins. One account per teacher or tutor, with email and password, Google, or Apple sign-in; a Google or Apple sign-in stores only the verified email, the display name and that provider's stable id for the account, never a password. Stored: the teacher's email, a salted password hash, and one JSON document per account holding class names, student names, scores, notes, flags, parent-contact entries, accommodation logs, goals with their data points, the behaviour log, and service minutes, on Cloudflare D1 (Asia-Pacific) over HTTPS only. Read-only share links are signed, expiring capability URLs a teacher mints and revokes themselves; reminder emails carry initials, never names. No trackers and no ad network; the only outside requests are Google Fonts and Cloudflare Web Analytics, which counts page views without cookies, without fingerprinting and without ever seeing tracker content. Export and delete are self-serve from the account menu and take effect immediately. Questions, data processing agreements or a vendor questionnaire: hello@versedapps.com.
Changes
If this page changes in a way that matters, the date at the top moves and we will say what changed here. Versed Teach is run by Versed, Singapore. Questions: hello@versedapps.com.