Wire the graph, run it, watch it execute.

Builder

Drag nodes on a canvas and real Playwright Python comes out the other end.

Writing browser tests is tedious in a specific way. The thinking is visual and the output is text. So I made the thinking visual and let the machine write the text.

You drag nodes around a canvas and real Playwright Python comes out of the other end. Not pseudocode, not a recording, actual source you can read and keep.

The part I care about is what happens to what the model produces. It does not simply run. It is checked against a schema of commands that are allowed to exist, and only then is it trusted. Model providers sit behind a registry so that no single one of them is load bearing, and changing which one you use is configuration rather than a rewrite.

That was the second time I built the same shape without noticing. Something proposes, something deterministic decides.

Built with

  • Django 5
  • Django REST Framework
  • React 19
  • React Flow
  • Vite
  • Playwright (Python)
  • Docker Compose
  • GitHub Actions

Where it lives

  • selenium-builder · 59 commits · private

The full technical write up for this work, with the trade offs and what is deliberately not claimed, is on the plain text page.