Everything students need, nothing they don't
Voxel Forge Coding Lab is a single HTML file that runs entirely in the browser. Students open a link - no login, no extension, no package manager. Python runs via WebAssembly, C# via Blazor, HTML renders live in the preview pane.
It was designed to remove friction: the biggest barrier to coding in lessons isn't the curriculum, it's fifteen minutes of setup on school machines. This tool eliminates that.
Deliberately AI-free
Voxel Forge Coding Lab contains no AI assistant, no autocomplete, and no code generation. This is a deliberate choice, not an oversight.
How to use challenges in a lesson
Challenges are accessed via the ⚡ Challenges button in the toolbar. Students can filter by difficulty (★ to ★★★) and track their own progress. Completed challenges turn green - a simple visual motivator that works well as a class display.
Each challenge shows a task description, hints on demand, and starter code. The output is checked automatically - students see Pass or Fail instantly without needing you to mark their work.
| Difficulty | Suitable for | Languages | Count |
|---|---|---|---|
★ Beginner |
Year 10 intro, first lessons, revision warm-up | PythonC#HTML | 20 per language |
★★ Intermediate |
Year 11 consolidation, early A Level, structured tasks | PythonC#HTML | 20 per language |
★★★ Advanced |
A Level extension, OOP, algorithms, NEA prep | PythonC#HTML | 20 per language |
A suggested 60-minute lesson
This structure works for a mixed-ability class using challenges as the main activity. Adjust the timings to suit your group.
Printing reference sheets
The Coding Help pages are print-optimised. Open Coding Help in a browser and press Ctrl + P. The dark theme switches to a clean light layout, the header and search bar are hidden, and the grid reformats to a single column - ready to print as an A4 reference card.
These work well as desk aids during lessons or as an open-notes resource during in-class assessments.
Pricing
The Coding Lab, the 180 challenges and saving work stay free for everyone, for good. A teacher licence adds tools for setting and marking work. Pupils never need an account or a licence: assignment links and hand-ins work for every pupil.
Free
£0
- The full in-browser IDE: Python, C# and HTML
- 180 built-in challenges
- Save work as links and files
- Pupils can open and hand in any assignment
Teacher
£99 / year + VAT
- Assignment builder with automatic checks
- Marking mode with CSV export
- Saved assignment library
Department
£249 / year + VAT
- Everything in Teacher
- Up to 5 teachers
- Head of department manages seats
Annual licences. Schools can pay by card or by invoice (with a purchase order number if you need one, and 30 days to pay). Payments, VAT and receipts are handled by our reseller, Paddle.
Privacy and pupil data
In short
- Pupils never create accounts and never sign in.
- Pupils' code, names and hand-ins are never sent to or stored on our servers. They stay on the pupil's device, inside links that are shared through your school's own systems, and in the teacher's browser while marking.
- Teacher accounts are optional and only for the paid tools. They hold an email address, an optional name and school name, licence details and any assignments the teacher chooses to save (task content only).
- Teacher account data is stored in the UK (London).
- No advertising, no analytics and no tracking cookies.
Who we are
VoxelForge Coding Lab is provided by [legal entity name and registered address], registered with the UK Information Commissioner's Office under number [ICO registration number]. Contact us about privacy or data protection at [data protection contact email].
Pupils: the Coding Lab
The Coding Lab is a static website. Its pages and programming tools download to the pupil's browser, and pupils' programs run on their own device. We don't receive pupils' code, names or work.
- On the pupil's device: autosaved work (kept per language and per assignment), challenge progress and a note that the welcome screen has been seen are stored in the browser's local storage on that device. They aren't synced anywhere. Clearing the browser's site data removes them.
- In links: "Save as link" puts the pupil's code inside the link. A hand-in link contains the pupil's first name, the first letter of their surname, their code and the time they made it. This information is in the part of the link after "#", which browsers never send to a server when the link is opened. Links only go where a pupil or teacher pastes them, such as your school's Teams, Google Classroom or email, and those systems are covered by your school's own arrangements.
- In files: "Save file" saves the code to wherever the pupil chooses.
- While marking: marking happens entirely in the teacher's browser. Hand-in links pasted into marking mode are processed in that browser tab's memory and are never uploaded. A CSV export is a file the teacher chooses to save.
Services a pupil's browser contacts: our hosting provider (Vercel) to download the Lab, jsDelivr (cdn.jsdelivr.net) for the Python runtime, and cdnjs (cdnjs.cloudflare.com) for the code editor. Like any website, these receive the technical details every web request includes (IP address, browser type and time), but never pupils' code or names. Some built-in HTML challenges and demos load sample images or data from public websites (for example picsum.photos, upload.wikimedia.org and jsonplaceholder.typicode.com) only when a pupil runs them. Our hosting provider keeps standard request logs for a short time for security and to keep the service running.
Teachers: VoxelForge for Teachers
Teacher accounts are only needed for the paid tools, at teach.voxelforge.doxelstudio.co.uk. We store:
- your email address, and your name and school name if you add them;
- your licence: plan, status, number of seats, dates, and the reference numbers our payment provider uses;
- for Department licences, the email addresses of colleagues the licence owner invites;
- assignments you choose to save: title, instructions, starter code, your checks and their expected outputs, and the link you shared;
- reference numbers of payment notifications, to avoid processing one twice.
We never store pupils' names, code, hand-ins or marks. When you sign in with Microsoft or Google, our authentication provider also keeps the basic profile that service sends (such as your name), and it keeps sign-in security logs (such as IP addresses) for a limited time. When you sign in to the Lab, a sign-in token (and, while you're signing in, any unsaved assignment draft) is kept in that browser tab only; the token expires after 8 hours. The teacher site uses only the cookies needed to keep you signed in, and Paddle's checkout may set its own cookies when you buy. The Coding Lab uses no cookies.
Why we use it: to provide your account and licence (our contract with you or your school), to keep the records the law requires for payments and tax, and to keep the service secure (our legitimate interests).
Who processes it for us: Supabase (database and sign-in; data stored in London, UK), Vercel (hosting; our teacher site's server code runs in its London region), Paddle (our reseller and merchant of record, which takes payments and handles VAT, invoices and receipts under its own privacy policy), Microsoft or Google if you choose to sign in with them, and [email delivery provider] to send sign-in emails. Some of these providers are based outside the UK; where personal data is transferred, the transfer is covered by UK adequacy regulations or the UK International Data Transfer Addendum.
How long we keep it: while your account exists. Ask us to delete your account and we'll delete your data within 30 days, apart from payment records that Paddle and we must keep for tax purposes.
Your rights: you can ask for a copy of your data, ask us to correct or delete it, or object to how we use it, by contacting [data protection contact email]. You can also complain to the Information Commissioner's Office (ico.org.uk).
For your school's DPIA
Because pupils' personal data never reaches our servers, using the Coding Lab with pupils doesn't involve sending pupil data to us. Teacher accounts are the only personal data we hold. If your school needs more detail for a data protection impact assessment, contact [data protection contact email].
Last updated 18 October 2026.
FAQ
Does it work on school Chromebooks and iPads?
Yes. The tool runs in any modern browser with no plugins required. Chromebooks and iPads are both supported. The only requirement is a reasonably recent browser (Chrome 90+, Firefox 90+, Safari 16+, Edge 90+). The Python runtime (Pyodide) downloads on first load (~10 MB) and is then cached for subsequent visits.
Does it need internet access?
Yes - on the first load it downloads the Python and C# runtimes from a CDN. After that, most of the tool works offline for Python. C# always requires the Blazor runtime to be reachable. HTML editing works fully offline. For school networks with content filtering, the domains needed are: voxelforge.doxelstudio.co.uk, cdn.jsdelivr.net and cdnjs.cloudflare.com. Teachers using the paid tools also need teach.voxelforge.doxelstudio.co.uk (and paddle.com to buy a licence).
Can students save their work?
Yes, three ways. Work is autosaved in the browser on that device (a refresh won't lose it). Save as link puts their code inside a link they can email to themselves or paste into Teams or OneNote, then open anywhere. Save file downloads a .py / .cs / .html file to their machine or school drive, and Open file loads it back. None of these send their code to our servers.
What syllabus topics are covered?
Python: variables and types, I/O, conditionals, loops, functions, lists, strings, file handling, dictionaries, recursion, OOP, abstract classes. C#: the same topics plus generics and LINQ-style patterns. HTML: semantic structure, CSS box model, flexbox, grid, animations, JavaScript DOM manipulation, events, localStorage, and the Fetch API.
Can I set work and mark it?
Yes, with a teacher licence. Build an assignment with automatic checks and share its link. Pupils check their code and send you a hand-in link through Teams, Google Classroom or email. Paste all the hand-in links into marking mode: it re-runs every pupil's code against your checks and gives you a marks table and a CSV. Marking happens in your browser - hand-ins are never uploaded. Built-in challenge progress is still stored only on each pupil's device.
Can I suggest new challenges or report a problem?
Yes - please get in touch via the contact details on the Doxel Studio website (doxelstudio.co.uk). Bug reports and curriculum suggestions are very welcome.