When you use client, it means the component is running in the browser. In this case, you can't directly await fetch because every time it renders, it fetches again and goes into a loop. You have to put fetch in useEffect and store the result in state. When you don't use client, it means the component is server-side. There, you can directly await fetch because it only runs once on the server and doesn't loop again.