1. Reconcile + Schedule

    1. https://twitter.com/jordwalke/status/959018527091904512
    2. https://twitter.com/jaredpalmer/status/1353013045082124293
    3. https://www.youtube.com/watch?v=mDdgfyRB5kg
  2. Minimal API Surface Area

    1. https://www.youtube.com/watch?v=4anAwXYqLG8
    2. Composition as a Tool for Abstraction
      1. https://github.com/reactjs/react-basic#abstraction
      2. hooks → make it easy to extend - growing a language

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d8ccf3c3-a52a-43fc-aea0-cfd6b1afa6df/Untitled.png

    1. no clientside routing, no global state, no styling
  3. API Design is Language Design

    1. the lee byron api design https://reactjs.org/blog/2016/09/28/our-first-50000-stars.html#api-churn

    2. https://twitter.com/sophiebits/status/1055711623845826560

    3. naming things - sapir whorf

    4. UI before API

    5. Hacks, Then Idioms - HOCs, Render props. my headless component idea

      1. https://twitter.com/davidkpiano/status/1045313026419814403?s=21

      https://s3-us-west-2.amazonaws.com/secure.notion-static.com/10a5102e-697c-4fa0-8830-682f7ef441d0/Untitled.png

      https://s3-us-west-2.amazonaws.com/secure.notion-static.com/07e27ef3-8c9e-4229-a902-560f67d67031/Untitled.png

    6. https://www.sarahtownsendeditorial.co.uk/2019/07/when-two-become-one-compound-words-and-how-to-use-them/

    7. incremental path → no angular v2

  4. Optimize for Change

    1. hooks and RSCs
    2. https://overreacted.io/optimized-for-change/
    3. order doesnt matter
    4. hard to replace code replaces easy to replace code over time
    5. Optimize for:
    1. Enable Local Reasoning https://overreacted.io/what-are-the-react-team-principles/#enable-local-reasoning
      1. https://sophiebits.com/2020/01/01/fast-maintainable-db-patterns.html
    2. Colocation
    3. Progressive complexity https://overreacted.io/what-are-the-react-team-principles/#progressive-complexity
  5. Test the Public API

    1. https://engineering.fb.com/2017/09/26/web/react-16-a-look-inside-an-api-compatible-rewrite-of-our-frontend-ui-library/
    2. feature flags
    3. jest suite pass. test public api only
    4. isfiberreadyyet
    5. dogfooding
    6. public rollout
    7. react testing library
  6. Developer tools not optional

    1. react devtools and profiler
    2. dev mode warnings, lint rules
    3. codemods
    4. Errors are API - error codes - dont make me think
    5. docs
    6. fixtures https://reactjs.org/blog/2017/12/15/improving-the-repository-infrastructure.html#creating-manual-test-fixtures & infinite loops
    7. track bundle size https://reactjs.org/blog/2017/12/15/improving-the-repository-infrastructure.html#tracking-bundle-size
  7. Build Community

    1. jsx confusion https://twitter.com/jordwalke/status/922929548689260544?s=20
    2. original https://www.youtube.com/watch?v=GW0rj4sNH2w
    3. revised https://www.youtube.com/watch?v=x7cQ3mrcKaY
      1. reduced JSX - its not about HTML in your javascript
      2. meeting people where they were
      3. UI being function of State
    4. https://futureofcoding.org/episodes/011 brandon bloom, david nolen - 39 mins clojurescript community
    5. http://swannodette.github.io/2013/12/17/the-future-of-javascript-mvcs/
    6. Replied to every single one of them, "viewed them as my fault" 41mins.
    7. IRC 24/7, Stackoverflow, Recruit and keep those people engaged
      1. Community
        1. Code of conduct for community https://www.youtube.com/watch?v=UxoX2faIgDQ 49mins
        2. i18n https://reactjs.org/blog/2019/02/23/is-react-translated-yet.html
    8. dogfood - Messenger and Instagram.com
    9. Renderers and Distros
      1. make it easy to start
      2. core ships stability, distros solve DX
  8. Roadmaps optional

    1. the suspense saga
    2. hooks fiasco
    3. context
    4. Server Components

We learned that we shouldn’t put all the logic on the client. We learned that initial HTML should stream instead of waiting for all data. We learned that large blocking JSON blobs are bad. Waterfalls bad, but colocation good. Loading too much is bad, loading too late is also bad.

Fall in love with the problem

Not the solution