React gives you Suspense, lazy, and an interface to build Error Boundaries — but using them in real applications reveals gaps. Suspensive fills those gaps with declarative components and hooks.
import { Delay, ErrorBoundary, ErrorBoundaryGroup, Suspense } from '@suspensive/react'
const Page = () => (
<ErrorBoundaryGroup>
<ErrorBoundaryGroup.Consumer>
{({ reset }) => <button onClick={reset}>Reset All</button>}
</ErrorBoundaryGroup.Consumer>
<ErrorBoundary
shouldCatch={NetworkError}
fallback={({ error, reset }) => <ErrorUI error={error} onRetry={reset} />}
>
<Suspense
clientOnly
fallback={
<Delay ms={200}>
{({ isDelayed }) => <Spinner style={{ opacity: isDelayed ? 1 : 0, transition: 'opacity 200ms' }} />}
</Delay>
}
>
<Content />
</Suspense>
</ErrorBoundary>
</ErrorBoundaryGroup>
)shouldCatch— catch only specific error types, let others propagateErrorBoundaryGroup— reset multiple error boundaries at once, no prop drillingclientOnly— SSR-safe Suspense that avoids hydration mismatches in Next.jsDelay— prevent flash-of-loading-state with render props for smooth fade-inreset— built into the fallback props, no external state needed
| Package | Description | Version |
|---|---|---|
| @suspensive/react | Suspense, ErrorBoundary, ErrorBoundaryGroup, Delay, ClientOnly | |
| @suspensive/react-query | SuspenseQuery, SuspenseInfiniteQuery, Mutation, PrefetchQuery | |
| @suspensive/jotai | Atom, AtomValue, SetAtom for Jotai integration | |
| @suspensive/codemods | Automated migration codemods |
<ErrorBoundary/>withshouldCatch— catch only the errors you want (comparison with react-error-boundary)<ErrorBoundaryGroup/>— reset multiple error boundaries at once, no prop drilling<Suspense/>withclientOnly— SSR-safe Suspense that just works in Next.js<SuspenseQuery/>— declarative data fetching as JSX, no hook constraints<Delay/>— prevent flash-of-loading-state UX issues<DefaultPropsProvider/>— set global default fallbacks for all components
npm install @suspensive/reactVisit suspensive.org for full documentation.
Read our Contributing Guide to familiarize yourself with Suspensive's development process, how to suggest bug fixes and improvements, and the steps for building and testing your changes.
MIT © Viva Republica, Inc. See LICENSE for details.