FuturByte

Hire Next.js developers

Next.js is the React framework most commercial web applications now run on, and hiring for it means hiring for the server and client boundary more than for React itself.

What Next.js actually is

Next.js is a framework built on React that supplies the parts React deliberately leaves out: routing, server rendering, data fetching, bundling and a deployment model. It is developed by Vercel, who also sell hosting for it, and that dual role is worth understanding when you read its documentation, because the recommended path and the commercially convenient path are not always distinguishable.

What you get in exchange for the framework's opinions is a great deal of infrastructure you would otherwise assemble yourself, and a clear answer to questions that otherwise consume weeks: where does routing live, how does a page get its data, what renders on the server, how does a build become a deployment. For most commercial projects that trade is worth making. For a small internal tool it is often more machinery than the problem requires.

The critical thing to grasp before hiring is that Next.js has been through a genuine architectural change. The older model put every page in a pages directory and fetched data through a small set of exported functions. The newer model organises the application around a router where components run on the server by default and opt into running in the browser. Both are in production in large numbers. They are different enough that experience in one does not straightforwardly transfer to the other, and a CV that says Next.js tells you nothing about which.

The part that separates seniors from mid-levels

The heart of the modern framework is that components run on the server unless they say otherwise. A server component can read a database, use a secret, and never ship a line of its own code to the browser. It cannot hold state, use an effect, or respond to a click. A client component can do all of those and pays for the privilege in bundle size. Everything difficult in a Next.js codebase comes from where somebody drew that line, and the most common mistake is drawing it too high, so that a single interactive element pulls an entire page into the browser.

Data fetching and caching are the second thing that separates levels, and the area where the framework has changed its own defaults more than once. Requests can be cached, revalidated on a timer, revalidated on demand by tag, or opted out entirely, and the same fetch behaves differently depending on where it runs and what else the route does. Developers who have only followed tutorials tend to know that caching exists. Developers who have shipped and operated a Next.js application can tell you about the time stale data reached production and what they changed so that it could not happen again.

The third area is rendering strategy per route, which is a commercial decision as much as a technical one. A marketing page that changes weekly should be static. A logged-in dashboard cannot be. A product page on a large catalogue usually wants to be generated on first request and then cached. Getting this wrong is expensive in both directions: unnecessary dynamic rendering costs money and speed on every request, and inappropriate static generation serves stale prices to customers.

Where Next.js is used

The label “Next.js developer” covers several jobs that share a technology and little else. These are the settings the work usually turns up in, and the one you are hiring into should shape the whole process, because the judgement each demands is different.

Commerce storefronts

Category, product and checkout routes where server rendering and route-level caching carry both the search visibility and the conversion rate.

Marketing and content sites

Sites built against a headless CMS where most routes are static and the editorial team expects changes to appear without a rebuild.

SaaS application shells

Authenticated products where the marketing surface and the application live in one codebase and share a component library.

Multi-tenant platforms

Applications serving many customers from one deployment, where routing, theming and data isolation per tenant are the hard parts.

Migration targets

Teams moving off a client-rendered single-page application, usually for search visibility or first-load performance rather than for developer preference.

Edge-deployed applications

Workloads where parts of the response are computed close to the user, typically personalisation, localisation or access control.

If a candidate's experience sits in a different row of that list from the work you have, that is not a reason to reject them, but it is the thing to probe. Ask what would be different about their approach in your setting. Someone who can answer that has transferable judgement. Someone who says it would be much the same has probably not thought about it.

Which Next.js versions are still supported

Next.js releases frequently and has changed significant defaults between major versions, so the version a codebase sits on tells you a lot about which patterns it uses.

The table is generated from public release data rather than written by hand, so it states what is supported today rather than what was true when any given article was published. Of the 8 most recent release lines, 2 are still maintained and 6 have passed their published end-of-life date. That distinction is the practical one when you read a job specification: a requirement written against a line that is now out of support tells you the specification is older than the codebase it describes, and it is worth asking which of the two the new developer will actually work in.

Next.js release lines
ReleaseReleasedEnd of lifeStatusLatest patch
16 (LTS)2025-10-22none publishedNo published end-of-life date16.3.6 (2026-09-22)
15 (LTS)2024-10-212026-10-21Maintained, long-term support15.5.26 (2026-09-22)
14 (LTS)2023-10-262025-10-26End of life, long-term support14.2.35 (2025-12-11)
132022-10-252024-12-21End of life13.5.11 (2025-03-27)
122021-10-262022-11-21End of life12.3.7 (2025-03-28)
112021-06-152022-01-27End of life11.1.4 (2022-01-27)
102020-10-272021-06-15End of life10.2.3 (2021-05-24)
92019-07-082020-10-27End of life9.5.5 (2020-10-10)

Source: endoflife.date public release data, read 2026-09-25.

Two questions follow from this table in an interview. The first is which line the candidate has most recently shipped against, because someone whose last production work was on an unsupported line has not had to deal with the changes since. The second is how they have handled an upgrade. Version migrations are where you see whether a developer reads release notes, writes characterisation tests before changing anything, and knows how to stage a rollout, or whether they upgrade in place on a Friday and hope.

The toolchain around it

Nobody hires for Next.js alone. The surrounding tools are where most of the day-to-day work happens, and a gap in any of them costs more time than a gap in the core library. This is the set that turns up most often on real job specifications alongside it.

React
The component layer underneath. Next.js decisions constrain React ones, not the other way round.
TypeScript
Effectively assumed in new Next.js work, particularly across the server and client boundary where props must be serialisable.
A headless CMS
Contentful, Sanity, Strapi or similar, supplying content to statically generated routes.
Prisma or Drizzle
Typed database access from server components and route handlers.
Tailwind CSS
The default styling approach in most current Next.js codebases.
Vercel, or a container platform
Deployment target. Where it is not Vercel, expect extra work on caching, image handling and middleware.
Playwright
End-to-end tests, which matter more here because so much behaviour depends on where code ran.
An auth library
Session handling across the server and client boundary, one of the most common sources of subtle bugs.

Related skills that frequently appear on the same specification: Node.js, WordPress, GraphQL, React, TypeScript.

What to test in an interview

These are the topics that separate candidates in practice. Each one is given with why it discriminates, what a strong answer sounds like, and the response that should make you slow down. None of them requires a whiteboard.

Server and client component boundaries

The single most important judgement in a modern Next.js codebase and the clearest divider between recent and dated experience.

Caching and revalidation

Where Next.js surprises people in production, and where stale data reaches customers.

Choosing a rendering strategy per route

A commercial decision that developers are often allowed to make by accident.

What happens on a deploy that is not Vercel

Reveals whether they understand the framework or only the hosting product.

Authentication across the boundary

A reliable source of security bugs, because a check that runs only on the client is not a check.

Bundle size and what they measured

Separates people who have shipped from people who have built locally.

A migration they have run

Most substantial Next.js work in the market is migration work.

Warning signs in a Next.js codebase

The fastest way to read a candidate is to ask what they have found wrong in code they inherited. These are the patterns that come up most often, what they cost, and what fixing them looks like. A developer who recognises three or four of these from their own experience is worth more than one who can recite the documentation.

Client components all the way down

Fetching in a client effect on a server-capable route

Caching disabled globally to fix one bug

Authorisation in middleware only

Secrets leaking through props

One enormous layout

What each level can own

Job titles are not comparable between companies, so it is more useful to describe levels by what a person can be left to own without supervision. These are the boundaries we use when we assess a Next.js developer.

Junior
Builds routes and components inside an established Next.js structure. Needs the rendering strategy and data-fetching pattern decided for them.
Mid-level
Owns a feature across the server and client boundary, including its caching behaviour. Can debug a hydration mismatch without guessing.
Senior
Decides rendering strategy per route, owns the caching model, and can justify the deployment target. Able to run an incremental migration without stopping delivery.
Staff
Owns the application's performance budget, its caching contract and its relationship with the hosting platform, including the exit path if that platform changes terms.

How the work is usually scoped

Team shape follows the kind of work, not the headcount you happen to have budget for. These are the shapes that come up most often and the constraint that actually governs each one.

New commercial web application

Migration from a client-rendered application

Headless CMS build

Performance and cost remediation

Platform migration off Vercel

Migration work you may actually be hiring for

A large share of Next.js work is not new development. It is moving an existing system from one state to another while it stays in service. These are the migrations that come up most often, and each one asks for a different kind of experience from the person you hire.

The pages router to the app router

A client-rendered single-page application to Next.js

A traditional CMS front end to Next.js with a headless CMS

Vercel to a container platform

Migration work rewards a different temperament from greenfield work. The useful question in an interview is not whether someone has done the specific migration you face, but whether they have ever run one incrementally: behind a flag, with both paths live, and with a way back. Developers who have only done big-bang cutovers tend to propose them again.

What a good brief for this role contains

Most of the time lost in hiring a Next.js developer is lost before anyone is interviewed, in the gap between what the brief says and what the team actually needs. These are the points that, for this technology specifically, change who the right candidate is. A brief that answers them can be matched in days. One that does not produces a shortlist that looks reasonable and converts badly.

If you cannot answer some of these yet, that is normal and it is still worth writing down which ones are open. An unknown that is named can be worked around. An unknown that is papered over in a job specification turns into a rejected shortlist and a restart four weeks later.

What the US market pays for this work

Next.js work is counted by the US Bureau of Labor Statistics under Software Developers. That classification is broader than the technology itself, so treat the figures as the shape of the market a Next.js developer is hired into rather than as a rate card for the skill. Across the United States the Bureau counts 1,687,890 people in this occupation, with a median annual wage of $135,980.

US annual wages, Software Developers, May 2025
US annual wages, Software Developers, May 2025$135,980Median$82,460$214,67010th pct90th pctMiddle half $105K to $172K

The spread matters more than the midpoint. The 90th percentile is about 2.6 times the 10th, which is a wide band for a single occupation and tells you that the title on its own carries very little pricing information. Two people described as a Next.js developer can sit at $82,460 and $214,670 in the same national dataset. When a budget is set from a median without asking which end of that range the work actually needs, the hire that follows is usually the wrong one in one direction or the other.

Related classifications are worth reading alongside it, because teams hiring for Next.js frequently end up recruiting against these titles too:

US national wages, May 2025
OccupationEmployed25th percentileMedian75th percentile90th percentile
Software Developers1,687,890$105,210$135,980$171,980$214,670
Web Developers70,190$64,230$92,650$126,230$162,290

Source: BLS Occupational Employment and Wage Statistics, May 2025. Figures cover all US employers and are not FuturByte rates.

These are employer-side wage figures for people on a US payroll. They exclude employer taxes, benefits, recruitment cost and the months a seat sits empty, all of which are real and none of which appear in a salary line. The useful way to read the table is as the cost of the alternative you are comparing against, not as a number to match.

How US metro markets compare for this role

The same job is priced very differently across the country. Ranked by median annual wage for Software Developers, the gap between the highest and lowest of the 28 metro areas covered here is a factor of about 1.7. San Jose sits at the top with a median of $213,110; Pittsburgh sits at the bottom with $124,500. A budget built from a national median will be wrong in both of those markets, in opposite directions.

Median wage for software developers, by US metro area
Median wage for software developers, by US metro areaSan Jose, CA: $213,110San Jose, CASan Jose, CA$213,110San Francisco, CA: $186,640San Francisco, CASan Francisco, CA$186,640Seattle, WA: $167,280Seattle, WASeattle, WA$167,280New York, NY: $166,830New York, NYNew York, NY$166,830Boston, MA: $166,090Boston, MABoston, MA$166,090San Diego, CA: $163,270San Diego, CASan Diego, CA$163,270Los Angeles, CA: $160,920Los Angeles, CALos Angeles, CA$160,920Portland, OR: $156,000Portland, ORPortland, OR$156,000Washington, D.C.: $154,930Washington, D.C.Washington, D.C.$154,930Baltimore, MD: $138,900Baltimore, MDBaltimore, MD$138,900Denver, CO: $137,610Denver, CODenver, CO$137,610Charlotte, NC: $135,920Charlotte, NCCharlotte, NC$135,920Chicago, IL: $134,380Chicago, ILChicago, IL$134,380Austin, TX: $134,120Austin, TXAustin, TX$134,120Dallas-Fort Worth, TX: $133,290Dallas-Fort Worth, TXDallas-Fort Worth, TX$133,290Philadelphia, PA: $133,040Philadelphia, PAPhiladelphia, PA$133,040Atlanta, GA: $132,960Atlanta, GAAtlanta, GA$132,960Raleigh, NC: $132,770Raleigh, NCRaleigh, NC$132,770Miami, FL: $132,650Miami, FLMiami, FL$132,650Phoenix, AZ: $131,750Phoenix, AZPhoenix, AZ$131,750Minneapolis-St. Paul, MN: $130,920Minneapolis-St. Paul, MNMinneapolis-St. Paul, MN$130,920Detroit, MI: $130,760Detroit, MIDetroit, MI$130,760Tampa, FL: $130,450Tampa, FLTampa, FL$130,450Orlando, FL: $129,620Orlando, FLOrlando, FL$129,620Salt Lake City, UT: $129,600Salt Lake City, UTSalt Lake City, UT$129,600Houston, TX: $129,440Houston, TXHouston, TX$129,440Kansas City, MO: $124,990Kansas City, MOKansas City, MO$124,990Pittsburgh, PA: $124,500Pittsburgh, PAPittsburgh, PA$124,500
Software Developers by metro area, May 2025, ranked by median wage
Metro areaEmployedMedian wagevs US medianLocation quotient
San Jose, CA87,350$213,110+57%7.09
San Francisco, CA69,030$186,640+37%2.68
Seattle, WA92,770$167,280+23%4.10
New York, NY121,000$166,830+23%1.17
Boston, MA42,310$166,090+22%1.44
San Diego, CA20,610$163,270+20%1.23
Los Angeles, CA55,540$160,920+18%0.82
Portland, OR18,260$156,000+15%1.39
Washington, D.C.69,060$154,930+14%2.03
Baltimore, MD16,850$138,900+2%1.14
Denver, CO27,010$137,610+1%1.55
Charlotte, NC20,820$135,9200%1.41
Chicago, IL40,370$134,380-1%0.82
Austin, TX31,960$134,120-1%2.28
Dallas-Fort Worth, TX67,030$133,290-2%1.52
Philadelphia, PA28,480$133,040-2%0.91
Atlanta, GA36,300$132,960-2%1.16
Raleigh, NC12,580$132,770-2%1.56
Miami, FL18,900$132,650-2%0.62
Phoenix, AZ29,380$131,750-3%1.14
Minneapolis-St. Paul, MN27,410$130,920-4%1.29
Detroit, MI24,870$130,760-4%1.20
Tampa, FL14,230$130,450-4%0.91
Orlando, FL13,440$129,620-5%0.88
Salt Lake City, UT19,040$129,600-5%2.12
Houston, TX22,940$129,440-5%0.64
Kansas City, MO12,160$124,990-8%1.02
Pittsburgh, PA10,320$124,500-8%0.85

Location quotient compares how concentrated this occupation is in the metro against the national average. A value above 1 means the metro has more of this work than its size would predict.

The location quotient column is the more useful one for hiring. A high median tells you what a role costs; a high quotient tells you whether the people exist. San Jose, San Francisco, Seattle, Washington, D.C., Denver, Austin each have a quotient of 1.5 or above, meaning the work is concentrated there well beyond what the size of the local economy would predict. Those are the markets where a search is likely to be quick and competitive at the same time, and where a counter-offer is most likely to take a candidate off the table late in the process.

The opposite case is worth planning for too. In a metro with a low quotient, the total pool is small even when wages look reasonable, so the realistic options are to widen the search radius, accept a longer time to hire, or bring the capability in from outside the local market entirely. That last option is what most teams are weighing when they come to us.

Hiring risks worth naming

Every one of these has produced a bad hire somewhere. They are written down so that the process tests for them deliberately rather than discovering them in month three.

Experience only in the older pages router. Ask directly which router their last production work used. This is the largest single gap in the current Next.js market.

Framework knowledge without React depth. Test React state and rendering separately. Next.js hides these until a performance problem makes them visible.

Vercel-only deployment experience. Only matters if you deploy elsewhere, and matters a lot if you do. Ask early rather than at handover.

No production operating experience. Ask what broke after launch. Caching and revalidation problems only appear under real traffic and real editing.

Hiring Next.js developers by metro area

Wages for this occupation vary more between US metro areas than most budget models assume. Each page below sets out the published employment and wage figures for that market, how it compares with the national picture, and what the local industry mix means for the kind of Next.js developer who will be available.

Frequently asked questions

Is Next.js overkill for a small site?

Often, yes. If the site is a handful of pages with no authentication and no dynamic data, a simpler static generator will be faster to build and cheaper to run. Next.js earns its complexity when you have genuine server-side needs: authentication, per-user data, a large catalogue, or content that has to be fast and fresh at the same time.

Do I need a Next.js developer or a React developer?

If the application is already on Next.js, hire for Next.js, because the hard decisions are framework decisions. If you are choosing a stack now, a strong React developer will pick up Next.js faster than a Next.js developer without React depth will pick up the parts the framework hides.

How do I check which router version someone has used?

Ask what file their last route lived in and how it got its data. The two models have visibly different answers, and the question is specific enough that it cannot be answered from general familiarity.

Are we locked into Vercel?

Not locked, but the path of least resistance runs through it. Next.js deploys to containers and other platforms, and several features that are automatic on Vercel need configuration elsewhere, particularly image optimisation, middleware and cache revalidation. If leaving is a foreseeable requirement, decide it early and hire someone who has deployed it elsewhere.

Why is our Next.js site slow when the framework is supposed to be fast?

In our experience it is nearly always one of three things: too much of the page is a client component, data is being fetched in the browser that could have been fetched on the server, or the route is rendering dynamically when it could be cached. All three are diagnosable in a morning by someone who knows where to look.

How long does a migration from the older router take?

It depends almost entirely on how much the application relies on client-side data fetching and on whether it has tests. Both routers can run in the same application, so the work is incremental and delivery does not have to stop. Teams that try to convert everything before shipping anything are the ones that stall.

Should the marketing site and the product share a Next.js codebase?

It works well when the same team owns both and they share a design system. It works badly when marketing needs to publish without waiting for an engineering deploy. If that is the situation, the better split is usually a headless CMS feeding the marketing routes rather than two separate codebases.

What does a Next.js developer need from us on day one?

Environment variables that work locally, access to the real content source rather than fixtures, and a decision about the deployment target. The third one is the one teams most often leave open, and it quietly constrains every architectural choice made before it is settled.