A React project can produce static files or require a running application server, depending on its framework and features. Identify the deployment output before choosing hosting. The presence of React in the source code does not, by itself, establish a need for Node.js on the production server.
IN THIS ARTICLE
01 Choose the correct deployment path
A static client-side build can usually be served by an ordinary compatible web host. Server-side rendering, application server routes and certain framework features need the runtime and deployment method specified by that framework. Check the actual build documentation and required services.
- Build the project using its documented production command in a compatible environment. Resolve build failures before uploading files.
- Review production environment variables. Values embedded in a browser bundle are public, so keep private API keys and database credentials on a trusted backend.
- For a static site, upload the generated output directory's contents to the intended document root, preserving its asset structure.
- Configure the correct public base path if the site lives in a subdirectory. For client-side routing, add a supported fallback to the application entry page without intercepting real files or backend API routes.
- For a server-rendered application, use an eligible Node.js or other required runtime and the framework's supported production start process.
- Enable HTTPS and test the public deployment independently from the local development server.
02 Test direct links and integrations
Open a nested route directly and refresh it. Check asset loading, login, API requests and form submission. Browser cross-origin restrictions and secure-cookie settings can behave differently on the real domain, so a working homepage is not sufficient verification.
Why might visitors see a blank React page?
Inspect the browser console and failed network requests. Common causes include a wrong asset path, missing environment value, stale cached bundle or backend URL. A routing fallback that returns HTML for JavaScript files can also break startup.
Keep a previous build for rollback and plan application-data changes separately. Do not run a development server as a permanent production solution or assume a static export preserves features that depend on server execution.