What actually changes when a component becomes a Server Component?
It runs only on the server, so it never ships JavaScript to the browser and can talk to a database directly, but it cannot hold state, use effects, or attach handlers. The real design work is drawing the boundary: interactive leaves stay client components, and everything above them can be server. Marking a component "use client" makes everything it imports client too, which is how bundles quietly stop shrinking.