Security
Security and data protection
Your learners' records are held in Amazon Web Services in the United States, kept apart from every other organisation's, encrypted in transit and backed up every day. Their code is run on our code runner in Finland, without their names. This page sets out who can reach them, the companies that process them for us, how we use AI, and what we do not have yet.
Last checked
At a glance
Where data is held
Amazon Web Services in US East (N. Virginia): the application, its database, files and email. Learners' code runs on our own code runner in Finland, with no names attached.
Sign-in
No passwords. People sign in with a single-use code sent to their email, with Google, or through their LMS. Sessions end after seven days without use.
Encryption
TLS on every connection to the site, with browsers told to use HTTPS only. Uploaded files and backup copies are encrypted at rest in Amazon S3.
Backups
A database backup every day, checked, kept for 14 days and copied off the server. A restore is rehearsed every three months.
Uptime
A 99.5% monthly target for paid subscriptions, measured every three minutes and shown on our public status page.
Certifications
None yet: no SOC 2 report, ISO 27001 or Cyber Essentials certificate. Below is what we do instead, and what is still missing.
Who runs The Skill Site, and where your data is
RunCode Inc, a company in Plano, Texas, runs The Skill Site. Its engineering and support staff, all RunCode Inc employees, work from India and reach the data through RunCode's own systems. Your organisation controls its learners' records; we process them only to run the service, under our Data Processing Agreement.
- The application and its PostgreSQL database run on an Amazon EC2 server in US East (N. Virginia). Uploaded files are in Amazon S3 in the same region, and account emails go through Amazon SES there.
- Code that learners run in lessons, quizzes and assignments, and code sent through the API, runs on OnlineCompiler.io, our own code runner, at Hetzner in Finland. It receives the code and its input with no names or email addresses, and code run there cannot reach the platform's data.
- Notebook code runs in the learner's own browser. SCORM packages and notebooks are served from a separate domain of ours, which never sees anyone's sign-in cookie.
- Labs, where an organisation turns them on, run on the same server for now: each learner's lab is a gVisor container with no internet access, a read-only system and limits on processor, memory, processes and files.
- There is no choice of hosting region.
Sign-in and access control
- No passwords. People sign in with a code sent to their email, with Google, or through their organisation's LMS (LTI 1.3). A code works once, for ten minutes, only in the browser that asked for it, and is stored only as a keyed hash. Guessing is limited for each address and across the whole service.
- Sessions use HTTP-only, secure cookies. The token is stored only as a hash, and a session ends after seven days without use and after 30 days at most.
- Roles. An organisation's admins see all of it, instructors the batches they teach, and learners only their own work. People from an employer the organisation trains for see only the learners linked to them, never their code. Parents see their own children.
- Organisations kept apart. Each organisation's records are scoped to it. An automated suite runs against a real database with two organisations and checks, on every change before it can be released, that neither can read or change the other's records.
- Our staff. A small number of named RunCode employees are platform administrators. They open an organisation's records only for its own support request, a security problem or a legal duty.
- History. An organisation's admins see the changes its staff make on its History page. It is a working record, not a tamper-proof audit log, and it does not record who viewed what.
Encryption and browser protections
- Every connection between a browser and The Skill Site uses TLS, and browsers are told to use HTTPS only (HSTS).
- Uploaded files, and the copies of database backups held off the server, are encrypted at rest in Amazon S3. Learners' files and attachments are private and served only after a check that the person may see them.
- Sign-in codes, session tokens and API keys are stored only as hashes.
- Every page carries a content security policy that runs only our own scripts. The exceptions are Crisp's live chat on staff pages, and Google Analytics on our public pages for visitors who are not signed in and have not opted out. Other sites cannot frame the platform, except an organisation's own LMS for LTI launches and the site it names for an embedded exercise; a page that only says such a launch or link cannot open may be shown in any site's frame.
- Spreadsheet exports neutralise formulas, so a downloaded CSV cannot run commands.
Backups, releases and uptime
- The database is backed up every day, checked readable and kept for 14 days on the server. Each backup is also copied, encrypted, to a private S3 bucket in a separate AWS account, where the server can add copies but never read or delete them, and each copy is deleted after 13 days.
- A restore into a scratch database is rehearsed every three months, checking every migration and the data. Our targets after a failure: at most 24 hours of data lost, and the service back within 4 hours.
- Every change passes the type check, the automated tests, the two-organisation suite and the browser tests before it can be released. A release backs up the database first and checks its own health before it takes over.
- An uptime monitor checks the service every three minutes and alerts us, and we are alerted if a daily backup does not arrive. Its record is public on our status page.
- For paid subscriptions we aim for 99.5% availability each calendar month, as that monitor measures it. Maintenance announced on the status page in advance does not count. It is a target without service credits, and the trial and free plan have no uptime commitment.
- When the code runner is busy, grading waits and tries again. It never marks an answer wrong because of load.
Sub-processors
These companies process personal data for us, as the Data Processing Agreement's Schedule 3 lists them. We email each organisation's admins at least 30 days before we add or replace one. You may object in that time on reasonable data protection grounds, and if we cannot resolve it, cancel your subscription.
Amazon Web Services, Inc.
United States (N. Virginia)
Hosting: the application server and database, and learners' labs where an organisation turns labs on (a lab knows a learner only by a random name). File storage (S3) and account emails (SES).
Hetzner Online GmbH
Finland
Hosts our own code runner (OnlineCompiler.io), which runs learners' code. It receives the code and its input, with no names or email addresses.
Anthropic, PBC
United States
Writes AI hints for learners, only where an organisation turns them on. It receives the question, the learner's code and its output, with no names or email addresses. It also drafts questions and lessons for staff, only where an organisation turns AI drafting on, from what staff type and the material they give.
Google LLC
United States
Sign-in with Google, only for people who choose it.
Microsoft Corporation
United States
Sign-in with a work or school Microsoft account, where an organisation uses it.
Crisp IM SAS
European Union
Live chat between an organisation's staff and our support team, on staff pages only.
Stripe, through Link, its merchant of record, sells and bills subscriptions. It receives the billing contact's details but no learner data, and acts under its own terms. YouTube, Vimeo, PhET, GeoGebra and Desmos see a viewer's browser only when your staff embed one of their videos or activities in a lesson.
How we use AI
AI hints for learners are written by Claude, Anthropic's AI model, through Anthropic's API, with processing kept in the United States. They are part of the Training plans and the free plan, not the Teacher plan.
- Off until you turn them on. An organisation admin turns AI hints on in Settings, and can turn them off again for any batch.
- Never for children. Children taught under a parent's consent never get AI hints, whatever the settings: the server refuses them.
- What the model sees. The question, the learner's code and its output, and the visible tests' results. Never names, email addresses or hidden tests.
- No training on your data. Anthropic's commercial terms say it may not train models on customer content from its services (read on Anthropic's site on 10 November 2026). We train nothing on your data ourselves.
- Hints, not answers. Hints come from fixed buttons with no chat box, are never offered in exams, and are checked before they are shown: the first two levels may name a function or a short expression but hold no block of code, and the third holds at most five lines. AI never decides a grade. Staff can see every hint, and each learner has at most 100 a month.
- Safeguarding. If what a learner writes suggests they may be at risk, they get no hint and are told where to get help, and the organisation's safeguarding lead is emailed a link to it.
AI drafting for staff uses Claude through the same API, with processing kept in the United States. Admins and instructors ask it for a first draft of multiple-choice questions or a lesson's text on every plan, and of a coding question with tests on the Training plans and the free plan.
- Off until you turn it on. An organisation admin turns AI drafting on in Settings, separately from AI hints. Each organisation has at most 100 drafts a month.
- Staff only. Learners never use it. What the model sees is what the staff member types and the material they give; nothing about learners is sent.
- People decide. A draft is seen only by the person who asked and the organisation's admins, and nothing from it reaches learners until staff check it and add it. A drafted coding question's tests are run against a worked solution before staff see them.
Children and student privacy
An organisation that teaches children invites each family by the parent's email. Nothing about a child is kept until a parent agrees, and the child uses the parent's account. Rules checked on the server, which no setting changes, keep children away from AI hints, board comments and the records of leaving a test page or pasting, and send nothing under their name to an LMS or learning record store. Once no organisation holds a parent's consent, we erase the child's records and files.
What we commit to schools, colleges and universities is on our student data privacy page.
Incidents and reporting a vulnerability
- If a personal data breach affects your organisation's data, we tell you within 48 hours of becoming aware of it, so you can meet your own duties to your regulator.
- To report a security problem, email hello@theskillsite.com with Security in the subject. Our contact details for researchers are also in security.txt.
- Please do not reach or change data that is not your own, and give us time to fix a problem before you share it. We do not run a paid bug bounty.
What we do not have yet
A buyer is better served by a plain list than by finding out later.
- No SOC 2 report, ISO 27001 certificate or Cyber Essentials certificate. Our security policies are drafted against SOC 2's criteria, but no auditor has tested them.
- No independent penetration test. We reviewed the whole application's security ourselves in October 2026.
- No SAML single sign-on, and no second sign-in factor in The Skill Site itself: an account is as safe as the email or Google account it signs in with.
- No tamper-proof audit log. History records staff changes, but not who viewed what, and our platform administrators' access to an organisation's records is not logged.
- Every backup copy is in the same AWS region as the service.
Documents for your review
Data Processing Agreement
Part of the terms every organisation accepts at signup, with the ICO's International Data Transfer Agreement for data leaving the UK. Ask us for a signed copy.
Student data privacy
What we commit to under FERPA, the UK and EU GDPR, and Canadian and Australian privacy law, and how we sign a district's own agreement.
Accessibility statement
How far the platform meets WCAG 2.2 AA, the problems we know about, and a conformance report on request.
Privacy policy
What we collect, why, how long we keep it, and the rights of the people it is about.
Security questionnaires
Send us yours. The HECVAT is available on request from hello@theskillsite.com.
Questions and answers
Where is our learners' data stored?
In Amazon Web Services' US East region (N. Virginia), in the United States: the application, its database, uploaded files and backup copies. Learners' code is run in Finland, without names. There is no choice of region. Our engineering and support staff, all RunCode Inc employees, reach the data from India.
Which companies process our data for you?
Amazon Web Services, Hetzner (for our code runner), Anthropic (AI hints and AI drafting for staff, only if you turn them on), Google and Microsoft (sign-in, only for people who use them) and Crisp (live chat on staff pages). We email your admins 30 days before we add or replace one.
What certifications do you hold?
None yet. We have no SOC 2 report, no ISO 27001 certificate and no Cyber Essentials certificate, and no independent penetration test has been done. We publish what we do instead on this page, send a signed copy of our data processing agreement, and answer your security questionnaire.
Is our learners' data used to train AI models?
No. AI hints and AI drafting are off until your admin turns them on. When hints are on, Anthropic receives a learner's code and question with no name or email address; drafting sends only what staff type and the material they give. Anthropic's commercial terms say it may not train models on that content. We never use your data to train anything ourselves.
Will you sign our agreement or complete our questionnaire?
Yes. Our Data Processing Agreement applies to every organisation without signing anything, and we send a signed copy on request. We review your own student data privacy agreement, answer your security questionnaire, and send the HECVAT on request. Email hello@theskillsite.com.
What happens to our data if we leave?
When a Training plan subscription ends, your staff keep read-only access for 60 days to export what they need. Then we erase your organisation's records and uploaded files, and backup copies age out within a further 14 days. A Teacher plan that ends carries on as the free plan, so nothing is erased.
Questions about security or privacy?
Email hello@theskillsite.com for a signed copy of the DPA, our answers to your security questionnaire, or anything this page does not answer.