Suspensive is a batteries-included library filling critical gaps in React built-in Suspense implementation for production applications. React provides foundational Suspense and lazy APIs but production reveals limitations including inability to selectively catch specific error types, SSR-safety concerns, and flash-of-loading-state problems. The Toss team at Viva Republica developed Suspensive to solve these exact problems over three years of active development and real-world fintech deployment.
The core contribution is a declarative component model for error handling and loading states. ErrorBoundary accepts a shouldCatch function for catching only specific error types, ErrorBoundaryGroup enables coordinated resets across multiple boundaries, clientOnly prop prevents server-rendering issues in Next.js, and the Delay component elegantly solves the flash-of-loading-state problem preventing brief loading indicators that create janky user experiences in data-heavy applications.
Data fetching components like SuspenseQuery and SuspenseInfiniteQuery follow React Query patterns making the library natural for developers familiar with modern async patterns. The MIT-licensed design philosophy extends rather than replaces React APIs while maintaining strong TypeScript support and developer ergonomics. For React developers building production applications with data fetching, real-time updates, and sophisticated error handling Suspensive has become essential for robust async UI behavior.