react 


REACT is for building the front end UI. It's basically a javascript/typescript library/framework, which makes it easier to write interactive html web pages.

The Javascript libraries come with react are so powerful that they can generate the HTML elements in a modular and handy way. Once compiled (built), it outputs the static HTML, Javascript and CSS files. Those static files can be hosted together as a website. The website can support dynamic input and update but those changes are implemented through the javascript. The core javascripts (libraries) are static. So essentially the web site files (HTML, javascript, CSS) are all static, the dynamic behaviour is run from the client side (i.e. in the browser). The web app can call APIs hosted in the back end through HTTP requests for querying or doing business, but again the request is lodged from within the browser through javascript. The business logic is behind the API on the back end.

Some common ways to host react web apps  are:

web platform:  github, netlify (static files only, no backend business logic

cloud: AWS S3 for static files + AWS Amplify for serverless backend

              Azure App Service 

Traditional web servers: Nginx, Apache HTTP Server (static files)

Docker: 'npm run build' command from within docker container, nice and clean

Serverless: AWS Lambda triggered by API gateway

                         Azure FUnctions


How about the backend business logic?

React simply calls the backend APIs (e.g. Restful, HTTP) using the native javascript's fetch, or Axios. Fetch is for simple http request. Axios has more features such as json parsing.

The backend API is completely independent of the frontend React web app. People can use Node.js for backend, or Python Flask for backend, or any other API or microservice solutions.