Field note · August 26, 2026
Search is a JSON file
Site search is a static JSON index fetched on first use and scored in the page. No search service, no API key, no query leaving your browser.
Site search is a static JSON index fetched on first use and scored in the page. No search service, no API key, no query leaving your browser.
Scoring is deliberately dumb: title matches beat summary matches beat body matches, with a small bonus for prefix hits. No stemming, no fuzzy matching, no ranking model.
It is worse than a real search engine at finding things you half-remember. It is better at being there, costing nothing, and never returning results from a stale index — the index is rebuilt with the site, so it cannot disagree with what is published.
The index is the one thing on this site with a genuine size ceiling. Every published page contributes a row, so it grows with the archive, and at some point the download stops being free. The lever is how much body text each row carries: full text for lessons and articles where someone might search for a phrase, title and summary only for the daily notes where the title is usually the query.
Most sites do not need search infrastructure. They need a list and a loop.