Colophon: How This Site Works
The build behind patrickstox.com as an edge-SEO case study — Astro static-first on Cloudflare, separate site and product Workers, the D1/KV/R2 data layer, explicit interfaces for agents, editorial provenance, the expert layer, and the performance budget.
1 evidence signal on this page
- Linked source data/agent-index.json
This is a making-of and credits record, not the About, Privacy, or Terms page. This site is an Astro static build served from Cloudflare's edge. A site Worker owns community and editorial APIs; a separately deployed product Worker owns tool execution and product data, reached through a service binding. Static requests bypass both Workers. Site and product data have separate D1, KV, and private backup infrastructure, while R2 also stores expert media; binding names, schemas, and backup schedules stay undisclosed by policy. Articles publish explicit Markdown twins and the site exposes agent indexes plus a read-only MCP server; same-URL Markdown content negotiation is deliberately still off. AI-generated or AI-revised copy stays labeled until human review and is excluded from aggregate content counts while labeled. The public expert panel can attach notes and answers to stable article passages, while the free-tool platform mixes browser-local analysis with bounded live checks.
TL;DR — Static-first Astro on Cloudflare, two deliberately separate Workers for the dynamic parts, real data or a clearly unavailable state, honest status codes, and a design system that dresses the site like a search results page. This is the “about the making of” page for the edge-SEO case study the site became.
What this page is (and isn’t)
A colophon is a making-of and credits record — it explains the technology, systems, and people behind a published work, the way a book’s colophon names its typeface and printer. It is not a substitute for the pages that carry legal or biographical weight: the About page covers who I am, the Privacy Policy covers what data is collected and why, and the Terms of Use cover the rules for using the site. This page only documents how the site is built and operated; where a claim below overlaps with one of those pages, that page is the authoritative source.
The stack
This site uses Astro’s static output to generate HTML pages at build time. Evidence for this claim Astro prerenders pages statically by default unless on-demand rendering is enabled. Scope: Astro rendering modes used by this site's implementation. Confidence: high · Verified: Astro: On-demand rendering Static delivery can reduce runtime dependencies, although SEO outcomes still depend on the rendered content, links, and technical configuration. Evidence for this claim Static delivery is an implementation choice; search performance still depends on accessible content, links, and other SEO fundamentals. Scope: Editorial conclusion combining the site's stack with Google's general SEO guidance; static generation alone does not guarantee rankings. Confidence: medium · Verified: Google: SEO Starter Guide
- Astro generates the articles, glossary, hubs, tool shells, structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding., search and agent indexes, and Markdown twins at deploy time. The corpus changes too quickly for a hand-maintained page count to be useful.
- Cloudflare WorkersA serverless function that runs at Cloudflare's global edge, close to every user. Static Assets serves that build from the edge. The site configuration routes only dynamic and specially handled paths through code; ordinary page and asset requests bypass Worker compute. The configuration is the source of truth for that route boundary rather than a copied list on this page.
- The site Worker owns editorial and community concerns: contact, reader Q&A, reactions, newsletter, search telemetry, the expert layer, and owner operations.
- A separately deployed product Worker owns free-tool execution and product
persistence. The site Worker reaches it through a Cloudflare service binding, so
browsers keep same-origin
/api/URLs without collapsing the two security and data boundaries.
Two data planes, separated on purpose
The site and product Workers each have their own D1 database and KV namespace, connected through a Cloudflare service binding. Site D1 contains community and editorial records; product D1 contains tool usage, ratings, bug reports, feature requests, research jobs, and monitoring data. KV is used for scoped caches and fallback counters.
R2 is split by purpose too. The site media bucket holds expert photos and audio answers. Private site and product backup buckets receive scheduled D1 exports on separate schedules, with retention and health surfaced to owner operations. The product Worker also has bounded Workers AI, Browser RenderingTurning HTML, CSS, and JavaScript into the final visual page and DOM., native rate-limit bindings, and a Durable Object that coordinates browser-renderingTurning HTML, CSS, and JavaScript into the final visual page and DOM. budget. Features with unavailable bindings or exhausted budgets return an explicit unavailable state rather than invented output.
What this section deliberately leaves out: binding names, bucket identifiers, database schemas, credentials, internal endpoints, and backup schedules. Naming the public purpose of each service is useful for understanding the site; naming its private topology mostly just helps an attacker, so it stays out of a public page by policy, not by oversight.
Why static-first is an SEO position, not just a hosting choice
Every indexable editorial page is delivered as a fully rendered HTML document
with a real status code. Interactive tool results may run in the browser or call a
Worker, but the tool’s purpose and instructions do not depend on client rendering
to exist. The 404 page404 Not Found is the HTTP client-error status code a server returns when it can't find the requested URL — RFC 9110 defines it as no current representation, or unwillingness to disclose one. A \"hard 404\" actually returns the 404 status; a \"soft 404\" returns a success code (like 200) for a page that's really gone. 404s are normal and expected: the fact that some URLs 404 doesn't affect your site's other, successful pages, and Google de-indexes 404'd URLs over time (probably retrying for some period, less and less often). returns an actual 404, deleted pages can return an actual
410, and /coffee returns an actual 418 because a teapot can’t brew coffee. The
uptime and TTFBTime to First Byte — the time from the start of a request to when the first byte of the response arrives. It's a diagnostic metric (not a Core Web Vital) and a major input to FCP and LCP; ≤0.8 s is good. properties that make a site pleasant for users are the same ones
that make it cheap for crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index..
The data-honesty rule
Visitor-facing production metrics come from an identified source: word counts and reading time from the article body, reaction counts from D1, bot-crawl data from Cloudflare’s zone analytics, and your own Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. from your browser via PerformanceObserver. A tool can offer a labeled example or fixture to explain its output, but it is not presented as a live measurement. Features that need an unavailable credential or have exhausted a budget say so or hide the affected result instead of silently inventing production data.
Editorial provenance
The content system treats AI provenance as review state, not decoration. A wholly AI-generated article uses an article-level label; a later AI pass on previously reviewed copy re-labels only the lens or lenses it changed unless the pass spans the whole article. AI revision metadata records the pass and its date. While any AI label remains, the article displays AI authorship instead of attributing the copy to Patrick and is excluded from aggregate content counts and related site-wide tallies. Only human review or revision removes the label; another AI pass does not.
That contract does not certify unlabeled copy as error-free. It keeps authorship, review status, and public counts from silently overstating what a human has vetted. The Terms of Use state the reader-facing boundary, and the repository’s shared label helper keeps the same rule across consumers.
Explicit interfaces for agents
AI crawlersAI crawlers are bots from AI companies that fetch web pages to train language models, build AI-search indexes, or answer live user questions. They come in three categories, each with its own user-agent tokens and its own robots.txt controls. can use the same rendered HTML as everyone else, but they no longer
have to scrape it. Every published article has a generated index.md twin and a
“Copy as Markdown” control. /llms.txt points at the corpus,
/llms-full.txt provides bulk Markdown,
/agent-index.json describes the complete public retrieval
corpus, and /content-graph.json publishes its internal-link
graph. A rate-limited, read-only MCP server
exposes content search, article retrieval, taxonomy, and a small set of bounded
diagnostic tools. The live roster and connection instructions are on the For
agents page. None of this is presented as a guarantee of
indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., citation, or ranking — it’s a stable retrieval contract, not an SEO claim.
What is not enabled is same-URL Accept: text/markdown negotiation through
Cloudflare’s Markdown for Agents. The explicit Markdown URLs are the stable public
contract today; if content negotiation is enabled later, it can sit in front of
the same generated source instead of creating a second editorial copy.
Tools and expert review
The free SEO tools range from browser-local parsers, validators, and calculators to bounded live fetches, rendering comparisons, field-data lookups, and AI-assisted operations. Shared rule registries keep browser, Worker, bulk, and MCPMCP is an open protocol, created and open-sourced by Anthropic in November 2024, that standardizes how AI applications connect to external tools and data at runtime. It runs on a host–client–server architecture and lets agents call functions, read data, and take actions — the opposite of a static file like llms.txt. results aligned where a tool has more than one interface.
The public expert panel turns articles into anchored discussions. Verified experts can attach notes to stable paragraph IDs and answer questions; trusted contributions publish directly while others enter moderation. Published notes and answers are baked into article output and its structured data rather than loaded as an unindexable afterthought.
The search-native design system
The site is styled like the medium it lives in: the homepage feed, the content hub, and site search all render as SERP results (green crumb, blue title, snippet), articles carry a self-referential “In search results” preview, TL;DRs are styled as featured snippets, and reader Q&A collapses like People Also Ask. Five skins (Clean, Magazine, Neo-Brutalist, Punk, Cyberpunk) restyle everything through CSS custom properties — radius, borders, shadows, type — so a component written once against the tokens works in all five.
Performance budget
Fonts load through Astro’s Fonts API with size-adjusted fallbacks so swaps don’t
shift layout; only the display face behind the usual LCPLargest Contentful Paint — render time of the largest visible image or text block, relative to when the page started loading. ≤2.5 s (at the 75th percentile) is good. element is preloaded.
Third-party embeds and the site’s own /api/* calls in the SEO-data tab are
lazy-loaded only when the tab opens. Speculation Rules prerender same-site links
on hover in Chromium. The Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. chips in every article’s health strip
are the receipts — they’re your session’s real numbers.
Credits and sources
- Owner and author: Patrick Stox writes and maintains this site; the About page has the background.
- Framework and platform: Astro for the build; Cloudflare Workers, D1, KV, and R2 for the runtime and data layer.
- Agent protocol: the Model Context Protocol specification, for the MCP server described above.
- Contributors: the verified experts on the expert panel who add notes and answers to article passages, credited by name where they publish.
- This page’s own sourcing: claims about deployed behavior are checked against this repository’s source and configuration; claims about platform behavior are checked against the official Astro and Cloudflare documentation linked throughout. Naming a technology here is a factual credit, not an endorsement or a claimed SEO outcome.
This page is reviewed periodically against the live repository and current platform documentation rather than left to drift; the updated date below reflects the last such pass.
The easter eggs are load-bearing
/robots.txt is one file that’s simultaneously a valid robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.
and a webpage (content negotiation on the label, byte-identical body). The
console has an egg. /coffee is a working HTCPCP demonstration. Each one exists
to teach the mechanism it plays with — which is the site’s whole thesis in
miniature.
- Scope: a making-of and credits record, distinct from the About, Privacy, and Terms pages, which remain authoritative on overlapping claims.
- Stack: Astro static build served by Cloudflare WorkersA serverless function that runs at Cloudflare's global edge, close to every user. Static Assets; ordinary static traffic bypasses Worker compute.
- Runtime split: a site Worker owns editorial/community APIs and delegates product paths over a service binding to a separately deployed product Worker.
- Data layer: separate site and product D1/KV stores; R2 for expert media and private scheduled backups; bounded Workers AI, Browser RenderingTurning HTML, CSS, and JavaScript into the final visual page and DOM., rate-limit bindings, and a Durable Object on the product side.
- SEO properties: fully rendered editorial HTML, honest status codes (real 404/410/418), Speculation RulesThe Speculation Rules API is a Chromium browser API (Chrome/Edge 109+) that lets a site tell the browser which same-site pages to prefetch (download the HTML document) or prerender (fully load and render in an invisible tab) before a visitor clicks — so the next navigation can be near-instant. It's a browser-side performance feature for real users, not a crawling, indexing, or ranking signal. prerendering, and per-article JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal.; interactive tool results can use browser or Worker execution.
- Data honesty: production metrics identify their real source; examples are labeled, and unavailable live features expose that state instead of fabricating production results.
- Editorial provenance: AI-generated or AI-revised copy remains labeled until human review, displays AI authorship while labeled, and does not enter aggregate content counts during that review state.
- Agent access: HTML plus per-article Markdown, bulk and structured indexes, the content graph, and a read-only MCP serverMCP is an open protocol, created and open-sourced by Anthropic in November 2024, that standardizes how AI applications connect to external tools and data at runtime. It runs on a host–client–server architecture and lets agents call functions, read data, and take actions — the opposite of a static file like llms.txt.. Same-URL Markdown negotiation is not enabled.
- Public systems: a free-tool platform and moderated expert notes/answers attached to stable article passages.
- Design: search-native motif (SERP-styled feeds, featured-snippet TL;DRs, PAA-style Q&A) with five tokenA token is the smallest unit of text (or image/audio/video) an LLM processes — roughly 4 characters, or about ¾ of an English word. A context window is the maximum number of tokens (input plus output) a model can hold at once, like its short-term memory.-driven skins.
- Performance: size-adjusted font fallbacks, LCPLargest Contentful Paint — render time of the largest visible image or text block, relative to when the page started loading. ≤2.5 s (at the 75th percentile) is good.-only preloadsResource hints are <link> elements (or equivalent HTTP Link headers) that tell the browser to do network work — DNS lookups, connection setup, or fetching a resource — earlier than it would discover the need on its own. The main ones are dns-prefetch, preconnect, preload, modulepreload, and prefetch., lazy third-party embeds, visible per-session CWVGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. chips.
- Disclosure boundary: publishes public purposes for its services (D1, KV, R2, service bindings, MCP), not binding names, bucket identifiers, schemas, credentials, or backup schedules.
- Credits: Patrick Stox as owner/author, Astro and Cloudflare as platform, the Model Context Protocol spec for agent access, and the verified experts who contribute notes and answers.
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 25, 2026.
Editorial summary and recorded change details.Summary
Documented the site's current AI editorial-provenance contract and tied it to visible authorship and aggregate-count behavior.
Change details
-
Added an Editorial provenance section explaining article-level and lens-level AI labels, human-review removal, AI revision metadata, visible AI authorship, and exclusion from aggregate content counts while a label remains.
-
Added editorial provenance to the AI Summary and page description so the compact representations match the making-of record.
Full comparison unavailable — no prior snapshot was archived for this revision.
Updated Jul 18, 2026.
Editorial summary and recorded change details.Summary
Added a scope boundary against About/Privacy/Terms, an explicit disclosure-boundary statement, source links for the named Cloudflare/Astro/MCP platforms, and a credits section.
Change details
-
Added a "What this page is (and isn't)" section clarifying this is a making-of/credits record, not the About, Privacy, or Terms page, with links to each.
-
Added an explicit disclosure-boundary statement in the data-planes section naming what is deliberately excluded (binding names, bucket identifiers, schemas, credentials, backup schedules).
-
Added a Credits and sources section crediting the owner/author, platform (Astro, Cloudflare Workers/D1/KV/R2), the Model Context Protocol spec, and contributing experts, plus links to the official Cloudflare and Astro documentation for the platforms named in the article.
Full comparison unavailable — no prior snapshot was archived for this revision.