0.1 — draft for legal reviewNo effective date

Terms of Service

The terms on which students, teachers, tutors and schools may use MyCodePad.

These terms set out what you can expect from MyCodePad and what we expect from you. They apply to students, teachers, tutors and schools, and to the free tier as well as to paid plans.

Prices, billing intervals and seat allowances on this page are generated from the same configuration our checkout charges from, so they cannot drift apart from what you are actually billed. Clauses that need a lawyer rather than an engineer are flagged where they appear.

1.Who we are and how to contact us

MyCodePad is operated by To be confirmed: registered legal name of the MyCodePad operator, a Sole trader with company number Not applicable — MyCodePad is operated by a sole trader, who has no Companies House registration, whose address is To be confirmed: registered or trading postal address.

For questions about the service or your subscription, contact To be confirmed: general support contact address. For anything concerning personal data, contact To be confirmed: privacy and data protection contact address. To report a security issue, contact To be confirmed: security and breach notification contact address.

2.These terms, and what they are not

By creating an account or using MyCodePad you agree to these terms. If you do not agree to them, do not use the service.

Where a school has a separate written agreement with us, that agreement takes precedence over these terms for that school and the accounts it covers.

Accepting these terms is not a consent to data processing

These terms are a contract about using the service. They are not, and must not be treated as, your consent to any processing of personal data. How we handle personal data is set out in the Privacy Policy, and where consent is the right lawful basis for something we will ask for it separately and specifically.

3.Eligibility and registering an account

Registering requires a name, an email address, a password and a choice of role — student or teacher. One person, one account.

The minimum age to register an individual account yourself is 13. A child under 13 must be given an account by their school rather than registering themselves. Where a school or a teacher provides access to pupils, the school or teacher is responsible for ensuring they have whatever authority they need to do so, including any parental notification their own policies require.

You must give accurate registration details and keep them up to date. The role you pick at sign-up is limited to student or teacher; the school administrator role is only ever granted by creating a school or being promoted within one, and cannot be requested.

Email addresses are not currently verified, so an account can exist against an address you do not control. Do not treat an account as proof of identity.

4.Responsibilities of students, teachers, tutors and school administrators

Different roles see different things, so they carry different obligations.

Students

  • Use the platform for your own learning, and do not try to reach anybody else's account, class or work.
  • Do not share your password, and do not sign in as somebody else.
  • Remember that publishing a file as a public link makes it readable by anyone who has the link.

Teachers and tutors

  • You can see, mark, comment on and directly edit the work of pupils in your own classes. Use that access for teaching and nothing else.
  • A correction you make to a pupil's code is recorded against your name, and their previous version is kept.
  • Class join codes are bearer credentials: anyone holding a live code can join that class. Share them only with the pupils you intend to teach, and deactivate or reissue a code when it has served its purpose.
  • You are responsible for the content of the tasks and material you create and distribute.
  • Where you provide access to children, you are responsible for complying with your own school's safeguarding and data protection policies.

School administrators

  • You manage staff and pupil membership, invite codes and seat usage for your school, and you can see the school's classes and members.
  • You are responsible for issuing invite codes appropriately, and for removing members who should no longer have access.
  • Removing a member marks their membership as removed. It does not delete their account or their work — see section 17.
  • Where your school is the controller for pupil data, the School Data Processing Agreement applies to our processing on your instructions.

5.Acceptable use

MyCodePad is a learning platform used by children. Use it accordingly.

You must not:

  • Attempt to access any account, class, school, file or task you have not been given access to, or test the platform's access controls without our written permission.
  • Upload, write or distribute content that is unlawful, abusive, harassing, discriminatory, sexually explicit, or harmful to children.
  • Use the platform to bully, intimidate or impersonate anybody.
  • Attempt to guess, brute-force, harvest or redistribute class join codes or school invite codes.
  • Interfere with the service, overload it, or use automated means to scrape it or to drive the AI features beyond ordinary use.
  • Reverse engineer, resell, sublicense or white-label the platform.
  • Use another person's credentials, or let somebody else use yours.
  • Circumvent plan limits, seat allowances or payment.

If you find a security vulnerability, please report it to To be confirmed: security and breach notification contact address rather than exploiting it or publishing it.

6.Running code in the browser-based editors

Python runs inside your own browser in a sandboxed worker, and HTML previews render in a sandboxed frame that cannot reach the rest of the page or your session. Your code is not executed on our servers.

Because your code runs on your own device, you are responsible for what it does there. Do not write or run code intended to attack a system, mine cryptocurrency, exhaust a device's resources, or exploit the browser or the sandbox.

The Python runtime is downloaded from a public third-party CDN. If that CDN is unavailable, the Python editor will not start; this is outside our control.

The editors are provided for learning and are not represented as a production development or hosting environment. Do not rely on them to run anything that matters.

7.Account security and credential sharing

You are responsible for keeping your password secret and for activity carried out through your account.

Passwords must be at least eight characters. Changing your password requires your current one, and signs out every other device. Resetting a forgotten password through the emailed link also signs out every existing session, because a forgotten password may be a compromised one. Reset links expire one hour after they are issued.

Shared accounts are not permitted, including shared class or form accounts: marking, feedback and attribution are meaningless if more than one person is behind a login. Tell us at To be confirmed: security and breach notification contact address if you believe an account has been compromised.

8.Your content, and the permission we need to host it

You own the code, projects and files you create. Using MyCodePad does not transfer any ownership of them to us.

To provide the service we need your permission to do specific things with that content, and nothing more. You therefore grant us a non-exclusive, royalty-free, worldwide licence, for as long as your content is on the platform, to host, store, back up, reproduce and display it, and to transmit it, solely in order to:

  1. show your work back to you in the editor and keep it saved between sessions;
  2. show it to the teacher who owns the class it belongs to, and to administrators of your school;
  3. display it on a public page where you have chosen to publish it as a link;
  4. send the file contents and error text to our AI provider when you ask for error help, as described in the Privacy Policy;
  5. operate, secure and back up the platform.

The licence ends for a given file when you delete it, and for a published page when you revoke its link, subject to copies that remain in backups until those expire. We do not use your content to advertise, and we do not license it to anybody else.

You confirm that you have the right to the content you put on the platform, and that it does not infringe anybody else's rights.

AI training is a separate question

Whether our AI provider retains or trains on prompts has to be confirmed with that provider in writing. Until it is, this clause does not purport to grant any rights for model training, and none should be inferred from it.

9.Teacher material, assignments and student submissions

A teacher owns the tasks, library files and starter quizzes they create. A pupil owns the work they produce in response.

When a teacher distributes a library file, each pupil receives their own copy. The task attached to the original remains the teacher's, and every copy reads it live, so editing the task reaches every pupil who has it. Worked solutions attached to a task are teacher-only and are never sent to a pupil.

A teacher may mark, comment on and directly edit a pupil's file. Any direct edit is attributed to that teacher by name and the pupil's own previous version is preserved, so a correction can always be traced and never destroys the pupil's work.

Where a teacher works for a school, the school's own policies may determine who owns material produced in the course of employment. That is a matter between the teacher and their school, and nothing in these terms affects it.

10.Free features, Pro plans and school subscriptions

MyCodePad has a genuinely usable free tier. Paid plans lift its limits and add teaching features.

The free tier

  • Students: 1 folder and 2 files in each IDE.
  • Teachers: 1 class with up to 25 students, plus 2 library files and 2 library folders.
  • Both browser editors are available on the free tier.

Paid plans

Current plans, prices and seat allowances
PlanPriceSeats included
Student Pro£1.99 a monthCovers the one account that buys it
Teacher Pro£9.99 a month100 student seats
Small School£14.99 a month, or £149 a year4 teacher seats, 700 student seats
Big School£24.99 a month, or £249 a year8 teacher seats, 1,100 student seats
MAT£99.99 a month, or £999 a year50 teacher seats, 3,000 student seats

Student Pro and Teacher Pro are sold monthly only. School plans are sold either monthly or yearly; the yearly price is the one quoted by default.

A school plan covers every teacher and pupil who is an active member of that school, up to the seat allowances above. Teacher Pro bought by an individual teacher covers up to 100 distinct pupils counted across all of that teacher's classes — not per class — and every pupil they teach is lifted onto Pro at no extra cost.

Launch sale and the price-lock promise

The Launch sale is currently running. The plans discounted under it are those shown above with a reduced price: Student Pro and Teacher Pro. If you subscribe to a discounted plan while the sale runs, we will keep you on that price for 2 years from the day you subscribe, counted from your own start date rather than from a fixed calendar date. School plans are not discounted: their prices above are current prices, not reduced ones.

11.Prices, billing intervals and VAT

All prices are in pounds sterling and are charged by Stripe, our payment processor. We never see or store your card details.

Prices are the amounts shown in the table above, which are the amounts our checkout actually charges — they are generated from the same configuration.

VAT treatment is not yet settled

Our VAT position is To be confirmed: VAT registration status and whether listed prices include VAT. Our checkout is currently configured with plain sterling amounts and no automatic tax calculation, so until the position above is confirmed the listed prices should not be read as either VAT-inclusive or VAT-exclusive. This must be resolved before these terms are published, and especially before any invoice is issued to a school.

We may change prices for future billing periods. Where you are covered by the price-lock promise described above, we will honour it. We will tell existing subscribers before a price change takes effect, and you can cancel before it does.

12.Renewal, cancellation, failed payments and plan changes

Subscriptions renew automatically at the end of each billing period until they are cancelled.

Cancelling

You cancel through the Stripe billing portal, reached from the Manage billing button on your billing page. Cancelling schedules the subscription to end at the end of the period you have already paid for: you keep your paid features until then, and you are not charged again. You can resume a scheduled cancellation from the same portal before it takes effect.

Cancelling does not delete your account. When the period ends the account returns to the free tier with your work intact, though free-tier limits apply from that point. Closing an account is a separate request — see section 17.

Statutory cancellation rights and refunds

Your statutory position under the Consumer Contracts Regulations is To be confirmed: statutory cancellation / cooling-off position for individual subscriptions, and our refund policy beyond statutory rights is To be confirmed: refund policy beyond statutory rights. There is no refund logic in our billing system today, so no discretionary refund right should be inferred from these terms until this is decided. These clauses require specialist review: a business cannot contract out of a consumer's statutory rights.

Failed payments

If a payment fails, Stripe retries it according to its standard schedule and the subscription status changes accordingly. Access to paid features follows the subscription status: once it is no longer active or trialing, the account returns to the free tier. You can update your payment method at any time in the billing portal.

Upgrading and changing plan

You can change plan from the upgrade page or the billing portal. Where a change is made mid-period, Stripe calculates any proration. A school changing tier changes its seat allowances with immediate effect.

13.Seats and school subscription administration

Each school tier includes a fixed number of teacher and pupil seats, stored against that school so they can be adjusted independently of the tier defaults.

A seat is occupied by an active member of the school. When the allowance is reached, further joins are refused until a seat is freed or the school moves to a larger tier. Pupils taught by a school's teachers count against the school's pupil seats rather than against any individual Teacher Pro allowance, so the same pupil is never charged to two allowances.

School administrators are responsible for keeping membership accurate. If a school plan lapses, administrators keep their role but the school's members return to the free tier until the plan is active again.

15.Suspension and termination

We may suspend or terminate access where these terms are breached, where there is a credible risk to other users — particularly to children — or where we are required to by law.

Where it is reasonable to do so we will tell you first and give you an opportunity to put things right. Where the risk is serious, we may act immediately and explain afterwards. A school may remove any of its own members at any time.

You may stop using MyCodePad at any time. To have an account closed, contact To be confirmed: privacy and data protection contact address.

16.Export, retention and deletion after an account closes

You can download your files from inside either editor at any time, individually or as a zip archive, and you should do so before asking for an account to be closed.

After closure, data is retained for To be confirmed: retention period for account and work data after an account is closed, except for billing and tax records, which we keep for To be confirmed: retention period for billing and tax records, and anything else the law requires us to retain. Backups are retained for To be confirmed: backup retention window and the point at which deletions reach backups.

Current limitations, stated plainly

There is no self-service account deletion in the product today and no single export of your full account data. Closure and erasure requests are handled manually. Being removed from a school marks the membership as removed and leaves the account and its work in place. We are not going to describe these as finished features while they are not.

Where a school is the controller for pupil work, deletion at the end of a school contract is governed by the School Data Processing Agreement.

17.Service availability, maintenance and support

MyCodePad is provided on an as-available basis. We do not offer a guaranteed level of uptime, and nothing in these terms should be read as a service level agreement.

We may carry out maintenance, change or withdraw features, and will try to give notice of anything significant. Parts of the service depend on third parties — see the next section — and can be affected by their outages.

Several plans describe “priority support”. What that means in practice is To be confirmed: support response target, if any is offered. Support is provided by email at To be confirmed: general support contact address.

18.Third-party services we depend on

Providing MyCodePad requires other companies, and their terms govern their own services.

  • Vercel hosts the application.
  • Neon provides the database.
  • Stripe processes payments and manages subscriptions and the billing portal.
  • Resend delivers transactional email.
  • Vercel's AI Gateway, currently routing to OpenAI, powers the AI help and generation features.
  • jsDelivr serves the Pyodide runtime that executes Python in your browser.

What each of these receives is set out in the Privacy Policy. We are not responsible for a third party's own service or its availability, but we remain responsible for choosing providers and for the instructions we give them.

19.Our intellectual property

The MyCodePad platform, its name, logo, interface, editors, curriculum material and supporting code belong to us or our licensors.

You may use them to use the service as these terms allow. You may not copy, adapt, redistribute, resell or create a competing service from them, and you may not remove or obscure any proprietary notice.

Starter templates, example projects and generated tasks are provided for teaching use within the platform.

20.Disclaimers and limitation of liability

This section needs specialist review before publication

Liability clauses are the part of a contract most likely to be unenforceable if drafted loosely, and the limits that may lawfully be imposed on a consumer differ from those that may be agreed with a school. The wording below is a starting point for an adviser, not finished drafting, and the financial cap in particular has been left unquantified on purpose.

To the extent the law allows, MyCodePad is provided without warranties of any kind, express or implied, including implied warranties of merchantability, fitness for a particular purpose and non-infringement. We do not warrant that the service will be uninterrupted or error-free, that AI-generated hints, tasks or quiz questions will be accurate or pedagogically appropriate, or that code written on the platform will be correct or secure.

Nothing in these terms excludes or limits liability for death or personal injury caused by negligence, for fraud or fraudulent misrepresentation, or for anything else that cannot lawfully be excluded or limited. If you are a consumer, your statutory rights under the Consumer Rights Act 2015 are unaffected.

Subject to the paragraph above, and to the extent the law allows, we are not liable for loss of profit, loss of business, loss of goodwill, or indirect or consequential loss, and our total liability arising out of or in connection with these terms is limited to an amount to be determined on legal advice, by reference to the fees paid in a defined preceding period.

You remain responsible for keeping your own copies of work that matters to you. Export is available from inside the editors at any time.

21.Complaints and disputes

If something has gone wrong, tell us first at To be confirmed: general support contact address. Our complaints process is To be confirmed: internal complaints process and escalation route.

Complaints about how we have handled personal data can also be taken to the Information Commissioner's Office, as explained in the Privacy Policy.

22.Governing law and jurisdiction

These terms are governed by To be confirmed: governing law and jurisdiction for the Terms.

Subject to verification

A jurisdiction clause cannot deprive a UK consumer of the protection of the law where they live, and the right clause depends on where the operator is established and who the customer is. This must be settled on legal advice rather than asserted.

23.Changes to these terms

This is version 0.1 — draft for legal review. It has no effective date because it has not yet been reviewed or published.

When we change these terms we will update the version and effective date at the top of this page. For a material change — to prices, to what a plan includes, to cancellation, or to liability — we will notify account holders by email in advance where we can, and notify schools through their administrator. Continuing to use the service after a change takes effect means you accept the revised terms; if you do not, you can cancel.

Previous versions are available on request from To be confirmed: general support contact address.


Pre-publication checklist

Every item below is marked somewhere in these documents and must be resolved before any of them is published or relied upon. They are listed here as well so the list can be worked through in one pass.

  1. 01

    Registered legal name of the MyCodePad operator

    UK GDPR Article 13 requires the identity of the controller. Only the operator knows whether MyCodePad trades as a limited company, a sole trader or a partnership.

  2. 02

    Registered or trading postal address

    Article 13 requires contact details for the controller, and schools need a service address for a signed DPA.

  3. 03

    Privacy and data protection contact address

    Data subject rights requests need a route that is actually monitored.

  4. 04

    Security and breach notification contact address

    Article 33/34 breach handling and the DPA both depend on a reachable security contact.

  5. 05

    General support contact address

    Referenced by the Terms for service and billing queries.

  6. 06

    Whether a Data Protection Officer has been appointed, and their contact details

    Article 37 requires a DPO in some cases. Processing children's data at scale makes this a decision that must be taken deliberately and recorded, not assumed either way.

  7. 07

    ICO data protection fee registration number

    Most UK controllers must pay the data protection fee and register. The number must not be invented, and registration status must be confirmed before it is claimed.

  8. 08

    UK or EU representative, if the operator is established outside the UK

    Article 27 may require a representative. Depends on where the operator is established.

  9. 09

    Governing law and jurisdiction for the Terms

    A jurisdiction clause is a commercial and legal decision, and consumer protection rules limit what can be imposed on UK consumers.

  10. 10

    Statutory cancellation / cooling-off position for individual subscriptions

    The Consumer Contracts Regulations give a 14 day right to cancel distance contracts, with specific rules where a digital service starts immediately. How this is handled must be confirmed before it is described.

  11. 11

    Refund policy beyond statutory rights

    No refund logic exists in the billing code. Any discretionary refund promise is a commercial commitment.

  12. 12

    VAT registration status and whether listed prices include VAT

    Stripe is configured with plain GBP amounts and no tax behaviour, so the published prices cannot be described as VAT-inclusive or exclusive until this is confirmed.

  13. 13

    Support response target, if any is offered

    Several plans advertise "priority support". What that means in practice is a commitment that has to be set deliberately.

  14. 14

    Internal complaints process and escalation route

    Referenced by both the Terms and the Privacy Policy, and expected by schools procuring the service.

  15. 15

    Retention period for account and work data after an account is closed

    Erasure is now requested through the account area and carried out by hand against a recorded plan, so there is a process — but no decision has been taken on how long anything is kept before that plan runs, or whether a grace period applies in which a request can be reversed.

  16. 16

    Retention period for the erasure request record itself

    Each request stores the subject's name and email so the record still means something after the account is deleted, which is what lets MyCodePad show a regulator the request was handled. That record is itself personal data and cannot be kept forever without a stated period.

  17. 17

    How a parent or guardian's authority to act for a child is established

    The request form accepts a parent or guardian as the requester, and the product holds nothing that links a parent to a pupil. The check is therefore a documented human procedure, and acting on an unverified claim would disclose or destroy a child's data on a stranger's say-so.

  18. 18

    Backup retention window and the point at which deletions reach backups

    Set by the database provider's configured plan and by operator choice, and must be read from the live Neon project rather than assumed.

  19. 19

    Retention period for billing and tax records

    UK tax law sets minimum record-keeping periods, which interact with deletion requests. The applicable period depends on the operator's legal form.

  20. 20

    Retention period for security logs, including failed join-code attempts

    Failed join attempts record raw IP addresses and are not pruned by any code in this repository.

  21. 21

    Whether dormant accounts are deleted, and after how long

    Storage limitation requires data not to be kept indefinitely without reason. No dormancy policy is implemented.

  22. 22

    Period within which school data is returned or deleted at the end of a contract

    Article 28(3)(g) requires the processor to delete or return personal data at the end of the service. The window is a contractual term.

  23. 23

    Vercel deployment region(s)

    Determines where the application runs and whether a transfer outside the UK occurs. Must be read from the live Vercel project configuration.

  24. 24

    Neon database region

    Determines where personal data is stored at rest. Must be read from the live Neon project.

  25. 25

    Transfer mechanism relied on for any processing outside the UK

    The UK Addendum to the EU SCCs, the IDTA or adequacy may apply. Which one, for which provider, is a legal determination.

  26. 26

    Deadline for notifying a school of a personal data breach

    Article 33(2) requires notification "without undue delay". A specific number of hours is a contractual promise that the operator must be able to meet.

  27. 27

    Audit and inspection arrangements offered to schools

    Article 28(3)(h) requires audits to be permitted. The practical form — questionnaire, report, on-site — is negotiated.

  28. 28

    Notice period before a new subprocessor is added

    Article 28(2) requires the controller to have an opportunity to object to changes.

  29. 29

    Whether a DPIA has been carried out, by whom and when

    Processing children's personal data at scale is likely to require a DPIA under Article 35. No assessment is recorded in this repository.

Each item corresponds to an entry in lib/legal.ts. Filling in its value replaces the marker everywhere it appears and removes this row.