
Hi I build efficient apps & libraries using the web platform. With powerful libraries, I deliver results with simpler systems. Systems that emphasize:
- powerful primitives
- bottom-up development
- domain ontology
Unlocking the vanilla web platform to deliver productivity without framework bloat. The result is fast web sites/apps & systems that expand to handle more with less.
Featured
Introducing agent-doc: Documents as the UI for AI Agents

agent-doc turns markdown files into persistent, editable, version-controlled conversations with AI agents. No more ephemeral chat — your documents are the UI.
Signals Proposal Compared to rmemo/WeakRef

WeakRef can simplify systems built using the Signals Proposal. By removing the need to unwatch live Signals. WeakRef is criticized for having extra memory allocations & being slow.
This post shows benchmarks. Including the Signals Proposal polyfill & rmemo, a reactive library that uses WeakRef. Comparing:
- performance
- memory usage
- implementation
V8 & Javascript Core have different Garbage Collection behavior for WeakRef. This caused me confusion with my initial benchmarks which were only synchronous. This post demonstrates the implementations. This post then highlights use cases where WeakRef can be used for simple & flexible reactive apis.
Squarespace Site Lighthouse Scores

Let's analyze the performance of some Squarespace sites. Along with the fastest WordPress & Shopify themes.
Tag Vector: Part 0: Introduction

Tag Vector is a name system where tags connected as a vector form a name. Tag Vector can name variables, functions, components, network apis, low code apps, & prose.
Recent Posts
Dog-fooding agent-doc Part 2: rmemo, tag-path, and Releasing v0.16.1

A live session walking through agent-doc's compaction workflow, showcasing rmemo — a 358-byte reactive JavaScript library, introducing tag-path semantic code search with TreeSitter, and shipping agent-doc v0.16.1. Reflections on vibe coding, race conditions, and why naming conventions matter.
Dog-fooding agent-doc Part 3: YouTube Upload in Rust, tmux-router Tests, and JetBrains Plugin IPC

Building developer tools live with AI — implementing YouTube's resumable upload protocol in Rust, writing 61 tmux-router tests, wiring JetBrains plugin IPC for real-time document patching, and reflections on chaos, consciousness, and vibe coding.
Dog-fooding agent-doc: CRDT Debugging, Reactive Architecture, and Why God = Existence

A 2-hour live session debugging CRDT merge bugs in agent-doc, a Rust CLI tool for structured AI conversations in markdown. Covers reactive stream architecture, Existence Lang ontology, and what vibe coding actually looks like.
Tag Vector Interpreted by Chat GPT

An experiment using Chat GPT 3.5 on a Tag Vector blog post