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.

First published: Jul 4, 2026 · Last updated: Jul 25, 2026 · Beginner
demand #1 in Edge SEO#44 in Technical SEO#60 on the site
1 evidence signal on this page

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.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.