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 data, 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 Workers 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 Rendering, native rate-limit bindings, and a Durable Object that coordinates browser-rendering 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 page 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 TTFB properties that make a site pleasant for users are the same ones
that make it cheap for crawlers.
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 Vitals 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 crawlers 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
indexing, 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 MCP 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 LCP 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 Vitals 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.txt
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.
TL;DR — Operate the site by preserving its explicit boundaries: static HTML remains the default delivery path, dynamic work stays in the correct Worker and data plane, unavailable dependencies produce honest states, and every release keeps crawler, agent, provenance, and performance contracts aligned.
Release the static and dynamic surfaces independently
The static artifact is the public baseline. Verify that editorial routes render complete HTML and that ordinary assets do not enter Worker compute accidentally. Changes to editorial/community APIs belong to the site Worker; tool execution and product persistence belong to the product Worker. Keep the service binding as the interface instead of merging those responsibilities into one deployment.
Preserve data and disclosure boundaries
Check that site and product records continue to use their separate D1, KV, and backup paths, and that expert media stays in its intended R2 surface. Public documentation should explain each service’s purpose without exposing credentials, private binding names, bucket identifiers, schemas, internal endpoints, or backup schedules.
Test truthfulness as a release property
For every changed feature, identify the source of visitor-facing data. Live metrics
must come from the named production source; examples and fixtures must remain
labeled. When a binding, credential, or execution budget is unavailable, verify the
explicit unavailable state instead of accepting generated or stale-looking output.
Also test the real HTTP lifecycle: valid pages return their intended status, missing
pages return 404, intentional removals can return 410, and /coffee alone keeps
its deliberate 418 demonstration.
Keep retrieval and provenance outputs synchronized
An article change is incomplete if only its HTML changes. Confirm its Markdown twin, the agent indexes, the content graph, structured data, and read-only MCP retrieval surface all describe the same public corpus. Preserve AI labels and revision metadata until human review, and keep labeled work out of aggregate counts wherever the shared provenance helper requires it.
Operator checklist
- Confirm static routes bypass Worker compute and dynamic routes reach the intended Worker.
- Exercise same-origin
/api/calls across the service-binding boundary. - Verify explicit unavailable states for bounded live features.
- Check HTML, Markdown, agent indexes, content graph, and structured data together.
- Inspect session Core Web Vitals and ensure font, embed, API, and prerender behavior still follows the documented performance budget.
- Recheck About, Privacy, and Terms whenever a change crosses the colophon’s stated scope.
- 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 Workers 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 Rendering, 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 Rules prerendering, and per-article JSON-LD; 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 server. 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 token-driven skins.
- Performance: size-adjusted font fallbacks, LCP-only preloads, lazy third-party embeds, visible per-session CWV 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
Revision history
Compare the published article with an archived editorial snapshot. Added and removed words are shown only after you open a comparison.
Updated Aug 29, 2026.
Editorial summary and recorded change details.Summary
Added an Advanced lens that turns the documented site architecture into an operator-focused release checklist.
Change details
-
Added deployment-boundary, data-honesty, retrieval, provenance, and performance checks derived from the existing build description.
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.