Where a page is assembled decides who can read it. There are two broad choices, and the difference matters most for the crawlers that do not run JavaScript.
With server rendering the server builds the full HTML and sends it complete. Whoever asks, a browser, Googlebot, or an AI crawler, gets the content in the first response. This is the safe choice for being read by everything.
With client rendering the server sends a near empty shell and some JavaScript, and the browser builds the page after it loads. A person sees a finished page because their browser runs the script. A non rendering crawler sees the empty shell, and to it your content does not exist.
Between the two sits a middle ground: render on the server for the first load, then let the browser take over. Frameworks name it different things, but the goal is the same, the content is in the initial HTML while the page still feels like an app. The test is simple: fetch the page without running JavaScript and see if your content is there. Topkay's see as bot does exactly that.