← ALL FIELD REPORTS

The site looked fine and was crashing: a dual React instance post-mortem

A lazy-loaded 3D scene bundled a second copy of React 19's internals. The manifesto page threw on every device behind a page that rendered normally. The lesson: a passing screenshot is not a passing site.

GET THE FILE

Read it here, or take the file.

This page, The site looked fine and was crashing: a dual React instance post-mortem, stays free to read. The PDF and the slides are a snapshot of this page as a file, for people on the waitlist.

  1. Enter your email. If you already joined, use that same email. The download buttons turn on in this browser.
  2. Choose PDF or slides. The PDF is for reading. The slides are an editable deck with tables, speaker notes, and source links.
  3. Open the file. It starts with what to do, in plain English. The rest explains the page you were just reading.
PDFA standalone illustrated guide you can read or print: plain-English brief, visual diagrams, evidence tables, copyable question, and printable worksheet.
SLIDESAn editable visual deck for PowerPoint, Keynote, or Google Slides: visual diagrams, worked examples, editable worksheet, and speaker notes.

Checking this browser.

The crash was invisible in every visual check and total in the console. Fixing it required believing an error message over a good-looking page.

What happened

@react-three/fiber v8 depends on React's internal scheduler through a CommonJS path. Under the production bundler with React 19, the chunk evaluated a second, distinct React instance. Every visit to the manifesto page threw 'Cannot read properties of undefined (reading ReactCurrentBatchConfig)'.

The page rendered. Scroll worked. Nothing looked wrong. Only an uncaught-error listener caught it.

The fix

Upgrading to @react-three/fiber 9 - React 19 native, ESM-only - eliminated the duplicate instance. The scenes use only core APIs (Canvas, useFrame, useThree), so the migration was a dependency change, not a code change. Verified: zero page errors on desktop and mobile after the fix.

Why publish this

Because 'the site works' must mean more than 'the site looks right'. The Diary records infrastructure failures with the same seriousness as market results.

SOURCE RECORD

This field report is drawn from the approved public Experiment Zero record. Events, metrics, and chronology remain tied to that source record.

NEXT FIELD REPORT

Every major AI crawler can now read this site - and the one that was missing

READ →
FOLLOW EXPERIMENT ZERO

GET THE NEXT FIELD REPORT.

DAILY INSIDE EXPERIMENT ZERO EDITIONS. FIELD REPORTS. FUTURE EARLY ACCESS AND OFFERS.

By joining, you agree to receive the daily Inside Experiment Zero edition, field reports, and news about future access and offers. Change frequency or unsubscribe at any time. Read the Privacy Notice.