For a long time I reached for Redux on every project out of habit, even ones that barely needed client state at all. Next.js 15 changed that. Most of what used to live in a global store now belongs on the server, and the client-side state that is left over is usually small enough that Redux is overkill.
Here is how I actually decide where a piece of state should live now.
1. Most State Does Not Belong on the Client Anymore
This is the biggest shift from older React apps. Data fetched from a database, user profile info, a list of posts, none of that needs a client-side store when it can just be fetched directly in a Server Component.
// app/dashboard/page.tsx






