Robert Dominguez
← All notes
Indie & SaaS

What to charge: hourly rates for senior React and frontend contractors in Czechia

Realistic rate bands for senior React / React Native / full-stack contractors in Czechia, how a direct client differs from an agency, and how to make the case for a raise.

Most conversations about money in Czech IT end at monthly gross salaries for employees. But plenty of senior developers invoice instead — and for them a completely different number matters: the hourly rate. That number is barely published anywhere, so people end up riding for years on a rate they once picked blind.

This is an attempt to pull together what public sources actually say about rates, and more importantly: how to tell whether you're below market.

Before you read on

This is for you if most of these apply:


You invoice as a contractor — not as an employee.
You have 5+ years of experience in React / React Native / full-stack.
You work remote or hybrid, for a Czech or EU client.
Your current rate came from a guess, not from comparing against market data.

If you're an employee, the numbers below are mainly useful for working out what you'd have to invoice for going independent to make sense.

The short answer

The realistic band for a senior React / full-stack developer on a direct contract in Czechia is roughly 1,000–1,800 CZK/h. The most widely cited public overview, the 2026 salary guide for developers in Czechia (in Czech), goes even higher: "seniors invoice 1,500–3,500 CZK/h". That is the upper end, though — it fits consultants, architects and narrow specialists more than a typical product developer.

In practice:

Situation What's normal
Senior, direct client, Czechia 1,000–1,800 CZK/h
Senior via an agency (body shop) 700–1,100 CZK/h (the agency takes a cut)
Senior, remote for an EU client €40–70/h ≈ 1,000–1,750 CZK/h
Marketplaces (e.g. Webtrh) 500–900 CZK/h, prices pushed down

If you're a senior below 900 CZK/h, you're below market. Somewhere around the seven-hundred mark you're into the band a mid-level developer usually sees — and when a senior ends up there, it usually means someone between them and the end client is taking a large margin.

Where these numbers come from

Let's be honest up front: data on contractor hourly rates in Czechia is thin. The hardest primary surveys — the Hays IT Contracting Guide for the Czech market and the Grafton Salary Guide — keep their actual figures behind a registration form. What's publicly available is:

That's why this article gives ranges rather than a single number. Anyone claiming "a senior React developer in Czechia makes exactly X" either made it up or is quoting one job ad.

Employee salaries, on the other hand, are well documented. For reference, from the same guide: junior 40–65k CZK/month gross, mid 70–110k, senior 110–160k, lead/principal 140–200k. For mid-level React/TypeScript specifically, 90–130k CZK.

Converting a salary into a rate

Gross salary and an hourly rate aren't comparable one to one. A contractor gets no paid holiday, no sick leave, no severance, and nobody buying their laptop or training. A rough conversion:

(monthly gross salary ÷ 160 h) × 1.3 to 1.5 = ballpark hourly rate

For a senior on 130k gross that lands at 1,050–1,220 CZK/h. That's an independent check on the upper band — and a quick test of your own rate: multiply it by 160 and divide by 1.4. If the salary that comes out is what a mid-level developer earns where you are, you're below market.

The 1.3–1.5 multiplier isn't arbitrary. A director of one Czech contracting agency puts it this way: "Contractor pay tends to be 30%, sometimes as much as 50%, higher than an employee's salary."

Direct client vs. agency: where the money goes

This is the most important part of the article and the part most people never look into.

Body shopping — contracting through an agency that "lends" you to an end client — is the standard model in Czech IT. The agency pays you X and invoices the client X plus a margin. A global overview of React developer rates puts agency premiums at 30–50% over freelance rates; other sources say 20–50%.

In practice: for every thousand crowns you take home, the client sees an invoice for 1,300–1,500. That gap is your negotiating ammunition. Not the feeling that "I've been here a long time", but the concrete knowledge that someone is collecting a difference for having introduced you once.

What to do about it:

  1. Find out whether there's an intermediary at all. It isn't always obvious — the agency presents itself as a "partner" while you sit in the client's team.
  2. Ask what they invoice. Some will tell you, some won't; the reaction itself is information.
  3. Consider going direct. Most contracts have a non-solicitation clause — read it before you do anything else.

Location doesn't set a remote rate

A common myth: "I live outside the capital, so I can't ask for capital rates." On a remote contract the rate is set by the client and the technology, not by where your kitchen is. The salary guide above sums it up in one line: "Remote within Czechia: salary usually at capital level, cost of living at regional level = higher real purchasing power."

In other words, your region is an advantage on the cost side, not a reason to discount on the income side.

Where rates differ the most

Marketplaces vs. direct contracts

Czech marketplaces like Webtrh compete on price and the level is visibly lower — frontend developers there advertise roughly 500–900 CZK/h. As one forum discussion put it: "In the real world this rate can be about three times higher… Here, prices are generally pushed way down."

That's not a reason to ignore marketplaces — they're a legitimate channel for getting started or filling capacity. It's a reason not to treat their level as a reference for what you're worth.

If you do respond to a listing there:

  • Quote packages, not hours. "A feature scoped at ~30–45 h = 30–45k CZK" reads as more predictable to a client than an hourly rate they'll haggle over.
  • Ask for at least 850–1,100 CZK/h. Above the median, but not so high that you're out in round one.
  • Differentiate on quality, because you can't win on price — there is always someone cheaper.

Regulated industries pay a premium

Banks, insurers and fintechs have been subject since 17 January 2025 to the DORA regulation on digital operational resilience (in Czech), which also reaches their ICT suppliers — including external developers. Higher demands on security, documentation and auditability mean more expensive people. If you work in a regulated environment for the same money as on a regular e-shop, you're underselling.

React Native cuts both ways

Globally, React Native carries a 15–35% premium over plain React. In Czechia that's offset by some agencies treating RN as a fading technology — but senior RN developers are genuinely scarce here. Scarcity is real leverage: someone has to maintain those existing apps, and if you're one of the few who can, the price follows.

Going abroad is the fastest way up

Compared with neighbouring and western markets:

Market Typical senior rate
CEE contractor for an EU client €40–70/h ≈ 1,000–1,750 CZK/h
DACH (Germany, Austria, Switzerland) $80–115/h ≈ 1,850–2,650 CZK/h
UK, contract median £600/day, London £750/day
Upwork, React globally median $63/h (range $51–75/h)

The UK figures come from a statistic of contractor day rates taken from job ads, which tracks medians over the trailing six months.

Even the lowest western rate (€40/h ≈ 1,000 CZK/h) beats what a large share of Czech seniors earn. If you can handle a call in English and work remotely, a foreign client is the fastest way to move up — and, incidentally, the best reference point when negotiating with Czech clients.

How to ask for more without losing the contract

Raising your rate by a third or a half sounds drastic, but if you've been riding the same number for years, it's simply catching up with the market. What works:

  1. Anchor above your target. Want 1,100? Ask for 1,300. Leaving room to concede is part of the game.
  2. Argue from the market, not from need. "Public guides put senior contractors at 1,500–3,500 CZK/h and I'm asking 1,200" is a different sentence from "I need more, rent went up".
  3. Point at the cost of replacing you. Onboarding someone new into a non-trivial project takes months — more than the difference you're asking for. On long-running contracts this is the strongest argument there is.
  4. Decide your walk-away number in advance. And have an alternative lined up. Negotiating without one is just asking nicely.
  5. Don't bluff. If you say "otherwise I'm leaving", expect someone to accept it.

When to rethink your positioning

A few thresholds worth watching:

  • Getting repeated offers at ≥ 1,300 CZK/h or ≥ €55/h remote? Stop taking anything below 1,000 CZK/h.
  • Been searching actively for 2–3 months and nobody goes above 900 CZK/h? The problem isn't the market, it's positioning — portfolio, references, or too generic a specialisation.
  • Down to one client through one agency? Diversify. A single additional direct client usually does more for your income than years of small raises.

The takeaway

A rate isn't a reward for how good you are. It's a price you agree on — and it follows from what you know about the market, how many alternatives you have, and whether someone stands between you and the client. Most people are below market simply because they never tried to compare.

Treat the numbers above as guard rails rather than a price list — and above all, as a reason to ask next time.

Sources

Figures are current as of the dates given by each source (mostly 2025 – first half of 2026). Exchange rates used for conversion: 25 CZK/€, 23 CZK/$.

Robert Dominguez
Robert Dominguez

Senior frontend and React Native developer. Mobile banking by day, my own apps in the store by night.

Get in touch →

Got a project my hands would be useful on?