Redux in 2025: Is It Still Worth Learning?

With so many state management options now, is Redux still relevant? Let's talk about when it makes sense and when it doesn't.

The State of State Management

When I started with React, Redux was basically *the* answer to state management. These days? The landscape is way more crowded.

The Competition

  • **Zustand** - Simple, lightweight, hooks-based
  • **Jotai** - Atomic state, very minimal
  • **Recoil** - Facebook's answer (though it seems abandoned?)
  • **React Context** - Built right in
  • **React Query / TanStack Query** - Server state specifically
  • **Signals** - The new hotness

So why would anyone still use Redux?

When Redux Makes Sense

Large Teams

Redux's strict patterns (actions, reducers, selectors) make it easier for big teams to stay consistent:

// Everyone knows exactly where to look
const userReducer = (state = initialState, action) => {
  switch (action.type) {
    case 'user/login':
      return { ...state, isLoggedIn: true, user: action.payload };
    case 'user/logout':
      return { ...state, isLoggedIn: false, user: null };
    default:
      return state;
  }
};

The boilerplate that people complain about is actually documentation.

Complex State Logic

If you have state that depends on other state, or complex transformations, Redux Toolkit's `createSlice` is pretty nice:

const cartSlice = createSlice({
  name: 'cart',
  initialState: { items: [], total: 0 },
  reducers: {
    addItem: (state, action) => {
      state.items.push(action.payload);
      state.total = state.items.reduce((sum, item) => sum + item.price, 0);
    }
  }
});

DevTools

The Redux DevTools are still unmatched. Time travel debugging, action replay, state diff... it's genuinely useful for debugging complex apps.

When to Skip Redux

Small to Medium Apps

If your state is mostly:

  • A logged-in user
  • Some UI toggles
  • Data from API calls

Just use React Query for the server stuff and Context or Zustand for the rest. Redux is overkill.

Server State

This is the big one. Most "state" in apps is actually cached server data. React Query handles this way better than Redux ever did:

const { data, isLoading } = useQuery({
  queryKey: ['user', userId],
  queryFn: () => fetchUser(userId)
});

No actions, no reducers, no normalization headaches.

My Take

I still use Redux on big enterprise projects where I need that structure. For personal projects or startups? Usually Zustand + React Query.

The answer isn't "Redux is dead" - it's "use the right tool for the job."

What are you using for state management these days?

Back to Journal