Kuroko SystemsConsult

Insights

Why we build in React — and when it is the wrong tool

4 min read

React is an open-source interface library built at Meta and maintained today by a very large community. It is what we reach for on most of what we build — the site you are reading is built in it — and not because it is fashionable.

What actually matters about a technology choice is not its list of advantages but what it saves in practice, and where it is the wrong tool. So both are here.

An interface made of parts

The interface is assembled from independent components — a form, a table, a button, a data view — each defined once and used everywhere it is needed.

That sounds like a technical detail, and its consequence is entirely commercial. When you decide to change how forms behave across the system, that is one change rather than forty screens. It is what keeps maintenance cheap over time, and you feel it in the second year rather than the first month.

Performance: what is true and what is less so

React's performance is usually explained through a mechanism called the Virtual DOM — it works out what changed on screen and updates only that. This is true, but it is not the reason a system is fast. Every modern interface library does something comparable, and several of them do it more efficiently.

What actually decides response time is how much data is sent, how many network round trips are in the way, and where the code runs. React gives you good control over all three — particularly with Next.js, which lets some of the work happen on the server so less of it reaches the browser.

A system that loads quickly is one where somebody designed the data flow. The library helps; it is not what does the work.

It sits well next to everything else

Most of what we build does not live alone: a dashboard pulling from a system you already run, an interface talking to a language model, a screen that updates when an automation finishes.

React is built around state that changes while you watch it, which is exactly this case. In practice it means a screen can update while a model's answer is still being written, or a row in a dashboard can change status the moment a background job ends — without the user clicking anything.

An ecosystem that saves time, in moderation

Almost every common problem — charts, tables with hundreds of thousands of rows, payments, accessibility — has a mature solution that has already spent years in other people's production.

That does not mean installing all of it. We tend to pick very few libraries and write the rest, because every external dependency is something that will need updating in two years and something you now rely on. The real advantage is having the choice, not having a lot of it.

Moving to mobile: what carries over and what does not

React Native lets you build for iOS and Android in the same language and the same way of thinking, which is a genuine advantage for a team already working in React.

It is worth being precise about what carries over. The business logic, the data layer, and the connections to other systems — yes, mostly. The interface itself is rebuilt, because a phone screen is not a web page and should not look like one. The saving is real and it is substantial, but it is roughly half a project rather than none of one.

And when it is not the answer

If what you need is a five-page marketing site updated once a quarter, React is more than the job requires. A static site or a straightforward content management system will do it for less money and far less maintenance.

And if you have an in-house team already working in another technology and fluent in it, that weighs heavily. A system your own people can maintain almost always beats a system that was written better and nobody there will touch.

React is a good default for interfaces with state, data, and interaction in them — admin systems, dashboards, web applications, and internal tools. It is not an automatic answer to everything.

That decision follows from what you need to build, and we say it before the work starts.

What we do about this

  • Web & Mobile AppsCustom web applications, iOS and Android, and a first version for startups — with authentication, permissions, and an architecture that holds as usage grows.
  • Websites & Landing PagesBrand sites, marketing sites, and campaign landing pages, handed over with a content system your own team runs without us.

Working on something like this?

Tell us the shape of the problem and you get back scope, risks, and a recommended way of working — usually within one business day.

Consult

All insights