Where React fits, and where it doesn't
Good fit
- An authenticated dashboard, admin console or configurator with complex, fast-changing local state
- The application screens of a multi-tenant SaaS product, built as components that stay independent of whichever API feeds them
- A component layer that has to be shared across several screens, or across more than one product
- A front end that reads a headless commerce or custom API back end, such as Laravel or Strapi
Another route fits better
- A public, content-led marketing site where search visibility matters more than interactivity, where WordPress usually fits better
- A storefront or content site that also needs server rendering and search-engine visibility by default, where Next.js is the framework decision to make first
- A short-lived internal form with no reusable screens, where a simpler template or a no-code tool reaches the same result faster
- A workflow where the back end and the screen are coupled tightly enough that a packaged platform's own admin interface already covers it; the headless versus traditional e-commerce guide covers that coupling decision directly
Implementation patterns
React itself supplies no data model, no routing and no server: it is the component and rendering layer, and a team wires state management, routing and data fetching around it, commonly through a framework such as Next.js once the screen also needs to be found by search or rendered on the server. What React does supply is a way to describe a screen as a tree of independent components that re-render only where their own state changed, which is why a dashboard or configurator built from many fast-changing panels tends to stay easier to reason about than the same screen built as one large server-rendered template.
On the multi-tenant cloud ERP record, React is part of the stack, with Next.js, Laravel and Strapi, for a US client that is not named; phase one, from 2020 to 2023, covered CRM, real-time messaging, HR, a knowledge base, custom fields and workflows, work and project management and API integrations, and the stack runs across PostgreSQL, MySQL, MariaDB and MongoDB on AWS; a later retail phase of that platform stays planned work, never presented as delivered. On the headless reward shop platform, delivered for a Dubai-based loyalty and rewards technology company that is not named, the same component model carries a different shape of product: a Next.js front end built on React renders one independently branded shop per client loyalty programme, over four delivery phases.
Trade-offs to weigh
- Component reach against the pieces you must add yourself. React's own component and state model is lean by design, so routing, data fetching, form handling and server rendering are deliberate additions, not defaults baked in.
- Interactivity against search visibility. A pure client-rendered React app suits an authenticated screen nobody needs to find through search, and struggles with the page-load speed and indexability a public storefront or content site needs without a framework such as Next.js in front of it.
- Ecosystem breadth against version churn. React's ecosystem of component libraries and state tools is large, and a team inherits the job of keeping those choices compatible with each other as React itself moves forward.
- A component library against a finished product. React describes screens; it does not decide tenancy, roles or a release process, which is why a SaaS product built on React is scoped as its own product rather than assembled from the library alone.
A worked scenario
A hypothetical logistics operator needs a dispatcher console with a live job board, driver assignment and a map view, all updating from the same event stream without a full page reload, plus a lighter customer tracking page that only needs to show one shipment's status.
- Milestone one builds the dispatcher console's core React components: the job board, the assignment panel and the map view, each subscribed to the same live data source.
- Milestone two adds role-based views so a dispatcher, a supervisor and an auditor see the same data shaped differently from shared components, rather than three separate applications.
- Milestone three ships the customer tracking page as a much smaller React surface, reusing the status components from the dispatcher console rather than rebuilding them.
Each milestone closes against a working screen a reviewer can click through, not a component library in isolation, since a set of components with nothing wired together is not evidence the console works.
Where AI fits on a React screen
AI earns its place inside a React screen as a feature a component calls out to, not as a rewrite of the rendering layer itself: a search box that calls a retrieval service, a panel that drafts a reply for an agent to approve, or a dashboard widget that surfaces an anomaly a person still has to act on; the AI-assisted software delivery guide covers how that same habit applies to building the screen itself, not only to what it calls. Netbase delivers remote-first from Hanoi in Agile increments with weekly reviews, using AI-assisted engineering under human review, and works with commercial and open-source AI models chosen per project. Because the heavier logic still runs as a service the component calls, adding an AI feature to an existing React screen is usually a new component and an API call, not a rebuild of the screens around it.
What to check before committing
React's own versioning policy follows semantic versioning: a major release such as 15 to 16 carries breaking changes, a minor release adds features or non-critical fixes, and a patch release is reserved for critical bugs and security fixes; the policy explicitly does not bump the major version for development-only warnings, unstable_-prefixed APIs, alpha or canary releases, or undocumented internals, which is why those changes can still land inside a minor release a team assumed was safe. The documentation at react.dev tracks only the latest major version, archiving each previous major at its own x.react.dev address once a new one ships; at the time of writing the latest documented version is 19.3. Confirm before scoping a build:
- Which major version, and whether the project depends on anything undocumented or
unstable_-prefixed, since those can change even inside a minor release. - Which framework, if any, sits above React for routing, data fetching and rendering, since React alone decides none of them.
- Which state-management approach fits the screen's own complexity, rather than adopting a library by default for a screen simple enough not to need one.
- Whether the screen needs to be found by search, which decides whether a framework such as Next.js belongs in front of the component layer at all.
These are delivered as Custom Product Engineering milestones. Netbase's delivery lifecycle: discovery and strategic alignment; team assembly and architecture planning; agile execution with outcome-based milestones; modular components; training and rollout; ongoing support. Most Netbase projects are agreed as fixed-scope contracts after discovery, and milestone-based arrangements are also available.
Failure modes
-
A framework decision skipped until the app is already large
Retrofitting routing, data fetching and rendering conventions onto a React codebase that grew without them costs more than deciding early.
-
An unstable_ or undocumented API treated as stable
React's own policy does not protect these from changing inside a minor release, so a team that depends on one inherits that risk knowingly or not.
-
State management added by default
A screen simple enough to need no shared state library at all still gets one, adding indirection a smaller screen never needed.
-
A component library confused for a finished product
Shipping components with no tenancy, roles or release process behind them is not the same as shipping a usable SaaS product.
What Netbase has built with React
React is part of the stack of the multi-tenant cloud ERP, for a client and product that are not named; phase one, from 2020 to 2023, covered CRM, messaging, HR, a knowledge base, custom fields and workflows, work and project management and API integrations. The underlying stack adds Next.js, Laravel and Strapi, spread across four database engines on AWS; a later retail phase stays planned work, never presented as delivered. On the headless reward shop platform, the same component model carries a different kind of application for a Dubai-based loyalty and rewards technology company that is not named: one independently branded reward shop per client loyalty programme, over four delivery phases.
Common questions
No. Next.js adds routing, server rendering and search visibility on top of React; an authenticated dashboard or configurator that nobody needs to find through search can ship as a plain React application instead.
Yes, when both are planned as one design system; the component layer stays the same, and what differs is the rendering strategy Next.js adds for the public-facing pages.
A React screen that calls an API contract agreed in advance is largely insulated from a back-end swap, as long as the contract's shape stays stable across the change; custom product engineering scopes that contract before the first screen is built.
No. This page is about web interfaces; a native or cross-platform mobile client is a separate technology and scoping decision, usually alongside a shared API.
Next.js decides the rendering and routing framework for a public-facing front end; this page decides the component library for the application screens behind a login, with or without Next.js in front of them.
Where Netbase applies this stack
Custom product engineering for a bounded release outcome
One defined release of your product, built to named outcomes and handed over with acceptance evidence.
Learn More
From interface decision to project
Bring the screens your users need, the API or back end they will call, and your plans for search visibility, and custom product engineering scopes the component architecture and state model before a line of code is written; the other platform pages sit under Technologies, and a product that is mostly a new SaaS workflow is scoped through SaaS product development instead. OutsourcingVN is operated by Netbase JSC and is Netbase's own outsourcing-services platform; submit a project with the screens a packaged platform has not been able to carry.