Deciding when to hydrate
Every interactive island adds JavaScript. Drawing island boundaries too wide ships unnecessary client code; too narrow breaks UX. Picking the right client directive (load, idle, visible, media) per component is a judgement call.