window-ssr-unsafe
Accessing window/document without SSR check causes server-side errors
Applies to: JavaScript, TypeScript
Why this matters
In Next.js, Nuxt, and other SSR frameworks, code runs on both server and client. The 'window' and 'document' objects only exist in browsers, so accessing them during server-side rendering causes 'window is not defined' errors. Always check typeof window !== 'undefined' before accessing browser APIs, or use useEffect/onMounted.
Catch it before it ships
pip install stablestack # or: npx stablestackstablestack # scans your project, FRONT002 includedstablestack explain FRONT002FRONT002 is part of the Pro rule set. See pricing — the free tier ships 24 checks with no signup.
False positive in your codebase? Suppress a single line with # noqa: FRONT002
More Frontend checks
tabs-url-routing
MUI Tabs should use URL routing via useSearchParams for bookmarkable/shareable tabs.
FRONT003inline-jsx-handler
Inline arrow functions in JSX cause unnecessary re-renders
FRONT004nextjs-redirect-request-url
Redirect uses request.url as URL base, which is wrong behind a reverse proxy.
FRONT005useeffect-side-effect-unguarded
useEffect contains a mutating HTTP call without a guard against double-firing.
FRONT006stale-time-dependent-ui
Time-dependent filtering without a re-render timer will show stale data.
FRONT007unbounded-ai-output
AI/LLM output rendered in JSX without truncation or overflow handling.
FRONT008loading-returns-null
Returning null during loading causes layout shift and flash of empty content.
FRONT009eager-queries-no-defer
3+ query hooks all firing on mount with no deferred loading.