For Teachers Open the Lab ↗

A coding lab built
for the classroom

Voxel Forge Coding Lab is a free, in-browser IDE for Python, C# and HTML with 180 graded challenges - no accounts, no installs, no AI.

Try it now Share with students
Student link:
Loading…
⚙ Set Up Tasks
What is it?

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.

Runs entirely in the browser
No server, no installation, no admin rights needed. Works on any device with a modern browser.
🔒
No accounts or data collected
Students need no login. Challenge progress is stored only in the browser's localStorage - never sent anywhere.
📚
Curriculum-aligned
Covers GCSE and A Level topics: variables, loops, functions, OOP, data structures, recursion, HTML/CSS layouts.
🏆
180 graded challenges
60 each for Python, C# and HTML - 20 beginner, 20 intermediate, 20 advanced - with instant automated feedback.
Academic integrity

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.

🛡
Why this matters in lessons: When students use an AI copilot to write their code, they are not practising the skills being assessed. This tool gives them a clean environment where every line they write is genuinely theirs - which matters for both learning and for exams where no AI is available. The Coding Help reference sheets give structured support without doing the thinking for them.
Challenges

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
Lesson structure

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.

1
Starter - open the tool and warm up
0–10 min
Share the student link (below). Ask everyone to open it and complete one ★ challenge from last lesson's topic. No instruction needed - the tool loads instantly.
2
Direct instruction - introduce the concept
10–20 min
Walk through the relevant demo task on your projector (Demos are in the tab bar - they have step-by-step guides built in). Live-code the key idea in the Sandbox and ask students to follow along on their own screen.
3
Independent practice - challenges
20–50 min
Students work through ★★ challenges on today's topic. Early finishers progress to ★★★. Encourage looking at the Coding Help reference before asking for help - it's designed to be used exactly like an exam aid.
4
Plenary - review and cold-call
50–60 min
Pick a ★★ challenge from today. Ask a student to share their solution on the projector. Discuss alternative approaches, common errors, and edge cases as a class.
Printed resources

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.

Common questions

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 CDN domains needed are: cdn.jsdelivr.net and cdnjs.cloudflare.com.

Can students save their work?

Challenge progress is automatically saved to localStorage - it persists between sessions on the same browser and device. Code in the editor is kept in memory during a session. Students can use the Save button in the toolbar to download a .py / .cs / .html file to their own machine or school drive.

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.

Is there a teacher dashboard to see student progress?

Not currently. Progress is stored locally on each student's device. A practical workaround is to ask students to screenshot their completed challenge grid at the end of a lesson, or to share their screen during a check-in.

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.