Backend checklist:
- •API
- •Pagination defaults for list endpoints
- •Avoid N+1 patterns; verify includes/joins
- •Add caching headers or server caching where appropriate
- •Validate payload sizes and streaming for large responses
- •DB
- •Verify indexes align with query predicates and sort order
- •Check migration/backfill impacts (locks, write amplification)
- •Watch for chatty queries
- •Runtime
- •Avoid unnecessary allocations in hot paths
- •Ensure async usage is correct (no sync-over-async)
- •Guardrails
- •Add perf-focused tests/benchmarks only if repo already uses them
Frontend checklist (React):
- •Rendering
- •Avoid unnecessary re-renders; use memoization only where it helps
- •Verify list virtualization for large lists if relevant
- •Data fetching
- •Avoid duplicate requests; handle loading/error states cleanly
- •Ensure caching strategy is consistent (query libs, cache keys)
- •Bundling
- •Avoid adding heavy dependencies without justification
- •Ensure code splitting for large new routes/features if repo supports it
Verification:
- •Run build and measure obvious regressions (build output, bundle warnings)
- •Smoke test core flows affected
- •If repo has profiling tools/scripts, run them and report results
Finish with:
- •Potential perf risks identified
- •Changes made (if any) to mitigate
- •Commands run + results
- •Follow-ups (monitoring, dashboards, load testing)