Skip to main content

Review Packet: Performance

When to use

Use this packet for new high-traffic routes, slow interactions, landing pages, dashboards, third-party scripts, major dependency additions, rendering changes, and performance regressions.

Intake questions

  • Which user-visible metric is at risk?
  • Which route, device class, and network class matter most?
  • What is the current p75 LCP, INP, CLS, and error rate?
  • What new JavaScript, CSS, images, fonts, requests, or third parties are added?
  • What work runs on the main thread during the critical interaction?
  • What is the rollback or kill-switch path?

Required artifacts

  • Route performance budget.
  • Request and bundle inventory.
  • Browser trace for the critical route or interaction.
  • React/component profile if render work is suspected.
  • Third-party register.
  • RUM segmentation plan.

Decision matrix

SymptomLikely evidenceCommon architecture response
Slow LCPWaterfall, image/font/render-blocking traceImprove critical resource priority, rendering model, cache, image strategy.
Poor INPInteraction trace, long tasks, React profileReduce render fan-out, move state, split work, virtualize, remove blocking scripts.
High CLSLayout shift traceReserve dimensions, stabilize font/media loading, avoid late inserts.
Mobile-only slownessRUM by device/networkReduce JS, defer noncritical work, improve caching and payloads.

Red flags

  • Only lab metrics are used for a production-heavy decision.
  • Budgets are global instead of route-specific.
  • Third-party scripts have no owner.
  • Memoization is proposed before profiling.
  • Performance exceptions have no expiration date.

Approval criteria

  • Budget impact is known before launch.
  • Field metrics and lab checks are both planned.
  • Critical interaction has a trace or justified baseline.
  • Regression owner and response path are clear.
  • Third-party cost is governed.

Example reviewer comments

  • "This adds 80 KB to the authenticated shell. Please prove it is needed above the fold or move it behind the route boundary."
  • "The INP risk is not bundle size; the profile shows table state invalidates the whole page."
  • "This script needs an owner, purpose, loading strategy, and kill switch before approval."

Example ADR prompt

Write an ADR documenting the performance problem, evidence, selected optimization, rejected options, tradeoffs, budget impact, verification plan, and recurrence guardrail.

Release readiness checklist

  • Route budget updated.
  • p75 field metric baseline captured.
  • Critical trace attached.
  • Third-party changes reviewed.
  • Monitoring alert or dashboard exists.