<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Igoristan on Ocarina — manual</title>
    <link>https://mojo-molotov.github.io/from-ocarina-to-igor/tags/igoristan/</link>
    <description>Recent content in Igoristan on Ocarina — manual</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Tue, 02 Jun 2026 08:52:49 +0200</lastBuildDate>
    <atom:link href="https://mojo-molotov.github.io/from-ocarina-to-igor/tags/igoristan/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Chapter 05 — Igoristan, the public SUT</title>
      <link>https://mojo-molotov.github.io/from-ocarina-to-igor/05-igoristan/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <guid>https://mojo-molotov.github.io/from-ocarina-to-igor/05-igoristan/</guid>
      <description>&lt;h1 id=&#34;chapter-05igoristan-the-public-sut&#34;&gt;Chapter 05 — Igoristan, the public SUT&lt;a class=&#34;anchor&#34; href=&#34;#chapter-05igoristan-the-public-sut&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;blockquote class=&#39;book-hint &#39;&gt;&#xA;&lt;p&gt;Deliberately chaotic web app, hosted on GitHub Pages, Igor&amp;rsquo;s &lt;em&gt;personal empire&lt;/em&gt;. Doubles as &lt;code&gt;ocarina-example&lt;/code&gt;&amp;rsquo;s SUT and a playground for replay, watchers, &lt;code&gt;match_page&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&lt;h2 id=&#34;outline&#34;&gt;Outline&lt;a class=&#34;anchor&#34; href=&#34;#outline&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: center&#34;&gt;#&lt;/th&gt;&#xA;          &lt;th&gt;File&lt;/th&gt;&#xA;          &lt;th&gt;Topic&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;01&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/05-igoristan/01-stack/&#34;&gt;&lt;code&gt;01-stack.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Stack React 19 / Vike SSG / Vite 7 / Tailwind 4 / Valibot / wireit / pnpm.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;02&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/05-igoristan/02-routes/&#34;&gt;&lt;code&gt;02-routes.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;The 10 routes, their role, their dose of chaos.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;03&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/05-igoristan/03-use-auth/&#34;&gt;&lt;code&gt;03-use-auth.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;The fake &lt;code&gt;useAuth&lt;/code&gt;, MFA OTP, &lt;code&gt;Math.random() &amp;lt; 0.9&lt;/code&gt;.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;04&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/05-igoristan/04-key-components/&#34;&gt;&lt;code&gt;04-key-components.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;LoginForm&lt;/code&gt;, &lt;code&gt;ChaoticForm&lt;/code&gt;, &lt;code&gt;Dropzone&lt;/code&gt;, &lt;code&gt;RandomLoader&lt;/code&gt;, etc.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;05&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/05-igoristan/05-wireit/&#34;&gt;&lt;code&gt;05-wireit.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;wireit&lt;/code&gt; pipelines (&lt;code&gt;prebuild&lt;/code&gt;, &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;dev&lt;/code&gt;, &lt;code&gt;lint&lt;/code&gt;, &lt;code&gt;typecheck&lt;/code&gt;, &lt;code&gt;ci:format-check&lt;/code&gt;).&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;06&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/05-igoristan/06-husky-commitlint/&#34;&gt;&lt;code&gt;06-husky-commitlint.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Husky + lint-staged + commitlint + commitizen.&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: center&#34;&gt;07&lt;/td&gt;&#xA;          &lt;td&gt;&lt;a href=&#34;https://mojo-molotov.github.io/from-ocarina-to-igor/05-igoristan/07-ci-deploy/&#34;&gt;&lt;code&gt;07-ci-deploy.md&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td&gt;CI/CD: &lt;code&gt;ci-pr.yml&lt;/code&gt; (3 parallel jobs) + &lt;code&gt;deploy.yml&lt;/code&gt; (push main → Pages).&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;why-a-deliberately-chaotic-sut&#34;&gt;Why a deliberately chaotic SUT&lt;a class=&#34;anchor&#34; href=&#34;#why-a-deliberately-chaotic-sut&#34; data-pagefind-ignore=&#34;all&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The Holy Book mostly references Igoristan via the pointer to &lt;code&gt;ocarina-example&lt;/code&gt;. The intent is clear: a site that always works is useless for demoing a resilient test framework.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
