A small static Next.js site that teaches common LLM failure modes in everyday home use.
- Home page (
/) with intro and navigation. - Risks index (
/risks) with search/filter and a home-user-first ordering. - Detail pages (
/risks/[id]) with plain-language explanation, checklist, sources, and demo. - About page (
/about) with usage steps and source information. - Scripted, no-API demos for the top 6 home risks in
demos/.
- Next.js (App Router) + TypeScript
- Tailwind CSS
- PapaParse for CSV parsing at build/runtime on the server side
- No backend, no database, no external LLM calls
npm install
npm run devThen open http://localhost:3000.
npm run buildnpm run dev: Start local development server.npm run build: Build production output.npm run start: Start production server from a built app.npm run lint: Run Next.js lint command.
- Replace or edit
llm_risk_taxonomy.csvin the repo root. - Keep these headers intact:
ID, Title, What_happens, Why_it_happens, Training_vignette, Test_prompt, Mitigation_checklist, Source_URLs
- Run
npm run devornpm run buildto verify parsing still works.
- Create
demos/<risk-id>.tsthat exports aDemoDefinition. - Include:
headlinesetupinputcontrolsoutputPanelsteachingPoints
- Register it in
demos/index.tsby mapping the risk ID (for exampleR21) to your export. - Open
/risks/<ID>and verify the interactive demo appears.
app/: Routes and pages.components/: Reusable UI (RiskCard,RiskDemo, index controls).lib/risks.ts: CSV loading, ordering, and risk view model shaping.demos/: Scripted interactive demo definitions by risk ID.llm_risk_taxonomy.csv: Source data.