The next billion visitors won't be human.

Agents passed human traffic on Cloudflare's network in May 2026. Foundry wraps your Nuxt site in an instrument that records every signal — human or machine — and streams it raw to where you decide: double down, or kill.

github.com/incubrain/foundry → MIT · open source

FIG. 1 — THE READING

The web's readership just changed species.

Not a forecast — a measurement. The crossover already happened, ahead of schedule. Sites designed only for human eyes are now illegible to most of their readers.

2024MAY 20262031 →SHARE OF NETWORK TRAFFIC (LOG)HUMANAGENT (PROJECTED)
FIG. 1 — Recorded left of the mark; projected right, dashed. Source: Cloudflare Q2 2026 earnings call.

PLATE II — THE LOOP

Wrap. Stream. Decide.

  1. Wrap

    One line, and your site is an instrument.

    extends: ['@incubrain/foundry']
  2. Stream

    Every event inked to a buffer you own — nothing pushed, everything pulled.

    GET /api/_signals/export
  3. Decide

    Read the record, make the only call that matters: double down, or kill.

PLATE III — CHANNELS

One drum, every signal.

No dashboards, no on-site analytics — interpretation belongs to the consumer. Four channels, one buffer, one authenticated export.

Signal channels recorded by the instrument
CH 01CapturesEmail, presales, bookings — demand lands as signal rows, not inbox noise.
CH 02EventsSection views and offer clicks — which promise pulled, which one died.
CH 03ErrorsServer and client failures, same stream — a broken site is the loudest signal.
CH 04VisitorsEvery row stamped human, agent, or bot — watch the species shift on your own site.

exposed surfaces — every one machine-readable

  • /api/_signals/exportbearer · pull
  • /api/_signals/ingestclient rows
  • /api/v1/webhookform capture
  • /api/_healthliveness · 0.8.1
  • /mcplist-pages · get-page · what-changed
  • /sitemap.xmlpage manifest
  • /llms.txtagent map
  • /robots.txtcrawler policy

PLATE IV — THE LIVE TAIL

Watch this page record you.

Not a mockup — the real emit hook. Every scroll and click becomes a signal row, mirrored here the instant your browser sends it. Reading the record is itself recorded.

live tail — POST /api/_signals/ingest

ring buffer · capacity 8 · 0 evicted

  1. — stylus down. scroll or click: your first row lands here —
Your session only — the server stamps each row's visitor class before it hits the drum.

PLATE V — BOTH SPECIES

Built to be read by machines, watched by you.

Agents don't run your JavaScript — they read structure, or they leave. Machine readers are a first-class audience here, and the shipped-vs-planned ledger stays honest.

  • SHIPPED

    Server-rendered everything

    Fully legible to zero-JS crawlers — GPTBot, ClaudeBot, PerplexityBot. This page included.

  • SHIPPED

    Visitor classification

    Every row stamped human | agent | bot — agent traffic measured, not guessed.

  • SHIPPED

    MCP tools on every site

    Agents query content and detect changes by hash instead of scraping.

  • SHIPPED

    sitemap.xml · robots.txt · llms.txt

    The discovery surfaces, emitted by default.

  • PLANNED

    Deliberate AI-crawler robots policy

    Training crawlers and live-fetch bots treated separately, per site.

  • PLANNED

    Raw markdown negotiation

    Plain markdown for agents that ask, on any host.

  • PLANNED

    FAQ & Organization structured data

    JSON-LD from content the sites already model.

PLATE VI — STATION LOG

A live experiment, honestly framed.

“Most of this is not proven yet.”

— VISION.md, this repository

This page is itself a Foundry instrument — your visit is on the drum right now. No adoption numbers, no testimonials: when the record says something, the record will say it.

Station log: what is recorded fact and what remains open
2026-05Agent traffic passes human activity on Cloudflare's network.REPORTED
2026-08-20Signal transport ships — ring buffer, error hook, authenticated export.RECORDED
2026-08-31v0.8.0 published to npm. Two production sites streaming — astronera.org and incubrain.org.RECORDED
Third-party adoption beyond our own sites.OPEN
The 1,000× projection.OPEN

PLATE VII — QUESTIONS

Asked and answered.

What's the stack?

Nuxt 4, Tailwind 4, TypeScript. Foundry is a Nuxt layer — one extends line in your config and your app inherits the sections, capture endpoints, SEO, RSS, and MCP surface.

Where do my signals go?

Into a capped ring buffer on your own server. Nothing is pushed to a third party — you pull the raw record from the export endpoint with a token you control.

What does "agent-readable" mean here?

Every page is server-rendered — no JavaScript needed to read it. Sites also emit sitemap, robots, and llms.txt, expose MCP tools, and classify every visitor as human, agent, or bot.

How hard is it to customize?

It's standard Vue and Nuxt. Content lives in YAML and markdown; sections are ordinary components.

Is this really free?

Yes. MIT licensed. You own the code and the data.

What is Foundry NOT?

Not a dashboard, not analytics, not email sequences, not payments. Foundry ends at the stream — interpretation belongs to whatever pulls your export.

Why trust the agent-traffic thesis?

Don't — check it. The Cloudflare sources are linked above, and every Foundry site classifies its own visitors, so you'll see the shift (or its absence) in your own export.

Who runs this in production?

Two of our own sites — astronera.org and incubrain.org. Nobody else yet; that's an open entry in the station log.

Point an instrument at your next idea.

read the source → github.com/incubrain/foundry

for agents reading this page

FOUNDRY · SIGNAL STATION №1 — built on itself: this page records its own signal, classifies its own visitors, and exports its own record. Nuxt 4 · Tailwind 4 · TypeScript.

© 2023–2026 Incubrain Pvt. Ltd. · MIT license

xyoutubegithubbuilt with @incubrain/foundry v0.8.0