<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Dornick — blog</title><description>Articles on Dornick — the in-browser AI agent SDK.</description><link>https://dornick.neullabs.com/</link><language>en-us</language><item><title>WebMCP has two sides, and everyone is building one</title><link>https://dornick.neullabs.com/blog/webmcp-both-sides/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/webmcp-both-sides/</guid><description>WebMCP is shipping in Chrome and default-on at Shopify. But every implementation so far picks a side — publish tools, or consume them. Here&apos;s why both matters, and what it takes.</description><pubDate>Fri, 04 Sep 2026 00:00:00 GMT</pubDate><category>webmcp</category><category>standards</category><category>agents</category><category>browser</category><category>mcp</category></item><item><title>Why we built Dornick: forms aren&apos;t the bottleneck, agents are</title><link>https://dornick.neullabs.com/blog/why-we-built-dornick/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/why-we-built-dornick/</guid><description>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.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate><category>product</category><category>story</category><category>agents</category><category>browser</category></item><item><title>The agent VFS pattern: give the LLM a workspace, not a prompt</title><link>https://dornick.neullabs.com/blog/agent-vfs-pattern/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/agent-vfs-pattern/</guid><description>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.</description><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate><category>architecture</category><category>vfs</category><category>agents</category><category>prompt-engineering</category></item><item><title>Browser-side PDF Q&amp;A without uploading the file</title><link>https://dornick.neullabs.com/blog/browser-side-pdf-qna/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/browser-side-pdf-qna/</guid><description>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&apos;s parsers do it in 1 KB of glue + lazy WASM.</description><pubDate>Fri, 22 May 2026 00:00:00 GMT</pubDate><category>privacy</category><category>parsers</category><category>pdf</category><category>browser</category></item><item><title>Multi-agent handoffs: rescuing a stalled checkout</title><link>https://dornick.neullabs.com/blog/multi-agent-checkout-rescue/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/multi-agent-checkout-rescue/</guid><description>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.</description><pubDate>Tue, 19 May 2026 00:00:00 GMT</pubDate><category>multi-agent</category><category>checkout</category><category>triggers</category><category>patterns</category></item><item><title>Dornick vs CopilotKit vs Stagehand — picking your in-browser agent stack</title><link>https://dornick.neullabs.com/blog/in-browser-agent-stack/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/in-browser-agent-stack/</guid><description>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.</description><pubDate>Sat, 16 May 2026 00:00:00 GMT</pubDate><category>comparison</category><category>copilotkit</category><category>stagehand</category><category>decision-matrix</category></item><item><title>Building a Chrome extension with per-origin AI agents</title><link>https://dornick.neullabs.com/blog/chrome-extension-per-origin-agents/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/chrome-extension-per-origin-agents/</guid><description>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&apos;t.</description><pubDate>Wed, 13 May 2026 00:00:00 GMT</pubDate><category>extension</category><category>chrome</category><category>manifest-v3</category><category>patterns</category></item><item><title>Streaming Claude responses over a 1 KB Node proxy</title><link>https://dornick.neullabs.com/blog/streaming-llm-proxy/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/streaming-llm-proxy/</guid><description>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&apos;s actually necessary.</description><pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate><category>streaming</category><category>proxy</category><category>server</category><category>sse</category></item><item><title>Turning your page into an MCP server for Claude Desktop</title><link>https://dornick.neullabs.com/blog/your-page-as-mcp-server/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/your-page-as-mcp-server/</guid><description>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.</description><pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate><category>mcp</category><category>claude-desktop</category><category>interop</category><category>patterns</category></item><item><title>Shadow DOM, agent chat, and not fighting your CSS</title><link>https://dornick.neullabs.com/blog/llms-shouldnt-fight-css/</link><guid isPermaLink="true">https://dornick.neullabs.com/blog/llms-shouldnt-fight-css/</guid><description>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.</description><pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate><category>shadow-dom</category><category>css</category><category>ui</category><category>architecture</category></item></channel></rss>