Colophon

How this site works


You are standing inside the most inspectable thing I have built. It answers questions over its own source, it degrades honestly with nothing configured, and it has no database. Here is how, and why.

310

chunks in the retrieval corpus

30,010

words indexed

0.05 ms

p95 in-memory retrieval over the whole corpus

$0

a month to run, excluding model calls

Measured 26 August 2026

Retrieval, without a vector store

The ask box on the home page and under every project is real retrieval over 310 chunks: this site's own content layer, plus twelve repository audits written from the code. Scoring is BM25 over stemmed terms, fused with cosine similarity over embeddings, using reciprocal rank fusion. All of it runs in memory over a JSON file generated at build time.

It was designed around a Postgres instance with pgvector, and that was the wrong call. The corpus is 310 chunks and under three megabytes. A vector store would have added a network hop, an API key, a cold start and a monthly bill to replace a loop over an array that finishes in a twentieth of a millisecond. The rule I now apply is that infrastructure has to survive being described in one sentence next to the thing it replaces.

The interesting part is not the retrieval, it is the refusal. Scores are floored, a query has to match at least two terms in a passage before that passage counts, and the answer step is instructed to return NO_ANSWER rather than reach. Ask this site about the weather and it will tell you it does not know.

Two checks, both proved by breaking them

verify:bundle asserts that the corpus never reaches a client chunk, and separately that it carries none of nine forbidden patterns: an excluded project, internal build status, and six things a live trading system must never publish about itself. verify:ask asserts that all thirty-nine suggested questions on this site actually retrieve, and that none of them leak across a project scope.

Both were proved by planting a violation and watching the build exit 1. That is not ceremony. The first plant passed, and the reason it passed was the finding: the assertion had been written and never called, because a formatter had moved the line the call was supposed to sit on. A check that has never failed has never been tested.

verify:ask is the piece of this I would call evaluation work if pressed. It does not score model output, it asserts that the retrieval layer under it can find anything at all for the questions the site itself puts in front of a visitor. The distinction it surfaced is the useful one: retrieval-passing is not answer-passing, and a check can prove a question finds relevant material while being structurally unable to prove the material answers it. Four suggestions retrieved three on-scope passages each and still correctly refused.

The same lesson arrived again from the other direction. A contrast audit across every route reported zero failures for a while, which was wrong: it was reading oklch coordinates as if they were RGB values and measuring every element on the site at 1.00:1. Rasterised through a canvas it found thirty-two.

Type, colour, and the one edit rule

Fraunces for display, Geist and Geist Mono for text and data. Every colour on the site resolves through a semantic token in one stylesheet, so changing one is one edit in one file, and there is no hardcoded hex in any component.

Each project carries an identity colour that flows through its numeral, its mark, its field and its frame. That system was broken for most of this site's life and nobody could see it: the derived tokens were declared at the root, where a custom property referencing var() resolves at the element it is declared on rather than where it is used, so all five projects rendered in the same rust. The repetition that fixes it is deliberate and commented, because the instinct on reading five near-identical blocks is to factor them back out, which restores the bug exactly.

The twelve marks are drawn rather than picked. Each one encodes something true: KinoLog is a ticket stub, Halyard is the line and the cleat it is made fast to, Bodivo is three measured bars and a fourth that is not there. They are painted as CSS masks so they inherit the project's colour, which an image tag could not do.

Why there are holes in this page

[TK] is a proofreader's mark meaning to come, and this site prints it in public wherever something is unknown rather than filling the gap with something plausible. The audience is people who check claims, so a visible hole is worth more than a confident guess. There are none left on the site today, which is a statement about what has been confirmed rather than about the rule.

[] is the other tool and it means something different: absent rather than unknown. An empty list removes its section and its heading entirely, so a project with no screenshots shows no frame rather than an empty one, and a repository with nowhere to link shows an em dash rather than a promise.

The same discipline killed a function that hashed repository names into plausible weekly commit bars so the activity strip always had something to draw. It was deterministic, which made it stable, and it was not data, which made it a fabricated fact with better art direction.

What it runs on

TanStack Start with server-side rendering, React 19, Vite, Tailwind, TypeScript in strict mode with exactOptionalPropertyTypes and noUncheckedIndexedAccess. Built on Vercel from a push to main. Fonts are self-hosted and split by unicode range.

It costs nothing a month to run beyond model calls, because there is no database, no vector store and no object storage. It also renders correctly with zero environment variables set: the repository list falls back to a curated static index, the contact form composes a mailto link, App Store figures render as [TK], and the ask endpoint returns the retrieved passages verbatim with real citations. A worse-written answer, and an equally true one.

Every number on this site carries the date it was measured, because several of them move. The commit count on the arbor case study drifted three places in the three days between being captured and being published.

The same standard as everything else here

Nothing on this page is a claim you have to take on trust. The retrieval corpus, the two verify commands, the token system and every figure above are in the repository index, and the ask box will quote the relevant passage back at you with a citation if you ask it.

The repository index