Skip to content
All projects

Deckle

Early — not production ready

An infinite canvas for large collections of AI-generated web artifacts.

Hundreds of live iframes do not scale; flattening every page to an image loses selection and event targeting. Deckle keeps artifacts retained — source, durable state, interaction tree, paint cache and an optional live runtime — so Figma-like selection and activation survive. The backend-independent engine contracts are implemented and tested; the browser-evidence gates are not exited yet.

Overview

Every iframe retains a browsing context, DOM/CSS state, a script realm, resources and rendering state, so keeping hundreds of generated pages alive scales badly. The design answer is a retained artifact model — `artifact = source + durable state + interaction tree + paint cache + optional live runtime` — in which a snapshot is only a paint cache. The document and interaction model stay available for selection, event routing, activation and revision-safe restoration.

Because the artifacts come from agents, they arrive incrementally, and streaming is a first-class property of the node model rather than a wrapper around it. Every content kind commits at its own boundary — a grapheme, a line, a closed markdown construct, a JSON value, a decided HTML tag — and that boundary only moves forward, so a reader never sees an interpretation get retracted.

Implemented and tested today: scene transactions, camera and spatial virtualization, lifecycle and budgets, artifact revisions, sanitization, the controlled runtime protocol, retained rendering and internal hit testing. Not yet: the M0 browser-evidence gates are not exited, support for the experimental HTML-in-Canvas APIs is a capability the probe detects rather than a claim, and absolute performance and memory gates stay unset until measurements exist. Nothing is a stable public contract yet.

The name is the thesis. A deckle is the frame that bounds a sheet of handmade paper while the pulp is still settling, and the ragged edge it leaves is called a deckle edge — a frame around content that has not finished arriving, leaving the boundary visible instead of pretending the sheet is done.

What it does

  • Retained artifact model: a snapshot is only a paint cache, so selection and event targeting survive.
  • Streaming is built into the node model, with per-kind commit boundaries that only move forward — no retracted interpretations.
  • Engine contracts implemented and tested: scene transactions, camera and spatial virtualization, lifecycle, budgets, revisions, sanitization, runtime protocol, retained rendering, hit testing.
  • Security is a first-class package — sanitizer, URL policy, quotas and capabilities — not a later hardening pass.
  • Apache-2.0, chosen for the patent grant: the streaming boundary model and the canvas-native rendering profile are implementation work that benefits from an explicit grant.
  • Libraries shipped as `@dopejs/canvas-*` through 0.3.0 and are being renamed to `@dopejs/deckle-*` from 0.4.0; only the name changes.

Get started

Requirements: Node.js 22.12+ and pnpm 10.33.2.