For weeks, the saved-articles feature in one of my side projects worked fine. useState held the list, a save button pushed to it, a sidebar rendered it. Every manual test passed. Then a user reported that saving an article in one tab made it vanish from the sidebar in another tab — and sometimes an article they'd just unsaved would come back a few seconds later, unsaved-then-resaved, like the app couldn't make up its mind.

I couldn't reproduce it for a day. I only had one tab open. That should have been my first clue.

The setup that looked fine

The saved-articles state lived exactly where every React tutorial tells you to put it:

function useSavedArticles() {