Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Delivering Fast Web Apps Faster

Delivering Fast Web Apps Faster

My talk for Google Developers Day Extended, Mumbai, presented at BookMyShow Office, Mumbai.

GIFs won't load here, so head over to the Google Slide for full experience: https://bit.ly/gddx-dec2017

Divjot Singh

December 09, 2017
Tweet

Other Decks in Programming

Transcript

  1. Brotli Compression Algorithm produces 20% smaller compressed files (compared to

    GZip) BUT! Compression time is painstakingly poor Solution: Compress files Ahead-of-Time caniuse.com/#search=brotli
  2. • File Compressions. • AoT Compressions. • WOFF2 Font format.

    Brotli, GZip, Ahead of Time, Web Fonts Compression
  3. “Essential Image Optimization” - eBook by Addy Osmani https://images.guide “According

    to the HTTP Archive, 60% of the data transferred to fetch a web page is images composed of JPEGs, PNGs and GIFs.”
  4. • File Compressions. • AoT Compressions. • WOFF2 Font format.

    • Image Optimizations. Brotli, Gzip, Ahead of Time, Web Fonts, PNG Minification, SVGs Compression
  5. • Babel-preset-env. • Feature detect with ES modules. • UA

    Sniffing for different bundles. • Polyfill.io does the same for polyfills. ship es2015? We can’t, but we can be smart about it.
  6. • React 16 ◦ 30% smaller (React docs) ◦ 20%

    faster (UI Benchmark) ◦ 50% faster SSR ◦ Streaming support • Alternatives ◦ preact/inferno for React ◦ Moon for Vue frameworks Upgrade them all!
  7. • Opens up optimizations • Critical CSS for free css-in-js

    A developer experience upgrade with perf benefits? Heck yes!
  8. App Search Home Content Footer Content Forms Main Items Sidebar

    Input Text Image Item 1 Item 2 About Button /home /search
  9. • Use NodeJS’s asynchronicity. • Stream HTML and inline CSS.

    • Stream inlined CSS. • Can give 5% win on TTI. streaming Users are many and impatient
  10. • Code split at route or even feature level. •

    Use browser cache effectively. • Smart service-worker naming & caching. Use the cache The point of cache gets ‘missed’ when you ‘invalidate’ everything with each build.