How we built this

Tokens used

Totals are measured from each tool’s own logs: new input plus output. Re-read cached input is left out for all four. The work log below records what each session did; its token cells are earlier estimates.

ModelApprox. tokens
Claude Opus 5.51,454,504
Grok 4.71,851,280
Codex gpt-6-astra972,935
Claude Fable 5.1294,234
DateWorkModelApprox. tokensNotes
2026-10-09Repo scaffold, brief capturedClaude Opus 5~40kSetup only, no app code
2026-10-10Course design: two rounds of questions, design approved, spec writtenClaude Opus 5.5~80kSpec only, no app code
2026-10-10Task 4: site shell, containerCodex gpt-6-astra~103kCodex "tokens used"; 2.6M input incl. 2.5M cached
2026-10-10Task 4 review: Grok review, Codex fixesCodex gpt-6-astra~71kGrok grok-4.7 review tokens logged at session close
2026-10-10Task 5a: pages 0 to 3, sources directory, link checkerCodex gpt-6-astra~102kSources list drafted by Grok grok-4.7; links verified by Claude
2026-10-10Component layout fixes and Playwright assertionsCodex GPT-6UnavailableSession token meter not exposed; build passes, Chromium launch blocked by sandbox
2026-10-10Task 5: inflation lesson, charts, and testsCodex GPT-6UnavailableSubscription tool: Codex; session token meter not exposed. Playwright tests written first; Chromium launch blocked by sandbox.
2026-10-10Task 5b: Example A page, memoCodex gpt-6-astra; Grok grok-4.7 (shared)~72k CodexMemo by Grok, numbers checked by Claude
2026-10-10Pages 6, 7, teacher guide; simple app built from student prompt by Grok and CodexCodex gpt-6-astra; Grok grok-4.7; Claude Opus 5.5 (shared)~150k CodexTeacher guide written by Claude; both apps verified in a browser
2026-10-10Page 9: build writeup and token tablesCodex gpt-6-astra~56kCodex "tokens used"
2026-10-10AI feature cards componentCodex gpt-6-astra~47kCodex "tokens used"
2026-10-10Task 7: Example B page, explorer, shock.jsCodex gpt-6-astra~103kCodex "tokens used"; exposure data provisional
2026-10-10UI density pass (WTH standards)Codex gpt-6-astra~55kCodex "tokens used"
2026-10-10Start page: 8 free AI chats; sources collapsed by group; generic chat copyGrok grok-4.7UnavailableGrok session meter not exposed
2026-10-10Validation of both, test updates, three copy/CSS fixesClaude Opus 5.5~60kEstimate
2026-10-10Remove start-page sample promptClaude Opus 5.5~5kEstimate
2026-10-10Inflation chart picker: "All countries muted" to "All countries"Claude Opus 5.5~3kEstimate
2026-10-10Move Example A "Try it yourself" to its own nav pageClaude Opus 5.5~25kEstimate
2026-10-10GitHub Actions test workflowClaude Opus 5.5~8kEstimate

Token counts are each tool’s own report; cached input is excluded where the tool reports it.

How we built it

  1. We read the brief and agreed the design in conversation.
  2. We wrote a spec and a plan.
  3. We pulled IMF and UN Comtrade data once and pinned the files with checksums, so changes can be detected.
  4. Three AIs, Grok, Codex and Claude, computed every figure independently from the raw files. A script compared their answers. Nothing shipped until they agreed.
  5. Codex built the site, Grok reviewed the code, and Claude tested every page in a real browser.
  6. We pasted a student prompt unedited into two AIs to build the simple app.
  7. We hosted it as a static site in a small container behind nginx, with HTTPS.
  8. We checked every link live.
  9. A teacher runs each step on a free account before its badge changes from pending test.

What the paid tools added that free ones would not

Try the same yourself on free tools

Start with page 6: Build a simple app, then follow page 7: Build your own website.