Skip to content
useffect.sh
Book 30 min with a senior
Guide · Mobile team

Freelancer, agency or hire: who should build your React Native app?

The question comes back at every stage of a mobile app: launching the V1, taking over a fragile codebase, getting past a milestone. Each model has a different cost structure, lead time and risk. Here is how to compare them fairly.

By Jérémy Magrin ·

Short answer

There is no right model in general, only a right model for a situation. Hiring in-house wins when mobile is the long-term core of the product: knowledge stays inside the company, but expect about six months before day one, adding the 12-week average APEC measured for hiring a cadre (a salaried professional) to the three-month notice period of a cadre under the French Syntec collective agreement. A freelancer wins for a bounded, well-defined need: they start fast, but they carry quality and continuity alone. An agency wins when you want to buy an outcome at a fixed price without managing the team, at the cost of an intermediary between you and the code. A senior collective sits in between: fast start, cross-review, and a handover planned from day one. Whatever the model, compare the total cost of an outcome, not the price of a day.

The question usually arrives as a binary: "Do we hire or bring in a freelancer?" In practice there are at least four options, and they don't compare on the daily rate alone. This guide puts them side by side on what matters to a CTO or a founder: cost, lead time, seniority risk, continuity, knowledge retention and management load. The figures come from public, dated and linked sources, mostly French since this is our market. Where we found no reliable figure, we describe the structure rather than invent one.

We are one of the options ourselves, a collective of senior React Native engineers. We say so where it matters, and we also say when we are not the right choice.

The comparison table

FreelancerAgencyIn-house hireSenior collective
What you payA daily rateFixed price or time and materials, margin includedSalary, contributions and hiring costA senior daily rate, after a diagnosis
StartFast, if the profile is freeA few weeksOften 5 to 6 monthsIn the first week
Actual seniorityYours to checkNot always the team you were soldDepends on your ability to assessSeniors only
If someone leavesEverything stopsThe agency replaces themFragile if they're your only mobile devAnother senior takes over
KnowledgeLeaves with themPartly stays with the agencyStays with youHanded over at the end
Your management loadHighLow, unless scope changesHighMedium
Best forA bounded need, with a team that can reviewA fixed-scope project, no tech teamMobile at the core of the product, for yearsStarting fast, stabilizing, then handing over

The rest of the guide goes through each column.

The freelancer: fast, readable, but alone

A freelancer is the simplest model to buy. The daily rate is known upfront, the start depends only on their availability, and there is no intermediary.

The daily rate is the most visible number, and the most misleading. It says nothing about the number of days, or about what will need reworking afterwards. On an app in production, the gap between profiles shows up there: a senior React Native engineer who has already been through a version upgrade or a native memory leak goes straight to the cause, where a more junior profile tries leads, at your expense and on your schedule. Compare estimates in days on the same scope, and ask what is included: review, tests, documentation. Seniority is often where teams save in the wrong place.

The limits of the model are structural, not personal:

  • One person carries quality. Nobody reviews their code unless your team does. On an app in production, that is the main risk.
  • The bus factor is one. Holidays, illness, a better-paid mission: the project stops.
  • Knowledge leaves with them. Without documentation required in the contract, the next engagement starts with archaeology.
  • You keep all the management. Scoping, prioritization, review, technical trade-offs: a freelancer executes, and does not always steer.

Two French obligations to know. For any contract of €5,000 or more excluding VAT, Urssaf (opens in a new window) (page updated April 17, 2025) requires you to obtain a certificate of compliance, and to check its authenticity, at signature, "then every 6 months until the end of its performance" (our translation). And if the freelancer works through umbrella employment (portage salarial), the French labor code portal (opens in a new window) (updated May 28, 2026) states that the client company may only use it for occasional tasks outside its normal, permanent activity, or a one-off engagement requiring expertise it lacks, and that the engagement is limited to 3 years.

The freelancer wins when the need is bounded and someone in-house can review: a specific native module, a three-month reinforcement on an existing team, a well-scoped upgrade.

The agency: buying an outcome

An agency sells an outcome rather than time: a fixed price on a scope, or time and materials with a dedicated team. It handles staffing, replacement when someone leaves, and part of the project management.

We found no reliable public source on mobile agency rates in France, so we give no figure. The structure is well known: the price includes the developers' cost, the agency's margin, pre-sales, and often a project manager or product owner. On a fixed price, the agency carries the overrun risk, which you pay for in safety margin and in change orders every time the scope moves.

What to check:

  • Who writes the code? The team presented in pre-sales is not always the one assigned. Ask for names, profiles, and the right to meet them.
  • Who do you talk to? A project manager helps a company without a tech team. For a CTO, it is an intermediary between them and the code.
  • Who owns the code, and which repo does it live in? Require your own repo from day one, not a delivery at the end.
  • How does the exit work? Making your team autonomous is not always in a vendor's economic interest. Put the handover in the contract.

The agency wins when you have no tech team, the scope is stable, and you would rather pay than manage.

Hiring: keeping the knowledge in-house

Hiring is the most direct way to keep product knowledge in the company for the long run. If mobile is the core of your product for years to come, that is the target, whatever the transition looks like.

The most underestimated cost is time. APEC's study on hiring practices for cadres (opens in a new window) (May 2023), APEC being the French agency for managerial employment, measured an average duration of 12 weeks for the last hire of a cadre (a salaried professional) in 2022, against 11 in 2021 and 9 in 2020; 19% of companies took more than 16 weeks. A year earlier, APEC (opens in a new window) (June 7, 2022) wrote that in IT, hiring "often takes between 3 and 6 months" (our translation). These figures are somewhat dated; we found no more recent public measure specific to mobile developers.

Then comes the notice period. Under the Syntec collective agreement (IDCC 1486), common in French tech, the French labor code portal (opens in a new window) (updated January 31, 2024) gives engineers and cadres a 3-month resignation notice, which employer and employee can lengthen or shorten by mutual agreement. Added up, 12 weeks of hiring and 3 months of notice make about six months between the decision and day one, before onboarding even starts.

On salary, we give no range: we found no recent public study specific to React Native, and a senior who can also work in Swift and Kotlin is negotiated case by case. On top of salary come employer contributions, equipment, onboarding and management time.

If you use a recruiter, count their fee. IT recruitment firm Seyos publishes its own (opens in a new window): a rate of 20% of gross annual salary in both of its examples, with a replacement guarantee if the contract ends within the first 4 to 6 months. That is one firm's rate, not a market norm.

Three risks specific to hiring:

  • Assessing a mobile profile without having one. Without a senior React Native engineer in-house to run the technical interview, the risk of a seniority mistake is real.
  • The lone mobile developer. One person on mobile is the same bus factor as a freelancer, with a higher exit cost.
  • Time lost during the search. Six months without moving on mobile sometimes costs more than the salary.

Hiring wins when mobile is strategic over several years, you can wait or fund a transition, and you know how to assess a senior profile.

Where a senior collective fits

A collective of senior engineers combines properties of the other three models. That is what we are; here is how we work, and where our limits are.

What it shares with a freelancer: you talk directly to the people writing the code, with no project manager in between, and the start is fast. What it shares with an agency: several people know your code, nothing ships without review by another senior, and one departure does not stop the mission. What it shares with hiring: the handover is part of the mission from the start.

At useffect.sh, every mission runs in three steps. Five days of diagnosis in your code, with a written document of three pages at most. Then PRs in your repo, reviewed in your own process, with a demo every week. Finally, runbooks and a handover so your team carries on without us. The size follows the problem: a single expert, a pair, or a squad of two to four seniors. The diagnosis is priced after a first 30-minute call; what follows is estimated in days, on evidence, by the diagnosis itself.

The limits, honestly:

  • A collective is not a permanent team. If mobile is your core business for five years, you need an in-house team. A collective can prepare it, not replace it.
  • The daily rate is not a junior's. A senior-only collective is not the cheapest option per day, and does not try to be. It compares on total cost: fewer days, no rework, and a team that carries on without us.
  • Capacity is limited. A collective of a few seniors does not staff twenty people overnight.

The collective wins when you need to start fast with seniors on something that does not tolerate approximation: launching a V1 that has to hold, taking over a fragile app, upgrading React Native, or holding mobile while a hire comes through, then handing over to that person.

Choosing for your situation

SituationBest fitWhy
V1 to launch, no mobile team, fixed launch dateCollective or agencyHiring lead time won't meet the date
Mobile at the core of the product, multi-year horizonHiring, with outside help during the searchAn in-house team keeps the knowledge in the company
Specific, bounded need, in-house team that reviewsFreelancerFast start, readable cost
App in production that breaks, nobody in-house to diagnoseSenior collectiveYou need a diagnosis before choosing who fixes
Company without a tech team, stable scopeFixed-price agencyYou buy an outcome, not team management
One overloaded in-house mobile developerFreelancer or collective as reinforcementRaise the bus factor without hiring in a rush

Whatever the option, four rules avoid most bad surprises:

  1. Your repo, from day one. The code lives with you, PRs go through your review.
  2. Names, not profiles. Meet the people who will write the code.
  3. The exit written in the contract. Documentation, ADRs, runbooks, and pairing time.
  4. A diagnosis before a quote. An estimate without reading the code is a blind guess, whatever the model.

If you don't yet know where your app stands, start there: our free stack audit reads your package.json in 30 seconds and flags known vulnerabilities, abandoned libraries and overdue upgrades.

Sources

Common questions

How do you compare the cost of two freelance React Native developers?

On the total cost of an outcome, not on the daily rate. The daily rate multiplies a number of days, and that number is what varies most: a senior who has seen the problem before diagnoses it in a few days, where a less experienced profile searches, works around it, and then has to be reviewed and reworked. Add the time your team spends reviewing and arbitrating, and the cost of a regression in production. The cheapest profile per day is rarely the cheapest at delivery.

How long does it take to hire a senior mobile developer in France?

APEC measured an average of 12 weeks for the last hire of a cadre (salaried professional) in 2022, and wrote in 2022 that in IT, hiring often takes 3 to 6 months. Then comes the notice period: three months for engineers and cadres under the Syntec agreement. It can be shortened by mutual agreement, but day one often comes five to six months after the decision.

Is an agency safer than a freelancer?

It pools the risk: if a developer leaves, the agency puts someone else on the project, and the contract is about an outcome. In return, you talk to a project manager rather than to the people writing the code, and the seniority of the team actually assigned varies. Ask for the names and profiles of the people who will work in your repo before you sign.

What are the legal obligations when hiring a freelancer in France?

For any contract of €5,000 or more excluding VAT, Urssaf requires you to obtain a certificate of compliance (attestation de vigilance), and to check its authenticity, at signature, then every six months until the contract ends. If the freelancer works through umbrella employment (portage salarial), the engagement is capped at 36 months and must cover an occasional task or expertise your company lacks.

Can you combine several models?

It is often the best answer. An external team can launch or stabilize the app while hiring runs, then hand over to the in-house team. The condition is to plan the handover from the start: documentation, ADRs, shared code review, and pairing time with the person you hire.

Torn between hiring and getting outside help?

30 minutes with a senior to look at your situation and the format that will hold up. Free.