These are principles I keep returning to when building applications on the Web. They are less about frameworks and more about the physics of the medium: latency, unreliability, and the browser’s own affordances.
- Server-render the first response. The user should see content, not a spinner.
- Act immediately on user input. Optimism beats accuracy for perceived speed.
- React to data changes. State should flow, not be pushed by hand.
- Control the data exchange with the server. Own your protocol.
- Don’t break history, navigation, or scroll restoration.
- Push code updates to the client, but never at the cost of an active session.
- Predict behavior. Preload and prefetch what the user is about to need.
None of these require a specific stack. They require treating the network as a first-class part of the interface rather than an implementation detail.