Server Client Transition# renders any single page of a JavaScript app into an HTML string, and then sends it as a response to the client. From that point on, the client JavaScript app (React, Angular, Ember, Preact, Vue etc...) takes control. There are 2 issues to making this server to client transition graceful:

  1. state (XHR/websocket requests that your app makes)
    • has a sensible default (caching XHR with a monkey patch) but there are better options
  2. DOM
    • most React apps don't have to worry about this, but when there are problems, here's how to debug
    • non React apps, use preboot

Either of those issues can result in a "flash" or "blink" where the app re-renders to a zero/empty state before fully rendering again.