npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@sucoza/error-boundary-visualizer-devtools-plugin

v0.1.9

Published

Error Boundary Visualizer plugin for TanStack DevTools

Readme

Error Boundary Visualizer DevTools Plugin

A comprehensive React DevTools plugin for visualizing, debugging, and managing error boundaries in your React applications.

Features

🎯 Core Capabilities

  • Component Tree Visualization: Interactive tree view showing React component hierarchy with error boundary coverage
  • Error Tracking & Analytics: Real-time error monitoring with detailed analytics and metrics
  • Stack Trace Enhancement: Enhanced stack traces with source map support and code context
  • Error Simulation Tools: Built-in error triggers for testing error handling
  • Recovery Strategy Editor: Create and manage custom fallback components and recovery logic
  • Heat Map Visualization: Visual representation of error frequency across components
  • External Service Integration: Connect with Sentry, Bugsnag, and other error reporting services

📊 Analytics & Metrics

  • Total error count and error rate tracking
  • Error distribution by category and severity
  • Component-level error frequency
  • Mean Time To Recovery (MTTR) metrics
  • Error boundary coverage percentage
  • Historical error trends

Installation

npm install @sucoza/error-boundary-visualizer-devtools-plugin

Quick Start

Basic Setup

import { ErrorBoundaryDevTools, ErrorBoundaryWrapper } from '@sucoza/error-boundary-visualizer-devtools-plugin'

function App() {
  return (
    <>
      {/* Add the DevTools panel */}
      <ErrorBoundaryDevTools />
      
      {/* Wrap your components with error boundaries */}
      <ErrorBoundaryWrapper
        boundaryName="App"
        level="page"
        fallback={({ error, resetErrorBoundary }) => (
          <div>
            <h2>Something went wrong</h2>
            <p>{error.message}</p>
            <button onClick={resetErrorBoundary}>Try again</button>
          </div>
        )}
      >
        <YourApp />
      </ErrorBoundaryWrapper>
    </>
  )
}

Using the Hook

import { useErrorBoundaryDevTools } from '@sucoza/error-boundary-visualizer-devtools-plugin'

function MyComponent() {
  const { addError, metrics, config } = useErrorBoundaryDevTools()
  
  // Manually report an error
  const handleError = (error) => {
    addError({
      id: `error-${Date.now()}`,
      timestamp: Date.now(),
      message: error.message,
      stack: error.stack,
      category: 'runtime',
      severity: 'high',
    })
  }
  
  return (
    // Your component JSX
  )
}

API Reference

Components

<ErrorBoundaryDevTools />

Main DevTools panel component that provides the UI for error visualization and management.

<ErrorBoundaryDevTools 
  position="bottom-right"  // Panel position
  defaultOpen={false}      // Initial open state
  theme="auto"            // Theme: 'light' | 'dark' | 'auto'
/>

<ErrorBoundaryWrapper />

Error boundary wrapper component for catching and reporting errors.

<ErrorBoundaryWrapper
  boundaryId="unique-id"
  boundaryName="ComponentName"
  level="page" | "section" | "component"
  fallback={FallbackComponent}
  onError={(error, errorInfo) => {}}
  onReset={() => {}}
  enableDevTools={true}
>
  {children}
</ErrorBoundaryWrapper>

Hooks

useErrorBoundaryDevTools()

Access the DevTools store and actions.

const {
  // State
  errors,
  errorGroups,
  errorBoundaries,
  componentTree,
  metrics,
  config,
  
  // Actions
  addError,
  clearErrors,
  selectError,
  registerErrorBoundary,
  updateConfig,
  startRecording,
  stopRecording,
  exportState,
} = useErrorBoundaryDevTools()

Configuration

DevTools Configuration

const config = {
  enabled: true,
  position: 'bottom-right',
  defaultOpen: false,
  theme: 'auto',
  shortcuts: {
    toggle: 'ctrl+shift+e',
    clear: 'ctrl+shift+c',
    export: 'ctrl+shift+x',
  },
  features: {
    componentTree: true,
    errorHeatmap: true,
    stackTraceEnhancement: true,
    errorSimulation: true,
    externalIntegration: true,
    errorRecording: true,
    analytics: true,
  },
  performance: {
    maxErrors: 1000,
    maxStackFrames: 50,
    throttleMs: 100,
    enableProfiling: false,
  },
}

Error Categories

The plugin automatically categorizes errors:

  • RENDER: Errors during component rendering
  • ASYNC: Promise rejections and async errors
  • EVENT_HANDLER: Errors in event handlers
  • LIFECYCLE: Errors in lifecycle methods
  • NETWORK: Network and API errors
  • UNKNOWN: Uncategorized errors

Error Severity Levels

  • CRITICAL: Application-breaking errors
  • HIGH: Feature-breaking errors
  • MEDIUM: Degraded functionality
  • LOW: Minor issues

Demo Application

Run the demo to see the plugin in action:

cd demo
npm install
npm run dev

Open http://localhost:3000 to view the demo.

Development

Building the Plugin

npm install
npm run build

Running Tests

npm test

Development Mode

npm run dev

Browser Support

  • Chrome 90+
  • Firefox 88+
  • Safari 14+
  • Edge 90+

Performance Considerations

  • The plugin uses throttling to prevent performance impact
  • Component tree updates are debounced
  • Maximum error storage is configurable
  • Source map processing is done asynchronously

Security

  • No sensitive data is sent to external services without explicit configuration
  • All error data is stored locally by default
  • External service integration requires API keys

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting PRs.

License

MIT


Part of the @sucoza TanStack DevTools ecosystem.

Support

For issues and feature requests, please use the GitHub issue tracker.

Acknowledgments

Built as part of the TanStack DevTools ecosystem.