ReactFoo 2017

A conference on React

Siddharth Kshetrapal

Siddharth Kshetrapal

@siddharthkp

Building applications for the next billion users

Submitted Jun 3, 2017

There are 340 million internet users in India, that’s more than the entire population of the US. Sadly, 86% of them are on slow networks. These harsh conditions bring out the best architecture patterns for building performant applications.

That does not mean that the developer experience has to be terrible. Let’s talk about server rendering, loading strategies and progressive enhancement to fulfil the gold standard performance checklist without breaking a sweat.

Outline

Takeaways:

  1. Understand importance of performance for users + businesses
  2. Take-home performance checklist
  3. Architecture patterns that are friendly for developers + performant by default
  4. How can they implement these in their applications today

Outline:

-- Part 1: performance

  1. Why should you care about performance?
    1.1 Big numbers about the network spread in India (86% on slow networks)
    1.2 Some scary stats about impact of performance on user behaviour + businesses

  2. Understand web performance nicely
    2.1 How to measure performance
    2.2 Metrics that matter
    2.2 Network constraints

  3. What can I do to improve my application’s performance
    3.1 Performance budget
    3.2 Server side rendering (get to meaningful paint fast)
    3.3 Un-interactive interfaces (until javascript arrives, interactions don’t really work)
    3.4 Javascript loading strategies (serving the least amount, page-specific, code splitting, etc)
    3.5 Lazy loading good-to-have features, analytics et al (second level of code-splitting)
    3.6 Mention smaller frameworks (preact, react-lite, svelt, etc.)

  4. We can do even better (advanced)
    4.1 2 state architecture pattern
    4.2 Build static pages, enhance with javascript (progressive enhancement)
    4.3 Think of each interactive component having 2 states (example in slides)
    4.4 Use only static state on AMP pages and 2G and get that SEO juice.

  5. Cache + Prefetch
    5.1 Further optimisations: preload, h2 push
    5.2 Prefetch resources based on the next step in user’s journey (service worker)

  6. Enter React - What is so great about react
    6.1 Composibility
    6.2 Share-able components (tiny love letter to CSS-in-JS)
    6.3 We got a tooling upgrade (Code-splitting, tree shaking, hot module replacement)

-- Part 2: productivity

  1. React ecosystem + javascript fatigue
    7.1 js fatigue
    7.2 Abstractions for productivity
    7.3 creact-react-app (what is it great for, but where it fails in the perf checklist from 1.)
    7.4 view on react boilerplates
    7.5 architecture patterns that are friendly for developers + performant by default
    7.6 data fetching on the server (problem + solution)
    7.7 introduce my work: reaqt

  2. Sum up take aways for audience

Requirements

Intended audience:

Folks who have built a react application or two. This isn’t very beginner friendly.
webperf fans will love this.

Speaker bio

Why should you let me talk about this/Why am I excited about it?

  1. I spend a lot of time during my day job thinking about (and implementing) architecture patterns for a healthcare startup in India. (It is literally my job to talk about this :D)
  2. I am a regular speaker at ReactJS Meetup in Bangalore. Have talked about styling, testing, performance, designing and some more
  3. I make OSS projects for building performant apps easier: cost-of-modules, recreate, reaqt, css-constructor.
  4. I obsess over interfaces, web performance and developer experience.

Slides

https://bit.ly/billion-slides

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

A community - for and of - front-end engineers to share experiences with ReactJS, performant apps with React, crafting better User Interfaces (UI) with React and GraphQL ecosystem. ReactFoo also discusses design patterns and user experience. more