The actual problem 🔴
I wanted the Twitch live badge in the nav to update without making people refresh the page. The easy trap there is reaching for the fanciest possible solution before the problem earns it. Small UI problems do not always deserve big infrastructure.
For a portfolio site, a tiny client component that checks the latest status every so often is usually enough. It keeps the site feeling alive without turning a small UI detail into a real-time systems project.

Where the line is 🎯
If I had thousands of concurrent users or needed instant updates, I would look harder at event-driven flows. For this site, short-lived caching plus a light polling interval is the pragmatic answer.
That tradeoff matters to me. I like interfaces that feel fast and current, but I also like knowing when to stop building infrastructure for a problem that can be solved with one calm, boring decision. 🫡