How Probeo Runs on Antidrift

One person. A website observability platform with paying customers. Engineering, sales, support, billing, legal, content operations. Two AI coding tools. Three Antidrift products holding it together.

This isn't the story of how the tools were built. That's the Origin Story. This is what a Tuesday looks like.

What Probeo Is

Probeo is a website observability platform for large sites. It crawls every page, every run, extracts 200+ signals per page — SEO, security, accessibility, performance, content intelligence — and surfaces governance violations and revenue leaks before they compound. It has paying customers. More in the pipeline.

The company runs solo. Claude Code and Codex are the AI coding tools. DNA, ZeroMCP, and Husk are the infrastructure that makes solo operation possible.

The Engineering Day

Probeo's codebase is a monorepo with 12 internal packages: crawler, viewer, content pipeline, research pipeline, performance analysis, observability reports, and six open source libraries (anymodel, fast-a11y, anyserp, workflow, and two more). The stack is TypeScript on AWS (ECR, Lambda, SQS, Batch, multi-region) for the crawler and Cloudflare (Workers, Pages, R2) for the viewer and website.

DNA loads the context

Claude Code starts a session. DNA has already loaded. The Probeo brain is a git repo with directories for product, engineering, customers, marketing, sales, finance, and advisors. Each directory has a CLAUDE.md. Each customer has a subdirectory.

When Claude opens the crawler repo, it knows: functions must be 20-30 lines max, ESM only with .js extensions required, queued file I/O through ctx.fs and never bypassed, probeo-core builds first. It knows the pipeline architecture. It knows which customer issues are active and what's blocking them.

Switch to Codex for a different task. Same brain. AGENTS.md stays in sync with CLAUDE.md through DNA's /push command. The architectural decisions, the coding conventions, the customer context. Both tools read the same truth.

This is what DNA replaces: the first 15 minutes of every session spent re-explaining the company to the model. That time is zero now.

ZeroMCP connects the services

Probeo touches 18+ external services daily. Stripe for billing. Attio for the CRM. GitHub for repos, issues, PRs, and release traffic. Google Workspace for Sheets, Docs, Drive, Gmail, Calendar. Plus Jira, Linear, ClickUp, Notion, AWS, Cloudflare, Vercel, Netlify.

Before ZeroMCP, each service was a separate MCP server process. 18 processes. Orphaned Node processes surviving terminal closes. Credentials in plaintext JSON configs. 14GB of RAM consumed by zombie processes. Adding a connector meant editing JSON, getting the path right, restarting Claude Code, debugging why it didn't load.

ZeroMCP runs one process. 280+ tools across all 20 connectors, served through a single stdio connection. Zero runtime dependencies. The Stripe connector gives Claude Code 17 tools. The GitHub connector gives 15+. All namespaced. All from one process, one config.

During development, Claude Code can check a Stripe subscription, look up a customer in Attio, review a GitHub PR, and search Google Drive without switching tools or managing connections. One tool surface.

Husk is the terminal

The switch from Ghostty to Husk happened the week of April 7, 2026. Ghostty is a well-regarded native GPU-accelerated terminal. Choosing Husk over it is a real signal, not loyalty.

A typical development session means running the crawler, the viewer, customer work, and open source development simultaneously. Multiple terminals, multiple Claude Code sessions. Husk's status bar shows what Claude Code is doing in each session, how much context window is consumed, and what's running across all sessions. That visibility matters when you're the only person watching all the processes.

Husk is built on Electron, xterm.js with WebGL rendering, React, and node-pty. Startup under 2 seconds. Memory under 200MB. These numbers are tracked in CI because Hyper proved what happens when an Electron terminal doesn't track them.

Husk is the development environment for building Husk. The terminal is its own development environment.

The Business Operations Day

The same three tools handle the non-engineering half of the company. This is where the stack earns its name as infrastructure, not just a developer tool.

Billing and subscriptions

Stripe handles billing. Through ZeroMCP's Stripe connector, Claude Code can pull up a customer's subscription status, check invoice history, look at charge details. No switching to the Stripe dashboard. No logging in. The query happens inside the same terminal session where code is being written.

When a new customer comes on, the billing setup happens through the same tool surface. Create the customer, set up the subscription, confirm the invoice. All through MCP tools, all with DNA providing context about the pricing model and account terms.

NDAs and agreements

Customer agreements and NDAs live in the brain. DNA's legal skill pack provides 6 templates.

When Claude Code drafts an agreement, DNA provides the company context automatically: entity type, trust structure, standard terms. The AI doesn't need to be told these constraints every time. They're in the brain.

Document search and email

Google Workspace is connected through ZeroMCP: 24 tools covering Sheets, Docs, Drive, Gmail, and Calendar. "Find the Q1 memo I sent the CMO" is a query Claude Code can answer without opening a browser. "What did the customer say about the content pipeline?" pulls from email.

This matters for a solo founder because the alternative is context-switching between 6 browser tabs, 3 apps, and 2 terminal windows to find one piece of information. The MCP connector surface makes the search happen where the work happens.

Customer communications

A single customer has 6 contacts across decision-making, content, engineering, and executive roles. Each gets different communications. The decision-maker gets high-level impact reports. Engineering contacts get technical implementation details. The content lead manages the approve/reject workflow for rewrites.

DNA holds all of this contact context. When Claude Code drafts an email to a customer contact about site health, it knows their role, it knows what was delivered last quarter, it knows what's in progress, and it knows the editorial style. The email doesn't read like it was written by a model.

The Voice Layer

DNA holds the brand voice guide for both Probeo and Antidrift. When Claude Code writes anything — customer-facing or internal — the voice is already loaded.

For Probeo: direct, technical, no fluff. Observability, drift, governance, system health, revenue impact. No "boost your rankings." No "dominate search."

For customer communications: AP Stylebook primary, no em dashes, no adverbs, no prohibited buzzwords. Customers with their own editorial style guides get those layered on top. The AI output guardrails are enforced in the content generation layer and in every ad hoc email draft.

This works because the voice guide isn't a separate document someone pastes into a prompt. It's part of the brain. Every Claude Code session and every Codex session reads it automatically. The consistency is structural, not manual.

When the founder writes a cold outreach email, a customer memo, an NDA cover letter, or a LinkedIn post, the voice is already there. When the content pipeline generates rewrites across thousands of customer pages, the voice is there. One person's voice, applied consistently across every output.

What a Day Looks Like

Morning. Open Husk. Three terminal panes: crawler development, viewer development, and business operations. DNA is loaded in all three. ZeroMCP is serving 280+ tools through one process.

Check a customer's site health through Probeo's own crawler output. Draft a technical summary for their engineering contact. DNA knows the role. The email is scoped without specifying it.

Switch to the content pipeline. The v2 work needs fact research integration via anyserp, SERP gap injection, and a review workflow through Google Docs. Claude Code has full context on the pipeline architecture, the editorial style, and what shipped in v1. No ramp-up.

Check Attio for the sales pipeline. A prospect re-engaged. Draft prep notes for warm intro calls. DNA knows the advisor relationships, the deal history, and the company's position on VC money.

Invoice goes out through Stripe. Customer question comes in through Gmail. An NDA needs a revision. A GitHub issue needs a response. Husk shows all sessions. ZeroMCP connects all services. DNA provides all context.

One person. Not because the work is small. Because the tools compress what used to require a team into a workflow that one person can operate without losing context between tasks.