A full-stack application combines a client (a browser, here React) and a server (a Node API) that communicate over HTTP and JSON according to an API contract, with a database behind them. Each part has its own responsibility: the client displays and collects, the server enforces the rules and protects the data.