~/talk

Pivoting to React, at scale

Talkat JSConf Iceland 2016 · 2016-08-25..08-26· [react, frontend-architecture]
slides:none on file

Pinterest pivots from Backbone/Django to React with a bottom‑up porting plan, finding 500k lines of web code and ~164 web engineers make gradual migration necessary. Concrete wins include 10% conversion lift on profile pages, 22% faster time to first interaction, reduced bundle size via a Backbone shim, and adoption of Redux plus a higher‑order data fetcher. Pain points are inconsistent CSS strategy, late testing with Enzyme, and messy data‑fetch/render coupling.

AI-written summary · about

  1. 0:00Intro
  2. 0:40Always be pivoting The last 20% of a rewrite takes 80% of your time
  3. 2:10Meet Denzel, 2013 web platform Built on Backbone.js and Django
  4. 2:59Problems with Denzel Performance bottlenecks, CSS/JS bloat, dual code paths
  5. 4:05And more ES6, NodeJS, Babel, Webpack
  6. 4:56Defining "at scale"
  7. 5:31Pivoting smarter What data structure is a web application most like?
  8. 5:54It's a tree
  9. 6:41Things we did right
  10. 8:31Backbone lite 80% of the functionality, none of the dependencies
  11. 8:59Declarative states
  12. 10:15Scaling communications
  13. 12:00Mistakes were made
  14. 12:48Suggested learning order: React, ES6, npm, JS bundlers, routing. Flux Redux
  15. 13:00No top-down strategy
  16. 13:31Keeping HTML structure
  17. 13:51Data flow
  18. 14:19Coupling fetching data and rendering
  19. 15:02Testing
  20. 15:30The true value of React Testability, not speed
  21. 15:48CSS strategy Or lack thereof
  22. 16:34Conclusions
  23. 17:06DNA == code (This expression would fail a strict equality check)
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.