React

Web performance consultant for React

Optimize web performance on React applications

React makes powerful SPAs, but its performance traps are many: bundle bloats, slow hydration, unnecessary re-renders, blocking third-party scripts. I work on Next.js and native React to deliver green Core Web Vitals.

100% satisfied clients Data 2023-2026 8+ years XP 35+ clients partnered
View my client cases

They trust me

CHANEL
DIOR
Decathlon
April Moto
SiriusXM
Make Up Forever
Camif
RIMOWA
Jimmy Fairly
Wecasa
Chronovet
CHANEL
DIOR
Decathlon
April Moto
SiriusXM
Make Up Forever
Camif
RIMOWA
Jimmy Fairly
Wecasa
Chronovet

React symptoms calling for an audit

A poorly calibrated React application shows convergent signals: heavy bundle, slow hydration, drifting INP.

📦 JavaScript bundle above 500 KB on first load

Webpack not tree-shaken, heavy dependencies (Moment.js, full lodash, MUI), no code splitting. An audit via webpack-bundle-analyzer quantifies each contributor.

🐢 Mobile TTI above 5 seconds on SPA

Time to Interactive drifts when the bundle is heavy and hydration costly. The bundle splitting + lazy loading combo on non-critical components halves TTI.

🔄 Unnecessary re-renders killing INP

Components re-rendering on every parent update without memoization. React DevTools Profiler exposes the pattern. Disciplined React.memo, useMemo, useCallback stabilize INP.

🌐 Slow Next.js SSR hydration

Server HTML arrives fast, hydration re-blocks the main thread. Moving to React Server Components or partial hydration (Astro, Fresh) solves it.

🖼️ LCP image not prioritized, no Next Image component

On Next.js, the Image component automatically handles next-gen formats, lazy loading, fetchpriority. On React SPA, manual prioritization stays mandatory.

🧪 No performance monitoring in CI

Without Lighthouse CI, SpeedCurve, bundle size check, every PR can introduce a regression. The bundle budget + CWV budget discipline is the only guarantee of holding performance over time.

React optimization methodology

4 steps to transform your performance

1
Step 1

1. Bundle and dependencies audit

webpack-bundle-analyzer or vite-bundle-visualizer. Identify heavy contributors, incomplete tree-shaking, useless polyfills.

2
Step 2

2. Code splitting and lazy loading

Per-route splitting, lazy import of non-critical components (modals, secondary dashboards), dynamic imports.

3
Step 3

3. Memoization and re-renders

React DevTools Profiler, targeted memoization (React.memo, useMemo, useCallback), refactor of overly broad Context API.

4
Step 4

4. SSR and RSC if Next.js

Client vs server components mapping, data fetching optimization (parallel, streaming), Image component everywhere, continuous monitoring (SpeedCurve, Vercel Analytics).

Mission commitments

-50% typical JavaScript bundle
-40% mobile TTI gained
INP stabilized under 200ms
Continuous bundle budget monitored
FAQ

Frequently asked questions

React SPA or Next.js for performance?
Next.js (or Remix) is almost always preferable on Core Web Vitals: SSR for LCP, RSC to reduce client bundle, Image component for automatic LCP prioritization. React SPA stays relevant on internal apps or tools where SEO and LCP aren't central. For a public site, Next.js by default.
Should I migrate to App Router (Next.js 13+)?
For a new project, yes. App Router enables RSC, streaming, parallel fetching, persistent layouts. On an existing Pages Router project, migration is an investment (4-12 weeks by size) that pays on performance and DX. The audit decides based on project maturity.
React vs Vue vs Svelte for performance?
Svelte produces the lightest bundle (upfront compilation). Vue sits very close to React in practice. React keeps the ecosystem advantage and RSC. Performance mostly depends on implementation quality — a poorly written Vue will be slower than a well-written React, and vice versa.
How are your React engagements structured?
My React engagements run as continuous sprints. Initial bundle and rendering diagnosis, then optimization sprints (code splitting, RSC migration, memoization refactor). On an active React project, every new feature can add a heavy dependency or unnecessary re-render — the engagement protects the bundle budget and UX quality over time.

Get your React Core Web Vitals green

Bundle audited and split
Optimized hydration
RSC or Next.js SSR
100% satisfied clients
Data 2023-2026
Testimonials

What my clients say

Excellent work.
Paul has significantly improved the site's speed and perfectly aligned it with Google's recommendations.
Professional, thorough, and efficient, I highly recommend.

Nicolas - April Moto

Digital & E-commerce Director

We are very satisfied with Paul's work. He is quick, available, and particularly effective. Since his arrival, very good results have been observed, both in terms of performance and responsiveness. A real asset for our team.

Léo - Luxury brand

E-commerce Product Owner

I don't know if we've said it enough.
But if you want to improve your loading speed,
Make Google happy and get your Core Web Vitals in the green,
Contact Paul Delcloy.

Florian Darroman - Les Makers

Co-founder

React, dominant ecosystem and many performance angles

React is the dominant frontend library today. From pure SPA (Create React App, Vite) to SSR + RSC (Next.js, Remix), the React ecosystem covers every architecture. That diversity opens as many performance angles, and as many traps. A poorly calibrated React SPA easily shows a 1 MB+ JS bundle, an 8-second mobile TTI, and INP drifting on complex interactions.

The web performance optimization angle on React depends on architecture. On a SPA: aggressive bundle splitting, per-route code splitting, lazy loading of heavy components, disciplined memoization. On Next.js: React Server Components exploitation, App Router vs Pages Router choice, data fetching optimization, properly used Image component.

Bundle, first lever on SPA

A 1 MB JavaScript bundle is still common on React applications a few years old. Misconfigured Webpack, heavy dependencies (Moment.js, lodash without tree-shaking, full Material-UI), no per-route code splitting, useless polyfills for modern browsers. Bundle audit identifies each contributor and quantifies gains.

Moving to Vite (on non-Next SPAs), analysis via webpack-bundle-analyzer, replacing heavy dependencies (date-fns instead of Moment, dayjs even better), strict tree-shaking: each lever typically divides the bundle 20 to 40%. In real cases, bundles drop from 1.5 MB to 400 KB in a few days of intervention.

Next.js and React Server Components

On Next.js 13+ App Router, React Server Components change economics. Server-executed components add nothing to the browser JS bundle. Well-used, a Next.js site delivers under 100 KB of client JS for a rich UX. Misused, "use client" lands on components that should stay server, and the bundle inflates again.

The Next.js audit maps client vs server components, identifies client-side leaks, optimizes data fetching (parallel + streaming) and validates Image component usage for LCP. It's the most advanced frontend architecture for Core Web Vitals today.