No Servers, No APIs:

AI in the Browser

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 Tools

Thermostat

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 Tools

1st

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

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 Tools

Strategic 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!

Copy of Mozilla Berlin Meetup - No Servers, No APIs: AI in the Browser

By Barış Güler

Copy of Mozilla Berlin Meetup - No Servers, No APIs: AI in the Browser

  • 271