Privacy
Short, plain, and written against what the code actually does. Where we cannot prove something from our own code, this page says so instead of promising it.
Who we are
LessonLayer is run by Greg Gorman, trading as LessonLayer ("we", "us"). We deal with customers by email only, at [email protected]; we do not publish a postal address.
When a university or college uses LessonLayer under an agreement with us, we process the teaching material its staff put in on its behalf and on its instructions: for that material the institution is the controller and we are its processor (the data processing agreement sets this out). For everything else on this page (access codes, balances and statements, our operational records and emails you send us) we are the controller.
What happens when you make a lesson
- Your file is read in your browser. PowerPoint and Word files are unpacked and their text extracted by JavaScript running on the Create page. Markdown and text files are read the same way. The original file is never uploaded. Images, video and embedded files are left out. Hidden slides are skipped. A PDF is read the same way, as printed: its text is extracted in your browser, pages with no text are skipped, and any notes printed on its pages are read too.
- What leaves your browser is the extracted text. The request contains the extracted text of your slides or document, your speaker notes if you choose to include them, the file's name and type, any learning outcomes you typed, and the one key idea you want students to get, if you gave one. It is sent over HTTPS to the LessonLayer service that makes the lesson.
- Your pilot access code goes with it. The service checks the code before it reads anything else and refuses a request without a valid one. The Create page remembers the code in your browser's local storage so you enter it once; "Use a different code" removes it.
- The AI provider. To write the lesson, our service sends the extracted text to an AI model. For university and college departments this is Anthropic's Claude (Claude Sonnet 5.5), through Anthropic's own service. Anthropic is a US company. We ask Anthropic to run the model only in the US, and Anthropic stores what it receives in the US, so this text leaves the UK for this step. Anthropic deletes what it receives within 30 days, unless its automated checks flag it for a breach of its usage policy, when it may keep it for up to 2 years. Anthropic's commercial terms say it "may not train models on Customer Content", and its data processing addendum, which is part of those terms, makes it our processor and covers transfers out of the UK with the UK Addendum to the EU Standard Contractual Clauses. We cannot verify Anthropic's handling from our own code; we rely on these terms. LessonLayer's own test account, used only by the founder with the founder's own material, uses DeepSeek, a company based in the People's Republic of China. Your department's material is never sent to DeepSeek: the service chooses the provider by access code, and a department whose provider is not switched on is refused rather than sent elsewhere.
- Your lesson is kept while it is made, then deleted. Making a lesson can take a few minutes, so the service keeps the job in Cloudflare storage in the EU while it is being made and until you download it, so that closing the tab does not lose it. The job holds your request text (deleted as soon as the lesson is made), the lesson and the AI model's replies, your department's name, a scrambled copy (a one-way hash) of your access code and when it started. It is identified by a random number that only your browser holds and can only be read with your access code. It is deleted when you download the lesson (the HTML file or the SCORM package), or 24 hours after you started it at the latest. It is never used for anything else: not for training, not for analytics, and not shared with anyone else.
- Downloading. When you download, the page sends the lesson and your review choices, including any text you edited, to our service. The service checks that the lesson is the one it made for your code, applies the same checks the review screen shows, charges the lesson if it has not already been charged (a lesson that is ready is charged when it is built), and sends it back. Nothing of the lesson or your edits is kept. The file itself is built in your browser and saved straight to your device; we never receive a copy of what you download.
- Building a whole module (optional). If you choose "Build a whole module", you add each lecture's file (a lecture can be several files) and the page reads each one in your browser exactly as it does for a single lesson. To plan the module, the extracted text of all the lectures is sent, in one request, to the LessonLayer service, which works out which of our ready-made interactive activities fit each lecture. One extra request goes to the AI provider for the whole module. It carries a short summary of each lecture (its title, the key idea and learning outcomes if you gave them, and its slide headings) and a short list of activities that may fit, with what each can and cannot do; it does not carry the slides' body text. The provider is the same one that would make your lessons (Anthropic, in the US, for departments). The plan that comes back is shown to you to review and edit and is not kept by us: it lives in your browser until you make the lessons. Each lesson is then made as a separate background lesson, exactly as a single lesson is, with the choice you confirmed for it. If one of the lessons is a review of the module, it is made with a few sections from each of the module's other lectures sent alongside its own text (at most 30 sections and 30,000 characters in all, plain text only, never speaker notes). They are used only to write that lesson's review questions and are handled exactly like the lecture text you upload: sent to the AI provider for that lesson and not kept afterwards.
- Your browser keeps a note of a lesson in progress. While a lesson is being made, the Create page keeps its job number, start time, file name and slide labels in your browser's local storage, so it can reconnect if you close the tab. The note is removed when you download the lesson, when it fails, or when the job has expired.
Module history
If you give a module a name, the service remembers which of our activities were in
the lessons you downloaded for that module, so that a later lesson for the same
module is not given the same activity by accident. What is kept, under your
department's access code: the identifiers of those activities (for example
ll-freud-models); a one-way hash of the module name (not the name
itself); a short number-based identifier for each lesson the module plan covered (at
most 20); and the time it was last updated. Nothing else: no lecture text, no lesson
title, no key idea, no file name and no lesson label. It is kept in the same EU
storage as your department's balance. At most 40 modules and 200 activity
identifiers are kept per code. It is deleted when your department's access ends or
the code is stopped, and you can clear one module's history whenever you like with
"Forget this module's history" on the module page. It is not used for anything
else. A single lesson uses the module history only if you type a module name.
Free trials
Asking for a trial. When you ask for a free trial on our website, the form sends your name, your email address, the subject you teach, and whether you ticked the optional box for LessonLayer news, to the founder's own email inbox. Our service does not store them: the email is the only copy. We use them to check your request and to send you a trial code by hand. We do not send automated emails, and we do not share your details with anyone.
- Emails about your trial. We email you about your own trial: your code, and anything you need to know about it. These are service messages, so they need no tick.
- LessonLayer news. Only if you ticked "Send me occasional LessonLayer news (unsubscribe any time)". The box starts unticked, and a trial does not depend on it. To unsubscribe, reply "unsubscribe" to any news email or email [email protected]; we stop at once. Unsubscribing does not affect your trial.
- How long we keep them. The request email is kept in the founder's mailbox for up to 12 months after our last contact with you, then deleted. If you unsubscribe from news, we keep only a note of your address so that we do not send you news again.
Your trial code. A trial code makes one lesson. We keep a one-way hash of the code (never the code itself), the name we gave it (usually your name), when it was issued, when it expires, whether and when it was used, and whether its lesson was made. This record is kept in Cloudflare's EU region and is deleted 30 days after the code stops being usable: 30 days after it expires unused, or 30 days after its lesson's 24 hours end.
Your trial lesson. It is made the same way as a pilot lesson (see "What happens when you make a lesson" above), with these differences:
- the text extracted from your file is sent to Anthropic (United States), which runs the Claude model that writes the lesson, processes it only in the US, deletes it within 30 days (longer only if flagged under its usage policy) and may not train its models on it. Trial lessons are never sent to any other AI provider;
- the lesson is kept on our side only for its 24 hours, so that you can come back to it, then deleted; your extracted text is deleted as soon as the lesson is made;
- trial lessons cannot be downloaded.
Who decides. For a trial you are not using LessonLayer under an agreement with your institution, so for the request, the trial record and your trial lesson we are the controller.
Remembering where a student was
A lesson remembers which page a student reached, which pages they have seen, whether they finished the core lesson and whether they opened Go deeper, so that they can carry on later: in the student's own browser on their own device (nothing about the student is stored or sent to us), or, in a SCORM package, in your VLE's own record.
Your department's AI balance and statement
Lessons are paid for from your department's prepaid AI balance, at the AI provider's cost with no markup. A lesson is charged when it is built and ready to use, whether or not it is downloaded; a lesson that fails or is blocked costs nothing. A lesson that needs the lecturer's decision first is charged when it is first downloaded, and costs nothing if it is not downloaded within 24 hours. For each access code we keep a ledger, found by a one-way hash of the code (the code itself is not stored). It holds the balance, the money set aside for lessons being made, running totals, whether the code has been withdrawn, and one statement line per lesson and per top-up: the date and time, a random lesson number, the number of AI calls and tokens, the provider's cost, what was charged, whether the download was described as "verified" or "lecturer-approved" and how many review items were kept as written. No names, no lesson content and none of your material. Statement lines are kept while your department has access and for 12 months after its access ends, then deleted automatically; the running totals are kept as long as we need them for our accounts. We also keep a list of these one-way hashes, each with the date it was first seen, so that our scheduled clean-up can find every ledger; a code's entry is deleted 12 months after its access ends, at the same time as its statement lines. The one extra request that plans a module appears on the statement as its own line ("module plan") with its cost. It is not charged.
Our operational records
To run the service we keep counts, error codes, timings and costs, per day and per department (the department's name): for example "12 lessons, 1 failed, average 4 minutes, 38p". They never contain lesson content, your material, an access code or anyone's name, and they are deleted after 30 days. When lessons fail in a burst, or a department's balance runs low, the service emails these counts to the founder's own email address. These alert emails hold counts and balances only (a low-balance alert names the department), never lesson content or an access code, and are kept in the founder's mailbox for up to 90 days. Cloudflare also offers a live log view of requests, which we open only to investigate a problem and which is not stored; it shows request headers, including the access code, so we never save or share it. Free-trial requests and trial lessons are counted under the name "Free trial", never the person's name or email address.
Who else handles data, and where
- Cloudflare hosts this site and the service, and stores lesson jobs and ledgers in its EU region. Cloudflare is a US company; its data processing addendum sets out how it protects data handled outside the UK and EU. Cloudflare processes technical request data (such as IP addresses) to run and protect its network, under its own terms.
- Anthropic (US) runs the AI model that writes your department's lessons and free-trial lessons, as described above. Its sub-processors are listed at anthropic.com/subprocessors.
- DeepSeek is used only for the founder's own test account.
- The earlier free-scan form is closed. Submissions made through it were stored in Cloudflare storage and are deleted 90 days after they were made.
Your students
- LessonLayer creates no student accounts and collects no learner personal data.
- A downloaded lesson carries its interactions inside the file and sends nothing back to us. There is no tracking, no analytics and no callback in the exported lesson.
- Approved interactive activities are built into the lesson file and work offline. If an activity is not built into the file, it is loaded when a student opens that page, in the same way as any other embedded web page: an Open Psychology Interactives activity from the public Open Psychology Interactives site, and one of LessonLayer's own activities from lessonlayer.co.uk.
- SCORM download. If you download the SCORM version for your VLE, the lesson reports whether the student has completed it and, so that they can carry on later, the lesson's own place record (the page reached, the pages seen, whether the core lesson is finished and whether Go deeper was opened), and only to your institution's own VLE. Nothing is sent to us.
This site
This site currently runs no analytics and sets no cookies. The build only includes an analytics script once one is configured, and none is configured on this build.
The site sets no cookies. Its pages and scripts are served from lessonlayer.co.uk through Cloudflare.
Why we use this data (lawful basis)
- Teaching material in a lesson job: we process it for your institution, under our agreement with it and on its instructions.
- Access codes, balances, statements and billing: to perform our contract with your institution.
- Operational records and alerts: our legitimate interest in running a reliable, secure service; they hold no personal data about lecturers or students.
- Emails you send us: our legitimate interest in answering them. We keep them for up to 2 years after our last contact with you, then delete them.
- Free trials: handling your request and your trial lesson, and emailing you about your own trial (service messages, no tick box needed): our legitimate interest in offering and running a free trial you asked for. LessonLayer news: your consent, given only by ticking the optional, unticked box on the form; you can withdraw it at any time by unsubscribing, and the trial does not depend on it.
Your rights
Under UK data protection law you can ask us for a copy of personal data we hold about you, ask us to correct or delete it, ask us to restrict or stop using it, and object to our using it. Email [email protected] and we will reply within one month. For teaching material processed on your institution's behalf, we will also involve your institution. If you are unhappy with how we handle your data, you can complain to the Information Commissioner's Office (ico.org.uk/make-a-complaint, 0303 123 1113), though we would like the chance to put it right first.
Please do not upload personal data
LessonLayer is for teaching material. Do not upload files containing student personal data, marks, or anything else about identifiable individuals, and check your speaker notes before including them.
Contacting us
If you have a question about how LessonLayer handles your material, email us at [email protected]. If you write to us, we hold that message and your address so that we can reply to it.
Last updated: 10 October 2026.