Hiring guide · Custom Software

Hire React Developers: What It Costs and How to Vet Them

The short answer

Expect roughly $25 to $75 per hour for offshore and nearshore React developers, $60 to $150 per hour for senior freelancers in the US or Western Europe, and $120 to $250 per hour blended through a US or UK agency. Those are the numbers Digital Heroes bills at and the numbers our clients tell us they get quoted elsewhere. For most teams the right structure is a small pod rather than a solo hire: one senior React engineer who owns state and data architecture, plus one or two mid level engineers building screens. A lone freelancer sets the patterns your team will live inside for years, and an in-house hire costs well above base salary once benefits, recruiting and ramp are counted.

The job is architecture, not components

A React developer's real work is not building components. It is deciding where state lives, where the network boundary sits, and what re-renders when a user types. Nearly everything expensive in a React codebase traces back to those three calls, and they get made in the first two weeks by whoever you hired.

We took over a B2B dashboard last year that shows what that means in practice. Forty screens, eight months of work by a perfectly capable freelancer, and filtering the main table took close to a second per keystroke on a fast laptop. Nothing was broken, so nobody had flagged it. The React DevTools Profiler told the whole story in one flamegraph: filter state sat in a top level context, the provider passed a fresh object literal as its value on every render, and every consumer in the tree re-rendered on every character typed, including three charts that had nothing to do with filtering. That fix took an afternoon. The problem was that the same instinct was everywhere else: fifty useEffect calls fetching data behind hand rolled loading booleans, no AbortController, no cache, and two race conditions that flashed stale rows when a user clicked quickly.

None of that shows up in a demo. It shows up in month four, when adding a feature breaks something two screens away and velocity quietly halves. Buyers judge React developers on what they can build in a week, then live for years with what those developers architected during that same week.

Engagement models and what each one is good for

In-house hire. Right when React is your product surface for the long run, you have a design system or are about to build one, and someone senior can review pull requests. Wrong when you need output in six weeks. Recruiting a good React engineer takes real calendar time, and ramp on a non trivial codebase runs weeks. You are buying a decade of context, not a sprint.

Freelancer. Right for bounded work with a finish line: rebuild a checkout flow, migrate off Create React App to Vite, ship a marketing site in Next.js. Wrong as the sole architect of a long lived application. Freelancers optimise for visible progress because visible progress gets renewed, which is exactly how the dashboard above happened. Availability is unstable too. Good React freelancers get pulled onto better paying work, and mid migration is a bad time to lose your only person.

Agency. Right when you want the whole outcome owned, including design handoff, code review, QA and deployment, and you do not want to manage individuals. You pay a premium for that. The trade you are making is that agencies vary wildly in whether the senior who scoped your project is the one writing your code. Ask directly who is on the keyboard, and insist on meeting them.

Staff augmentation. Right when you already have an engineering lead and a backlog and need capacity that plugs into your GitHub org, your standups and your review process. Wrong if nobody is setting direction, because augmented engineers do what the ticket says and no more. Most of our React clients land here after trying the other three.

What it costs

Rates move with region and seniority more than with anything else. These bands come from Digital Heroes delivery and from what clients tell us they were quoted before they called us.

  • Offshore and nearshore, mid to senior: roughly $25 to $75 per hour. This is the band we work in, with engineers who own architecture sitting at the top of it.
  • Freelancers in the US, UK or Western Europe: roughly $60 to $150 per hour. The people who can debug hydration and read a render tree sit at the upper end and rarely negotiate.
  • US or UK agency: roughly $120 to $250 per hour blended, which buys project management, QA and accountability alongside the code.

The in-house number people quote themselves is base salary, and base salary is the smallest part of it. Benefits, payroll taxes, equipment and software seats push the real cost meaningfully above base. An external recruiter adds a placement fee tied to first year salary. Then there is ramp: a competent React engineer joining a codebase of forty screens is not net productive for the first month or two, and that month bills at full rate whether or not anything ships. Every time we walk a client through this arithmetic, the first year commitment lands a long way north of the salary line they had in their head. That gap is why a lot of teams start with a pod and convert to in-house once the architecture is settled.

How to vet a React developer

Skip the trivia. Nobody needs to recite the reconciliation algorithm. Go at the three decisions that matter.

Server state versus client state. Ask how they handle data that lives on the server. A weak answer is useEffect plus useState plus a loading boolean. A strong one names TanStack Query, RTK Query or React Server Components and explains why: caching, deduplication, cancellation and invalidation are solved problems, and hand rolling them across thirty components is how race conditions get in. Follow up with what belongs in global client state. The good ones say very little, usually auth, theme and a couple of UI toggles, and they reach for Zustand or Jotai before putting the world in Redux or a context tree.

Effects. Ask when useEffect is the wrong tool. You want to hear that effects synchronise with external systems, and that deriving state from props, fetching server data, and chaining effects that set state which triggers another effect are all smells. Someone who cannot articulate that will write the dashboard from the opening of this page.

Performance. Ask for one performance bug they fixed and make them narrate the Profiler flamegraph. Real answers are boring and detailed: a component re-rendering on an inline object prop, a list keyed by index so React rebuilt every row on reorder, a heavy chart sitting unmemoised inside a context consumer. If everything in their code is already wrapped in useMemo and useCallback, that is not performance work.

Next.js, if you are on it. Ask what breaks when you put 'use client' at the top of your root layout, and how they debug a hydration mismatch. Half the people who list App Router experience cannot answer either. Good answers cover pushing the client boundary down the tree, keeping data access on the server, and the classic mismatch causes: dates rendered with toLocaleString, Math.random, and reading localStorage during render.

The take-home. Three to four hours, paid, and shaped like real work: a filterable, paginated table hitting a real API, plus one form. Then read it for the things that separate seniors from mid levels. Are filters synced to the URL so a view is shareable and the back button works? Is the search input debounced? Are in flight requests cancelled or otherwise race safe? Is the empty state visually distinct from the error state, or are they the same grey box? Is the form using React Hook Form with a Zod schema, or forty lines of manual onChange handlers? Are the API types real, or is any smeared across the boundary? Is there one test that means something, using React Testing Library and querying by role rather than by test id?

Portfolio review. Do not read a PDF. Open the deployed app. Throttle the network in DevTools and watch what happens. Check the Network tab for a three megabyte JavaScript bundle on first load. Open the Profiler and type into a filter. Tab through a modal and see whether focus is trapped and whether Escape closes it. Resize to 375 pixels. Five minutes of that beats an hour of conversation.

Red flags

  • useMemo and useCallback on everything, with no measurement. Ask to see the before and after Profiler flamegraph for one of them. Silence means they memoise out of superstition and have never profiled anything.
  • Data fetching in useEffect across the whole app. Ask how they cancel a request when the component unmounts mid flight, and how they invalidate after a mutation. If the answer is a boolean called ignore, they are hand building a cache library badly.
  • A portfolio of landing pages and clones. Beautiful Tailwind marketing sites prove nothing about a stateful application. Ask to see something with authentication, role based access and more than twenty screens, then ask what they would do differently now.
  • "Senior, five years of Next.js App Router." The App Router has not existed that long. Ask what they migrated from and what broke during the migration. Vague answers here predict vague code.
  • Redux Toolkit wired into everything, or one giant context provider. Ask which of that state genuinely needs to be global. If the answer is most of it, they have not thought about it once.

When to hire someone else instead, and how we staff it

Do not hire a React developer if your actual problem is a four second API response. No amount of Suspense makes a slow backend fast, and you will pay a frontend specialist to build increasingly clever loading skeletons over a problem that lives in your database. If you need one person to ship a whole product, hire a full stack TypeScript engineer, because you need someone who can move an endpoint as easily as a component. If your product is a mobile app, that is React Native, which is a different job involving native modules, EAS builds and platform specific bugs. And if you mostly need pixel accurate marketing pages, a design engineer will serve you better than an application developer.

A React specialist pays for themselves when you have a real application, a growing screen count, and a team that needs patterns it can follow. Digital Heroes staffs that as a pod: one senior React engineer owning state architecture, the data layer and code review, plus one or two mid level engineers on feature work, running inside your GitHub organisation on your branch and review rules. We start with a small paid slice, usually two weeks against a defined outcome, so you can read our pull requests before committing to anything longer. The code is yours from the first commit, in your repo, under your licence.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Companies in the top quartile of McKinsey's Developer Velocity Index had 2014-18 revenue growth four to five times faster than bottom-quartile peers, showing that software-building capability is a driver of business performance, not just a support function. Source: McKinsey & Company (2020) →
  2. The median annual wage for U.S. software developers was $133,080 in May 2024, and employment is projected to grow 15% from 2024 to 2034 - a core input to any in-house build-vs-buy TCO model. Source: U.S. Bureau of Labor Statistics (2024) →
  3. Brandon Hall Group research on onboarding reports that done well, structured onboarding drives measurable gains in new-hire productivity, employee engagement, and retention; the page notes 41% of organizations experience greater than 5% turnover among new hires. Source: Brandon Hall Group (2024) →
  4. An analysis of enrollment and completion data for 221 MOOCs (Katy Jordan, published in the International Review of Research in Open and Distributed Learning, IRRODL, 16(3), 2015 - not the Journal of Distance Education) found completion rates ranging from 0.7% to 52.1%, with a median completion rate of 12.6%, and completion negatively correlated with course length (longer courses had lower completion rates) - underscoring how unsupported self-paced online courses struggle to finish learners. Source: Journal of Distance Education (via ERIC / Katharina Jordan) (2015) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

How much does it cost to hire a React developer?
From what Digital Heroes bills and what our clients tell us they are quoted elsewhere, offshore and nearshore React developers run roughly $25 to $75 per hour, senior freelancers in the US or Western Europe roughly $60 to $150 per hour, and US or UK agencies roughly $120 to $250 per hour blended. Rates move mainly with region and seniority, so a mid level engineer in Eastern Europe and a senior in San Francisco can differ by four times for similar output on simple work. For in-house, base salary is not the real number once benefits, payroll taxes, recruiting fees and ramp are included.
Should I hire a freelancer or an agency for React work?
Use a freelancer for bounded work with a clear finish line, like migrating off Create React App or rebuilding a checkout flow. Use an agency or a staff augmentation pod when React is your ongoing product surface, because a solo freelancer permanently sets your state management and data fetching patterns and then leaves. The middle option most teams land on is a pod: one senior engineer owning architecture plus one or two mid level engineers on feature work.
How do I test a React developer before hiring?
Give a paid three to four hour take-home that mirrors real work: a filterable, paginated table against a real API plus one validated form. Read it for the signals that matter, specifically whether filters are synced to the URL, whether search is debounced, whether in flight requests are race safe, whether empty and error states are distinct, and whether the API types are real or just any. Pair that with a live conversation where they narrate a React DevTools Profiler flamegraph from a performance bug they actually fixed.
How long does it take to hire a React developer?
An in-house hire realistically takes several weeks to source, interview and get through notice periods, then another four to eight weeks of ramp before the person is net productive on a non trivial codebase. A vetted freelancer can start within days, but you carry the vetting risk yourself. An agency or staff augmentation pod typically starts inside one to two weeks because the vetting and the pairing are already done.
What is the difference between onshore and offshore React rates?
Onshore senior React freelancers in the US, UK or Western Europe generally sit in the $60 to $150 per hour range, while offshore and nearshore engineers of comparable seniority commonly sit at $25 to $75. The gap is cost of living and local market pressure, not automatically capability. What you actually buy onshore is timezone overlap and easier communication, which matters most when requirements are fuzzy and matters least when the spec and design system are settled.
Who owns the code when I hire a React developer or agency?
You should own it outright, from the first commit, in your own repository under your own licence. Digital Heroes works inside the client's GitHub organisation for exactly this reason, so there is never a handover event where code has to be transferred. If a freelancer or agency wants to hold the repo on their side, or licence a proprietary framework back to you, treat that as a dealbreaker and walk.
Do I need a React specialist or a full stack developer?
If one person has to ship the whole product, hire a full stack TypeScript engineer who can move an endpoint as easily as a component. A React specialist starts paying off when you have a real application, a growing screen count, and a team that needs consistent patterns to follow. If your actual complaint is that pages feel slow because your API takes four seconds, a frontend hire will not fix that.
What React experience should I look for right now?
Look for people who understand the server and client boundary, meaning React Server Components and the 'use client' rule if you are on the Next.js App Router, plus a real server state library like TanStack Query or RTK Query rather than useEffect fetching. Ask what breaks during hydration and listen for the classic causes: dates formatted with toLocaleString, random values, and reading localStorage during render. Be sceptical of anyone claiming five years of App Router experience, since it has not existed that long.
Can one React developer build my whole product?
Sometimes, if the product is small, the backend is thin or headless, and you can tolerate a single point of failure. The risk is not their code quality, it is that one person makes every architectural decision unreviewed, which is how you end up with fifty useEffect fetches and all your state in a top level context. Even a second engineer purely reviewing pull requests changes the outcome substantially, which is why we staff React work as a pod rather than an individual.
Couldn't I just build my app in Bubble or another no-code tool instead of hiring an agency?
For validating an idea with real users, yes, and we tell clients that honestly. The walls come later: Bubble apps cannot be exported as code to run anywhere else, performance drops on complex data operations, and usage-based pricing climbs as you grow. A meaningful share of Digital Heroes custom builds are rebuilds of no-code MVPs that proved the business worked, which is the system operating as intended: validate cheap, then build the version that scales.
We run everything on Airtable and spreadsheets. When is it time to go custom?
The switch usually makes sense when you hit one of two walls: Airtable's record caps (125,000 records per base on the Business plan) or logic the tool cannot express, like multi-step approvals with conditional pricing. There is also a simple cost signal: 25 people on Business at roughly $45 per seat per month is about $13,500 a year, forever, for a tool you are already fighting. Custom is worth it when the workflow is core to how you make money; for peripheral processes, staying on Airtable is the right call.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
What should I have ready before I contact a development agency?
Three things, none of them technical: a one-page description of the problem in your own words, a list of the tools and spreadsheets the new system must replace or connect to, and a must-have versus nice-to-have split of features. Add a budget range, even a wide one, because it changes the conversation from fantasy to engineering. You do not need a formal specification; producing that is what a discovery phase is for.
Does it matter which tech stack the agency wants to use?
Yes, but not in the way most buyers expect: the goal is boring, popular technology such as React, Node.js or Python, and PostgreSQL, because any future team can maintain it and hiring a replacement developer takes days, not months. The red flag is an agency-proprietary framework or an unusual language, which welds you to that one vendor no matter what your contract says about code ownership. A useful test: could you find three freelancers fluent in this stack within a week? If not, push back.
Will an app built for 10 users survive growing to 500?
Yes, if it is built on standard cloud infrastructure with a sound data model, because moving from 10 to 500 users is a hosting configuration change, not a rebuild. The scaling decisions that actually hurt are made early and invisibly: how the database is structured, how accounts and permissions are modeled, and whether background work is queued properly. Ask your agency how the system would handle ten times the load; the right answer is boring and specific, and a promise to cross that bridge later means you will pay for the bridge twice.
What should I prepare before contacting a software development agency?
A one-page brief beats a 40-page requirements document: the business problem in plain words, who will use the system, the 5 to 10 workflows it must handle, the tools it must connect to, and your budget range and deadline driver. You do not need wireframes, a specification, or technical vocabulary; producing those is the agency's job during discovery. Stating a budget range up front is the single best move, because it gets you honest scoping instead of a quote engineered to win the meeting.
Is custom software more secure than off-the-shelf SaaS?
Neither is secure by default; security tracks the practices of whoever builds and operates the system, not the model. SaaS gives you the vendor's certifications and patching but puts your data in a shared multi-tenant platform on their terms, while custom gives you full control over data residency, access rules, and compliance requirements like HIPAA, with the responsibility sitting with you and your agency. Before hiring anyone for a system holding sensitive data, ask for their security checklist: encryption at rest and in transit, an OWASP Top 10 review, role-based access, and a penetration test before launch.
How do I vet a software development agency before signing a contract?
Ask to speak with two past clients whose projects resemble yours in size and industry, and ask exactly who will write your code, since some agencies sell senior faces and deliver junior or subcontracted hands. Demand a written specification with acceptance criteria before any fixed price, and check that their portfolio links to products that are actually live. An instant quote given without questions about your workflows is the clearest warning sign there is.
Should I hire a freelancer or an agency for my software project?
A skilled freelancer is the right call for a single-discipline scope under roughly $15,000, like a website, a plugin, or one integration. Above that, projects need design, backend, testing, and project management at once, and a solo builder becomes the single point of failure: if they get sick or take a bigger client, your project simply stops. Agencies bill 20-40% more per hour but carry continuity, code review, and someone to escalate to, which is what you are actually buying.
Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?