Monal Gupta
Blogs

2014 · 3 min read

7 principles of rich web applications

A set of principles for building web applications that feel immediate, resilient, and native to the Web.

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.

  1. Server-render the first response. The user should see content, not a spinner.
  2. Act immediately on user input. Optimism beats accuracy for perceived speed.
  3. React to data changes. State should flow, not be pushed by hand.
  4. Control the data exchange with the server. Own your protocol.
  5. Don’t break history, navigation, or scroll restoration.
  6. Push code updates to the client, but never at the cost of an active session.
  7. 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.

Written by Monal Gupta