Phase 6 — Provider composer & data layer
One import to wire up all the providers a consumer app needs, with opt-out / replace per slot.
Deliverables
Acceptance
- A consumer wraps
<AppProviders> once and gets theme + data fetching + toasts + error handling working
- Any single provider is replaceable via prop override without forking the composer
- Zero hydration warnings in Next.js 15 strict mode
Depends on Phase 2.
Part of the next-shell app shell extraction plan.
Phase 6 — Provider composer & data layer
One import to wire up all the providers a consumer app needs, with opt-out / replace per slot.
Deliverables
<AppProviders>composer nesting:ThemeProvider → QueryProvider → ToastProvider → ErrorBoundary → TooltipProvider → I18nProvider (optional)QueryProviderwrapping TanStack Query v5 with sensible defaults (retry, staleTime, SSR hydration helpers)ToastProviderwrapping Sonner, themed via tokensErrorBoundarywith fallback UI usingErrorStateI18nProviderthin wrapper — adapter pattern, defaults to no-op; consumers can plugnext-intlor similarAcceptance
<AppProviders>once and gets theme + data fetching + toasts + error handling workingDepends on Phase 2.
Part of the
next-shellapp shell extraction plan.