Building Browser-Native AI Runtimes:
A Hands-On Workshop with WebLLM, WASM
a Berlin-based engineering leader focused on distributed systems, serverless architectures, and AI-native applications. I’ve led cross-functional teams at Intel, Delivery Hero, Blacklane, and Würth Cloud Services shipping scalable platforms and shaping long-term technical strategy. My current interests revolve around Rust, WebAssembly, Synthetic Data, and in-browser AI.
Who am I?👋🏼
Where Does the Loop Close?
Portability, Isolation, and the Locality of Intelligence
〞
Feedback is older than AI.
– The Fictional History of Machinic ToolsThermostat
Measure → Compare → Adjust

CI/CD
Deploy → Observe → Roll Back

Compiler Optimization
Rewrite → Benchmark → Rewrite

Recommendation Systems
Behavior → Update → Suggest

Feedback Loops at their best
Observe → adjust → repeat.

An Agent Is a Loop With Memory
Input
The loop begins with a signal: user input, system state, or environmental data. entering the runtime boundary.
1.
Interpret
The system contextualizes the signal using its current memory and predictive model to construct a meaningful internal representation.
2.
Decide
Based on memory and prediction, the loop selects the next action either deterministic, probabilistic, or a combination of both.
3.
Act
The system executes the action, updates its memory with the outcome, and prepares for the next iteration of the loop.
4.
〞
Where does the loop run today?
– The History of Machinic Tools1st
Client
2nd
API
3rd
Cloud
5th
LLM
7th
Loop
4th
Tools
6th
Memory
The loop closes remotely today
☁️ Cloud
🖥 Desktop
📱 Mobile
🌍 Edge
🧭 Browser Tab
A loop can run in:
• Mozilla AI blueprints → Can the browser be a serious runtime?
• wasm-agents blueprint → Pyodide in-browser notebooks
• Built a PoC → wasm-browser-agents-blueprint
Thanks Davide from Mozilla.ai ❤️
How I Ended Up Testing This Idea

# Build and run with Docker (Recommended)
docker build -t wasm-browser-agents-app .
# For development with hot-reload
docker run -p 5173:5173 \
-v $(pwd)/demos:/app/demos \
-v $(pwd)/src:/app/src \
wasm-browser-agents-app

Demo 🎉
Loop Component → Browser Primitive
| Loop Component | Browser Primitive |
|---|---|
| Memory (short-term) | JS Heap |
| Memory (long-term) | IndexedDB |
| Decision (prediction) | WebLLM |
| Deterministic Logic | WebAssembly |
| Parallel Execution | WebWorkers |
| Tool Access | Web APIs |
| Acceleration | WebGPU |
| Isolation Boundary | Workers + WASM sandbox |
Isolation is
Structural
Isolation is Structural
Determinism Inside the Loop
If the loop is real, parts of it must be deterministic, too.
〞
Loops Shouldn't Care About Language
– An unwritten book on WASM Agents The browser used to host one language
SM made it portable.

Demo 🎉
Conceptual
Reconstruction
Same loop,
different placement.

The Six Taxes of Local Loops
When You Close the Loop Locally, You Inherit New Taxes
Tax #1
Memory
Local loops are bounded by device memory.

Tax #2
Distribution
Portability increases distribution cost.


Tax #3
Variance
Portable loops behave differently on every machine.


Tax #4
Energy
Energy is part of loop economics.

Tax #5
Heat
Feedback exists at the hardware layer too.

Tax #6
Context
Context window defines the visible past of the loop.

〞
Constraints are not reasons to avoid locality entirely. They're the cost of moving closer to the user.
– The History of Machinic ToolsStrategic Placement of Loops
Local Loop
private, low latency
1.🧭📱🖥
Edge Loop
Shared
2.🌍
Cloud Loop
heavy compute
3.☁️
Where Does the Decision Become Real?
Intelligence is not where the model is
It's where the loop closes.

The browser is a serious place for loops to close.
So for agents, too.
Key Takeaways
-
Agents are feedback loops with memory not personalities. 🔁
-
Loop placement matters more than model size. 📍
-
The browser already contains the primitives to host a loop. 🌐
-
Isolation (WebWorkers) enables stability. 🧱
-
Portability (WASM) enables polyglot architectures. 🧳
-
Prediction should be paired with deterministic control. ⚖️
-
Energy, latency, and memory are part of loop economics. ⚡
-
Moving the loop changes privacy, cost, and control. 🔒
Thank you!
Contact me via email or social if you have any questions,always happy to help!

WASMIO/26 - Building Browser-Native AI Runtimes: A Hands-On Workshop with WebLLM, WASM
By Barış Güler
WASMIO/26 - Building Browser-Native AI Runtimes: A Hands-On Workshop with WebLLM, WASM
- 73