Nathan Gwyn
Back to blog
Programming2026-03-194 min read

Making the site feel live without overengineering it

Small client-side updates, short cache windows, and where I draw the line before a feature becomes infrastructure.

reactnextjsfrontendcaching

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.

When the practical approach works
Small, reliable decisions usually beat overengineering.

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. 🫡