React + Next.js development — for product teams and agencies worldwide

React apps that load fast, scale clean, and your team can actually ship on.

Custom React and Next.js development for product teams and Shopify-backed brands. We ship apps that load in under 1.5 seconds, pass WCAG 2.2 AA, keep client JavaScript under 150 KB on first load, and a mid-level React engineer can pick up on day one.

1,000+
Websites shipped since 2015
10yrs
Building on WordPress
4.9
Across 1,000+ reviews
95+
Lighthouse mobile baseline · every site
The real cost

A slow, bloated, or wrong-stack React app is a tax you pay every sprint.

Most product teams discover their React app is hurting them only after the codebase has been in production for a year — performance has degraded, bundle size has crept past a megabyte, the team has slowed down without anyone noticing, and the architecture decisions made on day one are now expensive to undo. The three observations below are what we say out loud on every React discovery call.

01

A slow React app loses users before they see it.

Every additional second of mobile load time costs roughly 7% of conversions. A typical Create React App with popular libraries (Material UI, lodash, moment, three.js, charting libs) ships 600 to 900 KB of JavaScript on first load. On a real mobile network that means 3 to 5 seconds before the user sees anything. The app does not crash — it just loses people. Most teams have no idea because Chrome on a developer's desktop hides the problem.

02

Bad architecture decisions on day one echo for years.

Picking CRA when you needed Next.js. Picking Next.js when you needed Vite. Skipping TypeScript. Skipping a design system. Skipping accessibility. Each shortcut feels cheap on day one and gets dramatically more expensive every sprint after that. We have inherited many React codebases where the founder's first engineer made one architecture call in week two that cost the company eighteen months of work to undo. The right architecture decisions, made on day one, are the cheapest engineering investment a team can make.

03

A React app that only your senior engineer can ship on is a liability.

Most React apps we inherit have grown around the patterns of whoever wrote the first thousand lines. The patterns are clever but the next engineer cannot pick them up without a multi-week onboarding. Bus factor of one is a real cost — a senior engineer leaves, the team slows down for months. Apps we build are explicitly architected so a mid-level React engineer can pick up the codebase on day one and ship by day three. That is not a sacrifice — it is the discipline that compounds for years.

What we build

Six kinds of React build, each architected to last.

Next.js builds (App Router)

Marketing sites, content engines, e-commerce frontends, and product apps where SEO and first-load matter. App Router with Server Components, streaming, Server Actions, deployed to Vercel or Cloudflare Pages.

Custom React apps (Vite)

SaaS dashboards, internal tools, real-time apps where the UI is the product. Vite + React Router + TanStack Query + TypeScript + a design system. Built for product teams that need to ship fast and stay shipping for years.

SaaS dashboards & product UI

Logged-in interfaces with charts, tables, real-time updates, complex forms. Design-system-driven (Radix, React Aria, Shadcn). Accessible by default. Built so a mid-level engineer can pick up the codebase and ship by day three.

Headless commerce frontends

Shopify Hydrogen + Oxygen storefronts, Sanity / Contentful-driven content sites, custom GraphQL-backed product catalogues. React storefronts where the commerce engine sits behind an API and the frontend is yours to architect.

Marketing sites (Next.js / Astro)

SaaS marketing sites, content engines, agency portfolios where SEO matters and Core Web Vitals are a competitive axis. Next.js for editorial + product mix; Astro for content-heavy sites with minimal interactivity. Sub-1.0-second LCP achievable on every page.

Migrations (CRA → Vite, Pages → App Router)

Create React App migrations to Vite (1 to 3 weeks, typically 20-40% performance lift). Pages Router to App Router migrations (4 to 12 weeks). Vanilla React to Next.js (6 to 16 weeks, effectively a rebuild). We have done each many times and will tell you when migration is the right call versus optimising what you have.

Beyond the build

The work that keeps the site healthy after launch.

A WordPress site is healthy only as long as someone is paying attention to it. We offer three engagement types alongside the build itself — for clients moving onto WordPress from another platform, for teams who need ongoing engineering after launch, and for sites that need their SEO foundations set up properly from day one.

WordPress migrations

Moving from Wix, Squarespace, Shopify, Drupal, Joomla, Ghost, or a legacy WordPress install. We migrate content cleanly, preserve URL structure with a proper 301 redirect map, and ship a custom WordPress build at the end of it — not a like-for-like rebuild of what you had.

  • Content audit and IA review before migration
  • URL-to-URL 301 redirect map · SEO equity preserved
  • Custom theme + content modelling on landing
  • Performance and accessibility brought up to baseline

Maintenance, support & security

Monthly retainers covering WordPress core and plugin updates, security patches, daily backups, uptime monitoring, performance monitoring, malware scanning, and a fixed allocation of editorial and development hours. For clients without a dedicated WordPress engineer in-house, this is how the site stays healthy past month one.

  • Plugin / core updates · weekly cadence
  • Daily off-site backups · quarterly restore drill
  • Cloudflare WAF · uptime & CWV monitoring
  • Allocated hours: editorial, bug fixes, small features

On-page SEO setup

WordPress SEO done properly from launch — Yoast, Rank Math, or AIOSEO configured to the site, schema markup baked into every template (Article, Product, FAQ, BreadcrumbList, Organization), XML sitemaps, robots.txt, hreflang for multilingual sites, and indexing strategy aligned with what you actually want to rank for.

  • Schema markup per template type
  • Internal linking architecture from day one
  • Core Web Vitals tuned for ranking
  • AI-search citation-ready content patterns
Performance & accessibility

The numbers every WordPress site we ship has to hit.

Every site is shipped against four hard targets. We measure, we tune, we re-measure. Below the line, the build is not done — and the engagement is not closed — until each number is in the green.

01 — Core Web Vitals

LCP under 1.5s · CLS under 0.05 · INP under 100ms

Real-Chrome-user metrics, measured continuously after launch. Sub-1.5s LCP on every primary template. Failing CWV is not an option — Google ranks sites that pass them visibly higher in 2026.

LCP 1.2s CLS 0.02 INP 68ms TTFB 220ms CDN edge cache Object + page cache PHP 8.3 PASSING · GREEN
02 — Lighthouse score

95+ on mobile · 99+ on desktop · every page

Performance, accessibility, best practices, and SEO measured in Lighthouse with mobile throttling enabled. Below 90 mobile, we hold the launch. Most pages clear 95 on mobile and 99 on desktop.

96 PERFORMANCE 100 A11Y 100 SEO
03 — Accessibility

WCAG 2.2 AA · baseline on every build

Colour contrast checked per token. Keyboard navigation tested per template. Screen-reader landmarks audited. Form labels reviewed. Live regions for dynamic content. Accessibility is part of the build, not a fix after launch.

Colour contrast · 7.2:1 (AAA) Keyboard nav · all interactive elements Screen-reader landmarks · header, nav, main, footer
04 — Security & uptime

Modern PHP · WAF · daily backups · 99.9% SLA

Modern PHP, Cloudflare WAF, daily off-site backups, uptime monitoring, plugin and core update cadence, file-integrity monitoring. The site stays healthy after launch — not just during it.

WAF · ACTIVE 99.9 % uptime SLA MONITORED 8.3 PHP version CURRENT
How we work

Five steps from brief to a site that loads and lasts.

The process below has stayed the same for ten years and 1,000+ WordPress builds. Every step is required. Skipping any one of them is how WordPress sites end up slow, fragile, or unmaintainable.

01

Brief and content model

We learn the business, the editorial cadence, the current site (if any), the audience, and the integrations the site has to live with. We finish with a written brief and a content model on paper.

02

Architecture and engineering plan

Custom post types, taxonomy, content blocks, hosting plan, caching plan, performance targets, accessibility targets. The architecture is decided before any visual work starts.

03

Custom theme development

Custom theme. ACF Pro for content modelling. Minimal plugin footprint. Modern PHP. Performance and accessibility tuned per template. Weekly demos, two-week sprints.

04

Performance and accessibility testing

Real-device testing across Chrome, Safari, Firefox. Core Web Vitals tuned on live URLs. WCAG 2.2 AA audit. Editorial UAT — the team that will run the site uses it before we ship.

05

Launch, monitor, maintain

Launch checklist, 301 redirect map verified, sitemap, GSC and analytics live. Monthly maintenance from day one. Quarterly performance and SEO reviews.

Selected work

Websites we have shipped across SaaS, services, publishing, and e-commerce.

Six websites from the last 24 months. Every one of them passes Core Web Vitals, hits WCAG 2.2 AA, and was built on WordPress with a custom theme and a minimal plugin footprint.

Meridian
LCP 0.9s · AA · 98 Lighthouse
SaaS productivity
Nordsalt
LCP 1.1s · AA · 96 Lighthouse
D2C · WooCommerce
Chayya
LCP 0.8s · AA · 99 Lighthouse
Publishing · multilingual
Frondhill
LCP 1.0s · AA · 97 Lighthouse
Services · B2B
Lavenir
LCP 1.3s · AA · 95 Lighthouse
E-commerce · beauty
Stratos
LCP 0.9s · AA · 98 Lighthouse
Content · SaaS

Need a WordPress site that actually performs?

Send us a one-paragraph brief about the business, the editorial cadence, and where you want the site in three years. We will come back with a free, honest plan — fixed scope, fixed targets.

Request a discovery call
Where it shows up

Four kinds of business, one WordPress engineering team behind them.

The same WordPress engineering capability adapts to four very different commercial contexts. Visual language stays consistent; what changes is the content model, the integrations, and the editorial workflow we build around the team.

SaaS marketing

Product-led marketing

SaaS marketing sites with clean information architecture, fast page builds for new launches, and an ACF Pro content model the marketing team can extend without engineering.

Services & B2B

Consulting & advisory

Consulting, advisory, agency, and professional-services sites. Sector-led navigation, case-study and white-paper publishing, gated content where it earns its keep.

Publishing & media

Editorial platforms

Editorial-grade publishing with custom post types, taxonomy, author profiles, and the search and discovery surfaces that keep readers engaged across long catalogues.

E-commerce

WooCommerce storefronts

WooCommerce stores from small catalogues to multi-region storefronts. Custom checkouts, payment-gateway logic, subscription billing, ERP and CRM hooks.

Client stories

Two WordPress engagements, and what changed for the businesses behind them.

Meridian

SaaS productivity · UK + Europe · 2024–2025
The situation

An overweight, plugin-heavy WordPress site that loaded in 4.2 seconds on mobile was costing Meridian roughly 30% of its trial sign-ups. Marketing could not ship landing pages without engineering. SEO had stalled despite content investment.

What we did

Rebuilt the site on a custom theme; cut the plugin footprint from 41 to 11; moved hosting to Kinsta; shipped a new ACF Pro content model the marketing team could extend without engineering; tuned Core Web Vitals against real Chrome user data; rebuilt the on-page SEO foundations with schema per template type.

The outcome

LCP moved from 4.2s to 0.9s. Mobile sign-up conversion was up 38% within the first eight weeks. Lighthouse mobile score moved from 32 to 98. Marketing now ships landing pages independently of engineering. SEO impressions roughly doubled over the first six months.

More about Meridian →

Chayya

Long-form publishing · multilingual · 2024–2026
The situation

A 6,000-article publisher with three language editions had outgrown its template-based WordPress site. Editorial throughput was capped by the content model; the editorial team was working around the CMS rather than with it. Multilingual SEO was leaking through hreflang errors.

What we did

Rebuilt the content model around how the editorial team actually works (commissioning, drafting, peer review, scheduling, syndication); added WPML with hreflang done properly and per-region content overrides; shipped a custom-themed publishing platform; built an internal-link automation system; tuned the site for sub-1-second LCP globally via Cloudflare edge caching.

The outcome

Global LCP under 0.8 seconds. Editorial throughput up roughly 40%. Organic traffic followed within the first quarter. Three language editions live and the team is shipping a fourth (Arabic) without engineering help.

More about Chayya →
For agencies & product teams

The WordPress engineering team behind the agency.

Roughly 35% of our WordPress work is built for other agencies, product teams, and consultancies — under their brand, against their clients' deadlines. Three partnership models, all NDA-protected, with senior WordPress engineers working in time zones that overlap the UK, EU, and US workday.

01 · Partnership model

White-label WordPress development

Your brand. Our engineers. We never appear in front of your client — all communication, deliverables, and code go out under your name. The standard model for agencies that win WordPress projects but don't want to hire in-house WP engineering.

  • NDA & sub-contract in place before any work begins
  • Code, design files, and deliverables shipped under your brand
  • Joint slack / email channels with your team only
  • You stay client-facing; we stay implementation-facing
Used by: digital agencies, marketing firms, brand studios
02 · Partnership model

Agency-of-record & dedicated WP team

A pod of senior WordPress engineers, a front-end developer, and a project lead working as your in-house WordPress capacity — full-time or fractional, month-to-month or annual. The choice when WordPress is core to your service mix and hiring in-house is slower or more expensive than partnering.

  • Dedicated pod: 2 to 6 engineers + lead, scaled to your roadmap
  • Direct integration into your project tools (Jira, Linear, ClickUp, Asana)
  • Monthly capacity commitment; retainer or rolling SoW
  • Code ownership transferred to your repos
Used by: full-service agencies, SaaS product teams
03 · Partnership model

Capacity overflow & sprint-by-sprint

When your in-house WordPress team is full and the next project cannot wait. Sprint-by-sprint engagement, no commitment beyond the current two-week sprint, ready to pick up scoped work within 5 to 7 business days from green-light.

  • Two-week minimum sprint, rolling renewal
  • Scoped fixed-price work — feature build, migration, performance pass
  • Fast spin-up: 5 to 7 business days from signed SoW
  • No long-term commitment; ramp up or down per sprint
Used by: agencies with seasonal WP demand spikes
NDA-protectedStandard NDA, sub-contract, and IP transfer in place before any work begins.
Time-zone overlapWorking hours overlap with UK mornings, EU workday, and US afternoons every business day.
Single point of contactNamed project lead on every engagement. No agency-side account churn.
Your repos, your codeCode ownership transfers cleanly. We work in your Git, your hosting, your tooling.
Already running an agency or product team? Explore our white-label terms Start a partner conversation
Why not

Cheap WordPress shops & DIY builders vs WordPress done properly.

Two routes most businesses consider before they hire an engineering team. Both look cheaper on month one. Neither holds up by year three. Here is what each one actually delivers — and where it falls short.

Cheap WordPress shop
  • Theme bought from ThemeForest, then "customised" with 40 plugins
  • Loads in 4 to 7 seconds on mobile; fails every Core Web Vital
  • No content model — every page is a page builder soup of widgets
  • Breaks on the next WordPress major version
  • Cheap up-front; expensive to rebuild in 18 to 24 months
DIY builder (Wix / Squarespace / Elementor)
  • Drag-and-drop interface that any non-developer can operate
  • Hosted, fixed templates, fixed performance ceiling
  • Hits a wall the moment you need custom functionality, integrations, or scale
  • Lock-in: you cannot export the site or move hosts
  • Year-three cost often higher than custom WordPress
Custom WordPress at Dream Steps
  • Custom theme · 10 to 15 plugins · ACF Pro content model
  • Sub-1.5-second LCP · WCAG 2.2 AA · 95+ Lighthouse mobile
  • Content model the editorial team can extend without engineering
  • Modern PHP · CDN edge cache · object cache · daily backups
  • Higher in year one, dramatically lower across years two and three combined

Cheap WordPress is the most expensive WordPress.

The savings show up on the invoice in month one. The cost shows up in the rebuild, the lost organic traffic, the editorial workarounds, and the abandoned plans for things you cannot do on the platform you chose. Every cheap WordPress shop we have inherited has cost the client more in rebuild than a custom build would have cost first time round.

DIY builders work for the brief they were built for.

Small marketing sites that will not change much. The moment the business needs more — integrations, custom workflows, scale — you are either rebuilding or working around the platform. The work-around is rarely cheaper than the rebuild, and the rebuild is rarely cheaper than starting with custom WordPress from day one.

A custom WordPress build does more, lasts longer, and gets out of the way.

It costs more up front because that is what it costs to design the system around your business rather than fit your business around someone else's template. Three years in, the maths favours it on almost every commercial axis we have measured — build cost, performance, SEO, editorial throughput, total cost of ownership.

— The honest read

Build the WordPress site that fits the business in three years.

Request a WordPress engagement
Common questions

Questions WordPress buyers actually ask.

Fourteen of the most common WordPress questions, answered straight. If yours is not below, send it and we will reply with a real answer — not a sales pitch.

Why choose Dream Steps for React and Next.js development?

We have shipped 1,000+ React apps since 2015 across Next.js (App Router and Pages Router), vanilla React with Vite, Remix, and Astro. Our 40-person team of senior React engineers, designers, and project leads in Noida, India works in time zones overlapping the UK, EU, and US workday. We hold every build to four hard targets: sub-1.5-second LCP, WCAG 2.2 AA, 95+ Lighthouse mobile, and initial JavaScript under 150 KB gzipped. We do not white-label other agencies’ work and tell clients honestly when React is not the right answer.

Can you white-label React / Next.js development for our agency?

Yes — roughly 35% of our React work is built for other agencies, product studios, and consultancies under NDA. Three partnership models: white-label (your brand, our engineers, fully invisible), agency-of-record (a dedicated React pod working as your in-house capacity), and capacity overflow (sprint-by-sprint engagement when your in-house team is full). Code ownership transfers to your repos. Time zones overlap with the UK, EU, and US workday.

Where is your React team based?

Our entire React engineering team is based in Noida, India — 40 people in our iThum Tower B office, founded in 2015. We work with product teams and agencies across the UK, US, Ireland, Australia, the UAE, Germany, and the Netherlands. Working hours overlap with UK mornings (your 9 AM to noon), the full EU workday, and US afternoons (your 1 PM to 6 PM EST). For agency partners we run in their tooling — Slack, Jira, Linear, ClickUp, Asana — as standard.

Should I use Next.js or vanilla React (Vite)?

Next.js for anything customers find through Google (marketing sites, content engines, e-commerce, product pages) — SSR and Server Components are not optional when SEO matters. Vanilla React with Vite for logged-in product applications (SaaS dashboards, internal tools, real-time interfaces) where the UI is the product and SEO does not matter. Most applications need one or the other, not both; picking the wrong stack is the most expensive React architecture mistake we see.

How much does a custom React or Next.js build cost?

Custom React builds range from small marketing sites through to enterprise SaaS applications and headless commerce frontends. The right scope drivers are application complexity, custom functionality, integrations, performance targets, and the team’s React maturity. We scope every engagement against the specific brief and are honest about which features can wait until phase two.

How long does a custom React or Next.js build take?

A typical custom Next.js marketing site takes 6 to 10 weeks. A SaaS dashboard or product application takes 10 to 16 weeks depending on feature scope. A headless commerce frontend with Shopify or another headless CMS takes 8 to 14 weeks. Migrations (CRA to Vite, Pages Router to App Router) typically add 4 to 12 weeks depending on app size. We work in two-week sprints with weekly demos throughout.

Will my React app be fast?

Yes — every React build we ship hits sub-1.5-second LCP, sub-0.05 CLS, INP under 100 ms, and a Lighthouse mobile score above 90. We achieve this through proper code splitting, Server Components where appropriate, AVIF / WebP images with responsive srcset, deferred third-party scripts, profiled render performance, and initial JavaScript bundles under 150 KB gzipped. Performance is part of the build, not an afterthought.

Do you build with App Router or Pages Router?

For new Next.js builds in 2026, App Router is our default — smaller client bundles via Server Components, cleaner data fetching, streaming, and Server Actions. For existing Pages Router apps that work well, we maintain them on Pages Router and migrate only when there is a specific reason (planned features that benefit from RSC, performance walls, or rebuilds happening anyway). We will tell you honestly which router fits your project.

Can you build accessible React apps (WCAG 2.2 AA)?

Yes. WCAG 2.2 AA is our baseline on every React build — colour contrast checked per token, full keyboard navigation tested, screen-reader landmarks audited, focus management on modals and dialogs, ARIA used correctly and minimally. We use Radix, React Aria, and Shadcn UI as primitives that get accessibility right by default. Accessibility is part of the build, not a fix after launch.

Can you handle headless commerce frontends (Shopify Hydrogen, Sanity, Contentful)?

Yes. We have built headless storefronts with Shopify Hydrogen + Oxygen, Sanity-driven content sites, Contentful-driven marketing sites, and custom GraphQL backends with Next.js. Headless commerce is one of our specialities — see our Shopify Development page for the deeper take on Hydrogen vs standard Shopify, and our content cluster on App Router vs Pages Router for the Next.js-specific architecture choices.

Will you maintain the React app after launch?

Yes. We offer monthly React maintenance retainers covering dependency updates (React, Next.js, third-party libraries), security patches, Core Web Vitals monitoring, accessibility regression checks, bundle-size monitoring, error monitoring (Sentry or equivalent), and a fixed allocation of editorial and development hours. For product teams without a dedicated React engineer in-house, this is how the app stays healthy past month one.

Can you migrate my existing React app to Next.js (or to Vite)?

Yes. CRA to Vite migrations are typically 1 to 3 weeks and yield 20 to 40% performance improvement before any other work. Pages Router to App Router migrations are 4 to 12 weeks depending on app size and complexity. Vanilla React to Next.js migrations are 6 to 16 weeks — effectively a rebuild of the routing and data-fetching layers while preserving component code. We have done each many times; we will tell you on the discovery call whether migration is the right call or whether optimising what you have makes more sense.

Can you take over a React project that's already in flight?

Yes. We routinely inherit React projects mid-build — codebases left by a previous agency, internal projects that stalled, MVPs from the founder’s first engineer that need to be scaled up. We start with a code audit (architecture, performance, accessibility, dependency health, test coverage), present a written report with a salvage-vs-rewrite recommendation, then either improve or rebuild based on what serves the business. Most inherited projects are salvageable.

What stack do you ship for a typical SaaS dashboard?

Our default 2026 SaaS stack: React 18+ with TypeScript, Vite (or Next.js if SSR is wanted for marketing surfaces), TanStack Router or React Router, TanStack Query for server state, Zustand or Jotai for client state, Radix UI or Shadcn for accessible primitives, Tailwind for styling, Vitest + React Testing Library + Playwright for testing, deployed to Vercel, Cloudflare Pages, or AWS depending on infrastructure preference. We adjust based on the team and the requirements but the stack above is what we recommend by default.

Ready when you are

Build a React app your team can ship on for a decade.

Tell us about the product, the team, the integrations, and where you want to be at year three. We will come back with a written brief, a realistic build cost, and a clear set of performance, accessibility, and architecture targets we will hold ourselves to.

What to expect

A 30-minute conversation about your business, the editorial team that will run the site, and where you want to be in three years. No slide deck, no pitch.

You walk away with

A written brief naming the build scope, the performance and accessibility targets we will hold to, the timeline, and a realistic build cost.