1. Write the manifest
2. Mount it
components/CrustPanel.tsx
crust pill appears in the corner.
The panel is a secondary surface for data produced by the build analyzer and runtime collector. It
is not required for
analyze, diff, ci, snapshot history, or the HTML report.Why it is built this way
The gate is checked before the import, not inside the module
The gate is checked before the import, not inside the module
With the variable unset, the bundler eliminates both dynamic imports entirely — neither the
widget nor the collector reaches your production bundle. A runtime
if inside the module would
still ship the code and the manifest.It renders in a shadow root
It renders in a shadow root
Your CSS cannot break the panel and the panel’s CSS cannot leak into your app. A devtool that
restyles the page it is measuring is worse than no devtool.
It uses no UI framework
It uses no UI framework
Plain DOM. This ships into your page, and coupling it to a React version would make it a support
burden and drag a second renderer into the bundle.
It fetches lazily
It fetches lazily
The manifest loads only when the panel is first opened. The widget must not move the numbers it
exists to report.