Chapter 05 — Igoristan, the public SUT#

Deliberately chaotic web app, hosted on GitHub Pages, Igor’s personal empire. Doubles as ocarina-example’s SUT and a playground for replay, watchers, match_page.

Outline#

#FileTopic
0101-stack.mdStack React 19 / Vike SSG / Vite 7 / Tailwind 4 / Valibot / wireit / pnpm.
0202-routes.mdThe 10 routes, their role, their dose of chaos.
0303-use-auth.mdThe fake useAuth, MFA OTP, Math.random() < 0.9.
0404-key-components.mdLoginForm, ChaoticForm, Dropzone, RandomLoader, etc.
0505-wireit.mdwireit pipelines (prebuild, build, dev, lint, typecheck, ci:format-check).
0606-husky-commitlint.mdHusky + lint-staged + commitlint + commitizen.
0707-ci-deploy.mdCI/CD: ci-pr.yml (3 parallel jobs) + deploy.yml (push main → Pages).

Why a deliberately chaotic SUT#

The Holy Book mostly references Igoristan via the pointer to ocarina-example. The intent is clear: a site that always works is useless for demoing a resilient test framework.

Igoristan was built as a playground to exercise every Ocarina mechanic:

Ocarina mechanicMatching Igoristan page
transient_errors + replayuseAuth (10% random fail), corsicamon (1/5 raises Error('lol')), donkey-sausage-eater-detector (30% error)
match_page / whendonkey-sausage-eater-detector (Approved vs Disapproved), madness (Cors vs ThisIsBastia)
Watcherchaotic-form (.catch-me-if-you-can elements)
Redis cache + locksuseAuth OTP (worker coordination)
File uploadsacred-upload (Dropzone)
UI-side API keycorsicamon