npm install @bugdump/react @bugdump/sdk and wrap your app in BugdumpProvider. It starts the widget after the first render and destroys it on unmount, so Strict Mode and server rendering still leave one widget on the page, and it goes straight into a Next.js App Router layout. useBugdump() gives your components the SDK for identify(), open() or submit(). If the page loads the BugDump script tag, remove it: the tag and the package each put a widget on the page.
BugdumpErrorBoundary sends the errors it catches, with React's component stack. In production those errors never reached the widget, so they never showed on the Errors page. A crash in the very first render is held until the widget has started. An error that Next.js's error.tsx catches stops there; send it from that file with captureException().
The Widget page has a React tab in step 2 with the provider and your key. From this release @bugdump/sdk and @bugdump/react share one version number. In SDK 0.0.45, identify(), setContext(), open() and the other methods that return nothing do nothing on a destroyed instance instead of throwing, so a React cleanup that runs after teardown no longer crashes the page. A page that loads the SDK from a script without data-api-key, such as the manual-init tag or a Next.js bundle, no longer logs "data-api-key is missing or empty".