Checklists

React (general) implementation checklist

This production-readiness checklist provides a technical verification framework for React applications to ensure performance, accessibility, and reliability standards are met before deployment.

Progress0 / 25 complete (0%)

Performance and Resource Management

0/5
  • Implement Route-Based Code Splitting

    critical

    Utilize React.lazy and Suspense to split the main bundle into route-specific chunks, reducing the initial JavaScript payload size.

  • Audit Component Re-renders

    recommended

    Use the React DevTools Profiler to identify and eliminate redundant renders in expensive components using React.memo or the React Compiler.

  • Optimize Image Assets

    critical

    Verify all images use modern formats (WebP/AVIF), include explicit width/height to prevent Layout Shift, and implement lazy loading for off-screen content.

  • Analyze Bundle Composition

    recommended

    Run source-map-explorer or a similar bundle analyzer to identify and replace oversized or duplicate third-party dependencies.

  • Stabilize Hook Dependencies

    critical

    Ensure all useEffect, useMemo, and useCallback hooks have complete dependency arrays to prevent stale closures or infinite loops.

State Management and Data Fetching

0/5
  • Configure Cache Stale Times

    recommended

    Set explicit staleTime and gcTime in React Query or SWR to prevent excessive background refetches and unnecessary network traffic.

  • Implement Global Error Boundaries

    critical

    Wrap the application root and high-risk feature modules in Error Boundaries to prevent a single component crash from unmounting the entire tree.

  • Validate Form States

    recommended

    Verify that all forms manage 'isSubmitting' and 'isValid' states to prevent double-submissions and provide immediate user feedback.

  • Sanitize Context Providers

    recommended

    Verify that Context providers only pass memoized values to avoid triggering re-renders in all consumer components when the provider's parent renders.

  • Handle Empty and Loading States

    recommended

    Ensure every data-driven component has defined skeleton screens or empty-state UI to prevent layout jumping during fetch operations.

Accessibility (a11y) and UX

0/5
  • Verify Keyboard Focus Management

    critical

    Ensure all interactive elements are reachable via Tab and that focus is programmatically moved when opening or closing modals and drawers.

  • Audit ARIA Attributes

    critical

    Verify that custom UI components (tabs, accordions, dropdowns) use correct aria-expanded, aria-controls, and role attributes for screen readers.

  • Check Color Contrast

    critical

    Validate that all text-to-background combinations meet WCAG AA standards (minimum 4.5:1 ratio) using automated linting or browser tools.

  • Use Semantic HTML Elements

    critical

    Replace non-semantic div/span click handlers with actual button or anchor tags to ensure native keyboard support and accessibility tree mapping.

  • Implement Skip Links

    optional

    Add a hidden 'Skip to Main Content' link at the start of the DOM to allow keyboard users to bypass navigation menus.

Testing and Code Quality

0/5
  • Enforce Strict TypeScript

    critical

    Enable strict mode in tsconfig.json and eliminate 'any' types to ensure type safety across component props and API responses.

  • Test Critical User Paths

    critical

    Execute integration tests using React Testing Library for 'Happy Path' scenarios like user authentication and core transaction flows.

  • Mock API Responses for Edge Cases

    recommended

    Use Mock Service Worker (MSW) to simulate 404, 500, and timeout errors to verify UI resilience under failure conditions.

  • Configure Pre-commit Hooks

    recommended

    Utilize Husky to run ESLint and Prettier before every commit to ensure code consistency and prevent syntax errors in the repository.

  • Verify Environment Variable Isolation

    critical

    Check that no sensitive server-side keys are prefixed with VITE_ or NEXT_PUBLIC_, which would expose them to the client-side bundle.

Security and Monitoring

0/5
  • Sanitize Rendered HTML

    critical

    Use DOMPurify when rendering strings through dangerouslySetInnerHTML to prevent Cross-Site Scripting (XSS) vulnerabilities.

  • Implement Content Security Policy (CSP)

    recommended

    Configure CSP headers to restrict script execution to trusted domains and block unauthorized inline scripts.

  • Audit Dependency Vulnerabilities

    critical

    Run 'npm audit' or 'yarn audit' and resolve high-risk vulnerabilities in the node_modules tree.

  • Integrate Error Tracking

    recommended

    Connect a service like Sentry to capture unhandled exceptions and stack traces from production users for proactive debugging.

  • Remove Console Logs

    optional

    Configure the build pipeline to strip console.log and console.debug statements from production builds to prevent information leakage.