Build a web coding platform with Python, run in WebAssembly

Maris Nieuwenhuis

Python Language & Ecosystem
Python Skill Novice
Domain Expertise Novice

The Problem

Building interactive Python learning platforms traditionally requires server infrastructure to execute user code, creating security risks and operational overhead. What if we could run Python entirely in the browser?

The Solution

This talk presents a production-ready coding platform built with Holoviz Panel that executes Python through WebAssembly via Pyodide. The entire application – UI and code execution – runs client-side, eliminating backend complexity while providing safe, isolated Python execution.

Architecture Overview

The platform combines three key technologies:

  • Holoviz Panel for building the interactive interface with its built-in code editor component
  • Pyodide for secure Python execution via WebAssembly in the browser
  • LocalStorage for persisting student progress without a database

Key Features

The platform supports multiple learning modalities:

  • Coding exercises validated against pre-defined test cases – from simple variable assignments to complete functions with return values or print statement
  • Interactive playground that evaluates expressions and captures output
  • Single and multiple-choice questions for concept checks

What You'll Learn

This talk covers the technical integration between Panel's UI framework and Pyodide's execution environment – the critical piece that makes browser-based Python coding work. Attendees will understand:

  • How to architect client-side Python applications
  • Running Panel components with Pyodide
  • Trade-offs between client-side and server-side execution
  • Handling code execution, output capture, and state management

Target Audience

Data scientists, educators, and developers interested in building interactive Python tools without server infrastructure. Basic familiarity with Python web frameworks is helpful but not required.

Background

This work originated from my bachelor thesis exploring Python education. The resulting platform demonstrates that WebAssembly enables entirely new architectures for Python applications – shifting from traditional server models to fully client-side execution.

The takeaway: You can build sophisticated Python applications that run anywhere there's a browser, with no backend server setup, no security concerns about arbitrary code execution, and no additional infrastructure costs.

Maris Nieuwenhuis

Junior Software Developer Bachelor of Science in Media Informatics (Medieninformatik B. Sc.) Graduated from Berliner Hochschule für Technik in 2025 Passionate about Python and programming in general, coding challenges and tutoring/education