Next.js development and migration

Fast, indexable front ends: new Next.js builds, and migrations from single-page React or PHP templates without losing search traffic.

Price
Fixed quote after the inventory
Timeline
Planned after an inventory of routes and templates
Engagement
fixed-scope project

Next.js App Router front ends built for Core Web Vitals and search, and migrations from Create React App, the Pages Router or server-rendered PHP templates. Existing URLs keep working through one-hop redirects, and your current backend stays where it is. This site is the worked example: Next.js with static pages, measured on every build.

  1. 01

    The new or migrated Next.js codebase with tests

  2. 02

    A redirect map from every old URL, tested in CI

  3. 03

    Metadata, sitemaps, structured data and share images for every page

  4. 04

    Core Web Vitals and Lighthouse budgets enforced in CI

  5. 05

    Before-and-after measurements of speed and indexing

Who this is for

  • Single-page React apps that search engines and AI crawlers see as an empty page
  • Next.js sites still on the Pages Router or an old major version
  • Teams replacing PHP templates with a modern front end over an existing API

Who this is not for

  • Native mobile apps
  • Sites that a hosted website builder already serves well

What this service is

Next.js development and migration is building fast, indexable front ends with the Next.js App Router, and moving existing ones onto it: single-page React apps, sites on the Pages Router or an old major version, and server-rendered PHP templates. Existing URLs keep working through one-hop redirects, and your current backend stays where it is. It is for teams whose pages are invisible to search engines and AI crawlers, or slow on phones.

This site is the worked example: Next.js, rendered to static pages, with Lighthouse and bundle budgets checked on every build.

Scope

An inventory comes first: every URL, template and data source, and what ranks and converts today, from Search Console and your analytics. From that I write a route map, the rendering choice for each page type (static, server-rendered on request, or client-side where interaction needs it) and the redirect map. The fixed quote follows the inventory.

What is built and checked

Migrations run in slices, one page type at a time on the same domain. The App Router and the older pages directory can run side by side in one app, so routes move over a group at a time instead of in one risky release.

Each page gets its metadata, canonical URL, structured data and share image. The redirect map is tested in CI against the full list of old URLs, so a missing redirect fails the build instead of losing traffic. Core Web Vitals and Lighthouse budgets run in CI too, and before-and-after measurements of speed and indexing are part of the handover.

The reason for server rendering is practical. Google's own guidance is that server-side or pre-rendering is still a good idea because it is faster for users and crawlers and not all bots can run JavaScript; many AI crawlers read only the HTML they're sent.

What it is not

It is not native mobile apps, and it is not the right choice for a site a hosted website builder already serves well. It is also not a backend rewrite: the new front end talks to your existing Laravel, Node.js or Python API.

How the engagement runs

  1. Inventory

    Every URL, template and data source, and what ranks and converts today.

  2. Plan

    A route map, the rendering choice for each page type, and the redirect map.

  3. Migrate in slices

    One page type at a time on the same domain, each release measured.

  4. Launch and watch

    Search Console and field speed data checked closely for the first weeks.

Technologies I use for this

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • Vercel
  • Playwright
  • Lighthouse CI
  • Google Search Console

How this works in your market

How this works in the United States

For US teams, the most common case is a React single-page app built with Create React App, which the React team deprecated for new apps in February 2025 and suggests migrating to a framework. Your morning overlaps my evening, so each slice is reviewed at the start of your day and released in your hours.

How this works in the European Union

For teams in the European Union, a migration is a good moment to fix accessibility at the template level, since the European Accessibility Act has applied to many consumer-facing services since 28 June 2025, and to make sure analytics and marketing scripts don't load before consent. Most of your working day overlaps mine. Confirm with your counsel which obligations apply to you.

Questions about Next.js development and migration

Will a migration hurt our search rankings?

Not when the URLs are handled properly. Every old URL gets a permanent redirect straight to its new page in one hop, tested against the full list before launch, and titles, canonicals and structured data carry across or improve.

Can we keep our existing backend?

Yes. The new front end talks to your Laravel, Node.js or Python API over REST or GraphQL; the backend doesn't have to change for the migration.

Why move away from a single-page app?

Search engines and AI crawlers index server-rendered HTML more reliably, and visitors see content sooner. Next.js renders on the server or at build time and only hydrates what needs to be interactive.

Can you move us from the Pages Router to the App Router?

Yes, incrementally: both routers run in one app, so routes move over a group at a time.

Do we have to host on Vercel?

No. Vercel is convenient, but Next.js also runs on your own containers on Google Cloud or AWS. The choice depends on your team and your data-residency needs.

We're on Create React App. Is that urgent?

Not an emergency, but the React team has deprecated it for new apps and recommends moving to a framework or a maintained build tool, so it's worth planning.

Case studies behind this service

Related writing

Where this work happens