Skip to main content
IVDNIcase study ← Work

FrameLocal-first design workspace · an 11-chapter engineering caseEvidence ledger · 20 traced claims

Selected work / Engineering case study

IVDNI — Building a Local-First Design Workspace

A framework-free, local-first canvas engine for vector editing, motion prototyping and living design systems — published as an engineering case in which every load-bearing claim is traced to a merged pull request, a commit, or the project’s evidence ledger.

Product
IVDNI · Early Access 0.2
Role
Founder & Independent Developer
Domain
Browser canvas engineering
Case basis
Evidence ledger · 20 traced claims

Commit and pull-request references in this case study come from a curated milestone sample of the project’s recorded history, not an exhaustive repository log.

01 / Project overview

A design workspace that answers to the browser, not to a server.

IVDNI is a browser-based, local-first visual design workspace built for direct canvas manipulation: vector paths, boolean compound operations, typography, motion prototyping and component libraries, documented at Early Access 0.2. None of it requires a continuous server connection.

The architecture departs from the conventional cloud-first pattern on purpose. The browser client is the authoritative state engine; optional cloud backup and synchronization remain available, subject to account storage limits. The network is a mirror, never the master copy.

This page is an engineering case study, not a product landing page. Where a statement describes behaviour, it rests on the project’s evidence ledger — merged pull requests, recorded commits and architecture documentation — cited inline as Evidence IVDNI-E*** throughout.

Evidence — IVDNI-E001 · IVDNI-E006 · IVDNI-E004 · IVDNI-E017

02 / Problem & context

The network is the wrong dependency for a drawing tool.

Contemporary design tools frequently make the network a hard dependency: strokes, layer creation and undo steps are mediated by remote services. When latency spikes or the connection drops, the creator’s flow breaks.

The engineering problem in IVDNI was to build a desktop-grade workspace inside the browser sandbox: responsive direct manipulation, deterministic persistence of complex documents, and structured recovery after unexpected browser termination — without megabytes of virtual-DOM framework overhead. Statements about market demand or adoption are out of scope for this case study; none are made.

Evidence — IVDNI-E001 · IVDNI-E002

03 / Role & scope

One person, one architecture, explicit boundaries.

Role: Founder & Independent Developer. I directed architecture decisions, defined key engineering invariants, and reviewed AI-assisted implementations against explicit acceptance criteria.

Rather than claiming solo hand-authorship of all implementation code in isolation, the development process combined solo product vision and architectural leadership with disciplined, test-gated AI-assisted development loops. Every architectural boundary, mutation invariant and data contract was personally defined, verified against those criteria, and integrated.

Evidence — IVDNI-E019

04 / Technical architecture

One mutation authority between every gesture and the document.

The client application — the Studio — is written in framework-free, vanilla JavaScript to maximize execution throughput and eliminate framework scheduling jitter. It initializes through an ordered bootstrap sequence with explicit lifecycle phases.

At its core sits a single mutation boundary: EditorActions. All canvas mutations — pointer gestures, keyboard shortcuts, intent reasoning — are linearized through it into discrete transaction units. CommandHistory uses transaction-aware commands and before/after state snapshots to support undo and redo. Heavy original image bytes live in a local AssetStore on the Origin Private File System, with IndexedDB as the fallback.

Optional server-side services run on Cloudflare Workers for authentication, cloud backup, and gated intent features, with D1 holding account identity and project metadata and R2 holding private project bytes. The split is deliberate: everything a creator draws keeps working when the right side of the diagram is unreachable.

Fig. 1 — Local-first engine topologyEvidence: IVDNI-E002 · E003 · E004 · E005
IVDNI system architecture The browser Studio holds the authoritative state: workspace controllers feed EditorActions, which alone writes through CommandHistory, the project store and the OPFS asset store. A guarded intent pipeline reaches EditorActions only after plan, simulate, preview and apply. An optional Cloudflare Worker with D1 and R2 mirrors data on the right, connected by an opt-in consent link. IVDNI system architecture — local-first engine topology PRIMARY AUTHORITATIVE ZONE — BROWSER STUDIO (NATIVE JS) no virtual DOM Studio workspace & tool controllers vector shapes · text engine · booleans · keyframe motion · components MUTATION BOUNDARY — EditorActions (single ingestion authority) transaction linearization · invariant checks · post-commit isolation PR #142 · commit 9f1da7c3 CommandHistory before/after snapshots undo · redo IVDNI-E003 Project store JSON canvas tree indexed document state IVDNI-E001 AssetStore (OPFS) deduplicated image bytes IndexedDB fallback IVDNI-E005 GUARDED INTENT PIPELINE — plan · simulate · preview · apply deterministic token intents (PR #174) · gated agent runtime (PR #176) Z2 intent engine integration: experimental, default off (PR #171) opt-in consent OPTIONAL CLOUD SERVICES Cloudflare Worker auth · cloud sync · intent early access · libraries IVDNI-E004 Cloudflare D1 (SQL) account identity project catalog & metadata Cloudflare R2 (objects) private project bytes cloud asset snapshots STATUS — issue #193 / PR #194 cloud-restore regression under review

Evidence — IVDNI-E002 · IVDNI-E003 · IVDNI-E004 · IVDNI-E005

05 / Key engineering decisions

Four trade-offs, resolved on the record.

1 · Local-first sovereignty. Browser storage is the primary source of truth. Editing never waits on a remote round-trip; the optional cloud mirror is consented, asynchronous and bounded by account storage limits.

2 · Linearized mutation gate. Nothing writes to the document tree directly. Every state transition passes through EditorActions, where invariant validation, crash logging and post-commit notification isolation run before anything commits.

3 · Guarded intent execution. AI-driven or script-generated modifications are prohibited from writing to the canvas directly. A change must pass through plan → simulate → visual preview → explicit user confirmation before it reaches the same authoritative boundary as a hand gesture.

4 · Deduplicated local assets. Images are stored once — keyed by content — in the Origin Private File System, decoupled from the lightweight JSON document tree so that binary weight never saturates editing memory.

Fig. 2 — Decision matrixEvidence: IVDNI-E001 · E003 · E005 · E012
Architectural design decisions and their trade-offs Four decision cards: local-first authority over offline resilience versus instant sync; transaction linearization over ad-hoc writes; guarded intent boundary over autonomous AI writes; deduplicated OPFS assets over memory bloat. Each card names its resolution and evidence. Architectural decisions & engineering trade-offs DECISION 01 Local-first authority trade: offline resilience vs instant sync The browser canvas operates with full autonomy; sync is a consented mirror, never the master copy. IVDNI-E001 · E005 DECISION 02 Transaction linearization trade: one gate vs ad-hoc writes EditorActions governs all mutations; CommandHistory snapshots before/after state. IVDNI-E003 · PR #142 DECISION 03 Guarded intent boundary trade: AI autonomy vs invariants AI edits must pass plan, simulate, preview and apply before reaching the canvas. IVDNI-E003 · E012 DECISION 04 Deduplicated OPFS assets trade: memory bloat vs durability Images are stored once, keyed by content, in the Origin Private File System with IDB fallback. IVDNI-E005 · commit d4da7319

Evidence — IVDNI-E001 · IVDNI-E003 · IVDNI-E005 · IVDNI-E012

06 / Implementation challenges

Where compound documents fought their own history.

The hardest stability problem appeared where canvas hierarchies meet rapid undo: grouped layers, boolean masks and text elements could drift into subtle desynchronization when edits were reversed in quick succession. The fix was structural, not patchwork — EditorActions transactions were linearized and post-commit notification isolation was introduced, decoupling document mutation from reactive panel updates.

Recovery was the second front. Stale browser tabs and unexpected process termination are normal events on the web, so the Studio persists document recovery checkpoints and treats their restoration as a first-class path rather than an exception handler.

Evidence — IVDNI-E003 · PR #142 · PR #170 · PR #162

07 / Quality & testing

Regression baselines, not victory laps.

Quality assurance combines unit suites, DOM integration harnesses and continuous regression runs. Pull request #191 merged a risk-scoped Editor CI workflow that partitions regression coverage across a three-shard matrix. A GitHub Actions run on PR #194’s head completed successfully on the exact commit it tested.

A golden-project regression harness guards real content behaviour — one recorded pass fixed CJK line wrapping and a truncated JPEG import in the same change. In keeping with honest disclosure, automated passes here are regression baselines, not a blanket guarantee that every future change is green.

Evidence — IVDNI-E013 · IVDNI-E014 · commit 1338a965

08 / Results & evidence

What actually merged, and when.

The core systems named in this case study are merged and demonstrated on the recorded main branch. The verified deliverables: the EditorActions mutation layer (PR #142), the Studio panel and docking system (PR #156), the sitewide design-token foundation (commits 7ab6bca5, 6aa5d6b7), Collaboration 1.0 with canvas comments, object locks and ownership transfer (2026-10-30 series), and the Living Design Systems foundation of semantic graph, token linkage and agent runtime (PRs #173–#178).

One limitation is disclosed rather than hidden: a cloud-restore regression is under active investigation in issue #193 and PR #194. Tracking it in public is part of what evidence-based engineering means here.

Fig. 3 — Verified engineering timelineEvidence: PR & commit records, 2026-10-16 → 2026-11-05
IVDNI verified engineering timeline A chronology from October 16 to November 5, 2026: transaction reliability and invariants merge on October 16; the Studio visual language and sitewide token foundation on October 17; crash recovery on October 20; design tokens and the IVDNI Kit on October 27 to 29; Collaboration 1.0 on October 30; the experimental Z2 intent engine on November 2; the Living Design Systems foundation on November 3; three-shard editor CI on November 4; and the cloud-restore regression investigation opens on November 5. Verified engineering timeline — merged, experimental, under review 10-16 PR #142 · #144 SHIPPED transactions · invariants 10-17 PR #155 · #156 · #159 SHIPPED visual language · tokens 10-20 PR #162 SHIPPED crash recovery 10-27 → 10-29 tokens · IVDNI Kit SHIPPED one token source · code export 10-30 Collaboration 1.0 SHIPPED comments · locks · ownership 11-02 PR #171 EXPERIMENTAL Z2 intent engine · default off 11-03 PR #173 → #178 SHIPPED LDS graph · agent runtime 11-05 issue #193 · PR #194 UNDER REVIEW cloud-restore regression merged to main experimental, default off under investigation planned, not shipped (see roadmap)

Evidence — IVDNI-E001 · E003 · E011 · E013 · E015

09 / Limitations

What this case study does not claim.

Cloud restore. A diagnostic regression is under active investigation in issue #193 and PR #194; cloud-restore behaviour should not be assumed flawless until that closes.

Living Design Systems scope. Cross-document token batches, responsive artboard linkage and the trusted agent host remain in open, unmerged pull requests (#184–#187). They are planned work, not released features.

Design-to-code is bounded. The UI-to-Code bridge targets designated HTML and React component outputs — not arbitrary full-stack application generation.

No commercial claims. Adoption, paying-customer volume and revenue have zero evidence in the engineering record and are omitted entirely.

History is sampled. Commit and pull-request references come from a curated milestone sample, not an exhaustive repository audit.

Evidence — IVDNI-E010 · E015 · E016

10 / Lessons learned

Three lessons the architecture taught back.

Lesson 1 — Truthful persistence

Local-first editing requires a clear distinction between changes in memory, successful storage writes, and verified durability. Persisting in the browser sandbox — via the Origin Private File System with IndexedDB fallback — demands that heavy binary blobs, such as images, stay decoupled from the JSON state trees. Blurring that line is how editing memory saturates.

Lesson 2 — Transaction integrity

Undo/redo correctness depends on consistent state transitions, guarded mutations, and reliable failure handling. CommandHistory uses transaction-aware commands and before/after state snapshots to support undo and redo; history management cannot operate as an uncoordinated secondary layer bolted on after the fact.

Lesson 3 — Trusted AI execution

AI-generated editing plans must pass through validation, preview, explicit confirmation, and the existing authoritative mutation boundary. Permitting autonomous scripts or language models to write directly to canvas state corrupts document invariants. A disciplined plan–simulate–preview–apply boundary keeps creative control in human hands.

Evidence — IVDNI-E020 · Owner-approved engineering summary

11 / Future direction

Shipped, under review, and planned — kept visibly apart.

Active work is concluding the cloud-restore regression investigation (issue #193, PR #194). Beyond it, four Living Design Systems capabilities are in open pull requests. They are listed here as planned development: none of them is a released capability today.

IVDNI delivery status by capability
StatusCapabilityReference
Shipped on mainEditorActions transaction reliability & linearizationPR #142 · #170
Shipped on mainStudio visual language, panel dock & sitewide token foundationPR #155 · #156 · #159
Shipped on mainStudio crash recovery & stale-tab handlingPR #162
Shipped on mainCollaboration 1.0 — comments, threads, object locks, ownership2026-10-30 series
Shipped on mainLiving Design Systems — semantic graph, token linkage, agent runtimePR #173 → #178
Shipped on mainRisk-scoped Editor CI, three-shard regressionPR #191
Experimental, default offZ2 intent engine integrationPR #171
Under investigationCloud restore diagnostic regressionissue #193 · PR #194
Planned, not shippedLDS cross-document token batchesPR #184 (open)
Planned, not shippedLDS responsive artboard linkagePR #185 (open)
Planned, not shippedDesign-to-code incremental syncPR #186 (open)
Planned, not shippedTrusted agent hostPR #187 (open)

About IVDNI. IVDNI is an independent product in early access. This page documents its engineering; a public product link will be added here once the canonical public URL is available.

Return to Galok work