Anthropic's Opus-class model in the Claude 4 family, used here as a drafting and research collaborator with a 1M-token context window.
Part 1 was the engine: a local-first RAG index in Rust — SQLite, hybrid search, Lua connectors, served to any tool over MCP. This post is the harder question one layer up, the one the engine only makes sense as an answer to: context that stays current and shareable across a team — and whether Context Harness is really the shape of that answer, or a hammer I enjoyed building and then went looking for a nail to justify.
Part 1 laid out the heresy: a static site can be genuinely dynamic if you stop reaching for a JavaScript framework and let a real database — running in the reader's browser, with no server at all — do the work.
This post is the field guide for that idea: the actual landscape of databases you can run in a browser tab, before I show you the experiment where I tried to live by it.
Somewhere along the way we decided that "dynamic website" had to mean a few megabytes of JavaScript framework, a build pipeline with opinions, and a server to feed it — all to render a list that changes. This series is about a heresy: what if a static site could be genuinely dynamic, with a real database doing the work in the browser, and no SPA at all?
Part 2 was the survey. This is the experiment — the one that made me care about this whole topic. And the first thing I have to do is correct a misconception I let myself carry for a while, including in an earlier draft of this very post: this was never really about search.