n-plus-one-query
Database or API calls inside loops can cause N+1 performance issues
Applies to: Go, JavaScript, Python, Ruby, TypeScript
Why this matters
Making a database or API call inside a loop means you make one call for each item in the loop. For 100 items, that's 100 calls! It's much faster to fetch all the data you need in one call before the loop.
Catch it before it ships
pip install stablestack # or: npx stablestackstablestack # scans your project, PERF001 includedstablestack explain PERF001PERF001 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: PERF001
More Performance checks
uninstrumented-llm-call
LLM API call without timing instrumentation hides latency bottlenecks
PERF003redundant-trpc-calls
3+ tRPC calls to the same router suggest data should be fetched once.
PERF004subscription-waterfall
2+ child queries gated by the same parent query create a sequential waterfall.
PERF005render-blocking-font-import
@import url() for external font CDNs blocks rendering until the font CSS is fetched
PERF006uncached-public-page
Next.js page does database queries but does not export revalidate, dynamic, or generateStaticParams — every request triggers a fresh SSR.
PERF007no-cdn-configured
App Runner service detected without a CloudFront distribution — static assets are not edge-cached and clients are limited to HTTP/1.1.