Ask my notes: a chatbot that refuses to guess
full-stackAIfrontend
A grounded LLM widget on this site: hand-written notes, a fixed refusal line, and a spend fuse. Claude Opus 5 · Next.js · Supabase.
read case study →A grounded LLM widget on this site: hand-written notes, a fixed refusal line, and a spend fuse. Claude Opus 5 · Next.js · Supabase.
read case study →A Blue Jays analytics site: Statcast spray charts, pitch heatmaps, WAR breakdowns. Next.js · D3 · Python ETL.
read case study →Dixon-Coles + Monte Carlo engine, benchmarked against market-implied probabilities. Next.js · Supabase · Python ETL.
read case study →47 frozen hypotheses, BH-FDR correction, n=1,181. And the honest story of finding nothing.
read case study →