Blog

Dispatches from the browser-agent frontier.

Architectural deep-dives, comparisons, and patterns we keep coming back to. Subscribe via RSS.

cornerstone

WebMCP has two sides, and everyone is building one

WebMCP is shipping in Chrome and default-on at Shopify. But every implementation so far picks a side — publish tools, or consume them. Here's why both matters, and what it takes.

  • webmcp
  • standards
  • agents
  • browser
narrative

Why we built Dornick: forms aren't the bottleneck, agents are

We started with a server-side conversational form filler. We ripped it all out and rebuilt as a browser-first agent SDK. The pivot, the bet, and where AI actually lives on the web.

8 min read
  • product
  • story
  • agents
  • browser
cornerstone

The agent VFS pattern: give the LLM a workspace, not a prompt

Why putting everything in the system prompt is the wrong abstraction for modern agents, and how a virtual filesystem solves the problems prompt-stuffing creates. Architectural deep-dive.

11 min read
  • architecture
  • vfs
  • agents
  • prompt-engineering
supporting

Browser-side PDF Q&A without uploading the file

Why we stopped uploading PDFs to servers for AI processing, what the privacy story looks like when files stay in the browser, and how Dornick's parsers do it in 1 KB of glue + lazy WASM.

7 min read
  • privacy
  • parsers
  • pdf
  • browser
supporting

Multi-agent handoffs: rescuing a stalled checkout

How to build a save-the-sale agent that swaps personas mid-flow on exit intent. The patterns, the triggers, the anti-patterns. Worked example with code.

9 min read
  • multi-agent
  • checkout
  • triggers
  • patterns
narrative

Dornick vs CopilotKit vs Stagehand — picking your in-browser agent stack

An honest decision matrix for three popular in-browser AI agent libraries. Different problems, different trade-offs, different bets — and what to pick by use case.

9 min read
  • comparison
  • copilotkit
  • stagehand
  • decision-matrix
technical

Building a Chrome extension with per-origin AI agents

One Manifest V3 extension, a different Dornick agent on every SaaS — Zendesk, Salesforce, HubSpot, GitHub. The scaffold, the patterns, what passes Chrome Web Store review, and what doesn't.

7 min read
  • extension
  • chrome
  • manifest-v3
  • patterns
technical

Streaming Claude responses over a 1 KB Node proxy

Why we ship @dornick/server — a minimal SSE proxy that hides your API key without becoming a backend. The streaming-from-zero pattern, the trade-offs, and when it's actually necessary.

6 min read
  • streaming
  • proxy
  • server
  • sse
technical

Turning your page into an MCP server for Claude Desktop

Expose your live browser tab as a Model Context Protocol server so Claude Desktop, Cursor, or Continue can read it directly. The pattern, the code, and the surprisingly useful workflows it unlocks.

7 min read
  • mcp
  • claude-desktop
  • interop
  • patterns
technical

Shadow DOM, agent chat, and not fighting your CSS

Why Dornick renders the chat UI into a Shadow DOM, how it stays style-isolated against arbitrary host CSS, and the surprising number of edge cases that this design solves for free.

6 min read
  • shadow-dom
  • css
  • ui
  • architecture

Ship an agent-driven flow this afternoon.

Install Dornick, paste a config, and your form turns into an agent that fills its own inputs.