{
  "title": "Playwright TS",
  "slug": "playwright-ts",
  "state": "active",
  "description": "A 4-part bespoke series on building a Playwright TypeScript test suite that survives selector rot, convention drift, and the loss of its original author. Each part is a hand-coded article with live interactives.",
  "plannedParts": 4,
  "parts": [
    {
      "number": 1,
      "title": "The Problem",
      "slug": "playwright-ts-1-the-problem",
      "state": "shipped",
      "notes": "Bespoke · 2 interactives (FragileTestSimulator, LivingArchitectureDiagram). Shipped 2026-05-15. FileTreeExplorer was cut — it was construction detail, moved to part 2."
    },
    {
      "number": 2,
      "title": "The Construction",
      "slug": "playwright-ts-2-the-construction",
      "state": "shipped",
      "notes": "Bespoke · 3 interactives (LoggerTerminal, FixtureInjectionTrace, BuilderMethodChain). Shipped 2026-06-25. Bottom-up build: Core → Pages & Components → Fixtures → Data builders → Tests. Curated from 5 planned (BasePage Extender + Composition Visualizer cut — the code carries them)."
    },
    {
      "number": 3,
      "title": "The Payoff",
      "state": "empty",
      "notes": "Bespoke · 2 interactives planned. Blast Radius Simulator + a regression-cost line chart across suite sizes."
    },
    {
      "number": 4,
      "title": "The Package",
      "state": "empty",
      "notes": "Bespoke · 5 interactives planned. CLI walkthrough + WebContainers playground."
    }
  ]
}
