← Frontend Case Studies
All Companies
<div>RIOTS
18F
1Password
Aha!
Airbnb
ALDO Group
Algolia
Allegro
Amazon
Artsy
Atlassian
Australian Broadcasting Corporation
BBC
Betty Crocker
Bitmovin
Bloomberg
Booking.com
Botify
Bumble
BuzzFeed
Campaign Monitor
Carousell
cars.com
Checkbot
Clearleft
Cloud Four
Cloudflare
CodeSandbox
Condé Nast
Conductor
Coursera
Datadog
DAZN
De Voorhoede
DEV
Discord
DoorDash
Dropbox
eBay
EdgeDB
Ele.me
Electronic Arts
Etsy
Evil Martians
Expedia Group
ezCater
FARFETCH
fastq.bio
Figma
Financial Times
Flickr
Flipboard
Flipkart
Flocktory
Futurice
Garbarino
GitHub
GitLab
GoDaddy
Goibibo
Google
GOV.UK
grammarly
Gusto
HealthCare.gov
Heap
Hootsuite
in der Apotheke
Infinite Red
Insider Inc.
Instagram
Intercom
Internet Archive
Intuit
InVision
Khan Academy
Kickstarter
Klarna
Line
LinkedIn
Lucidchart
Lyft
Mail.ru
Mailchimp
MDN
Medium
MemSQL
Mercado Libre
Meta
Microsoft
Mixmax
Mixpanel
Monzo
Mozilla
Mud
Myntra
Netflix
NextRoll
Notion
npm
OK GROW!
OYO
Oyster
Palantir
PayPal
Pinafore
Pinterest
Pivotal Tracker
Plaid
Preply
Product Hunt
Proton
Quizlet
Quora
REA Group
Reaktor
Reddit
Redmart
repl.it
Revolut
Roompact
Safety Culture
Salesforce
Scratch
Sentry
Shopify
Skillshare
Slack
Snipcart
SoundCloud
Spectrum
Spotify
Stack Overflow
stripe
SumUp
Superhuman
TakeShape
The Guardian
The Knot Worldwide
The New York Times
The Telegraph
The Times & The Sunday Times
The U.S. Digital Service
The Wall Street Journal
This Also
ThomasNet
Thread
Tinder
Tines
Tiny
Tokopedia
Treebo
Trivago
Tumblr
Twitch
Twitter
Uber
Udacity
Unity
Unsplash
Vercel
Walmart Labs
Wikimedia
Wingify
Wix
Yelp
YNAB
YouTube
Zajno
Zynga
↑ Back to Top
<div>RIOTS
1
A story of how we migrated to pnpm
<div>RIOTS
January 2022
18F
3
A token of our affection - A field guide to USWDS 2
18F
April 2020
Building a large-scale design system: How we created a design system for the U.S. government
18F
October 2017
Developing the Draft U.S. Web Design Standards’ UI components
18F
April 2016
1Password
2
How we used esbuild to reduce our browser extension build times by 90%
1Password
May 2024
From dark to light and back again
1Password
November 2018
Aha!
1
How I Convinced Our CTO to Switch From CoffeeScript to ES6
Aha!
September 2017
Airbnb
21
Accelerating Large-Scale Test Migration with LLMs
Airbnb
March 2025
Adopting Bazel for Web at Scale
Airbnb
November 2024
How Airbnb Smoothly Upgrades React
Airbnb
July 2024
Rethinking Text Resizing on Web
Airbnb
May 2024
Improving Performance with HTTP Streaming
Airbnb
May 2023
Airbnb’s Trip to Linaria
Airbnb
June 2022
Faster JavaScript Builds with Metro
Airbnb
May 2022
Measuring Web Performance at Airbnb
Airbnb
December 2021
A Deep Dive into Airbnb’s Server-Driven UI System
Airbnb
June 2021
Building a Faster Web Experience with the postTask Scheduler
Airbnb
May 2021
ts-migrate: A Tool for Migrating to TypeScript at Scale
Airbnb
August 2020
Building (And Re-Building) the Airbnb Design System
Airbnb
October 2019
Adopting Typescript at Scale
Airbnb
June 2019
How Airbnb is Moving 10x Faster at Scale with GraphQL and Apollo
Airbnb
December 2018
Operationalizing Node.js for Server Side Rendering
Airbnb
July 2018
React Native at Airbnb
Airbnb
June 2018
Server Rendering, Code Splitting, and Lazy Loading with React Router v4
Airbnb
January 2018
React Performance Fixes on Airbnb Listing Pages
Airbnb
December 2017
Migrating from Mocha to Jest
Airbnb
June 2017
Rearchitecting Airbnb’s Frontend
Airbnb
May 2017
Turbocharged JavaScript Refactoring with Codemods
Airbnb
April 2016
ALDO Group
1
The Impact of Web Performance
ALDO Group
February 2020
Algolia
2
Using NetInfo API to Improve Algolia’s JavaScript Client
Algolia
July 2019
Improving Web Performance to Mirror Engine Speed
Algolia
July 2017
Allegro
15
INP — what is the new Core Web Vitals metric and how do we work with it at Allegro.
Allegro
July 2024
Embed multicolor icons using a single DOM element
Allegro
January 2024
Vanilla JS is not dead! Microfrontends without web performance issues.
Allegro
November 2022
Why should we rewrite enzyme.js to react-testing-library and how to do that?
Allegro
February 2022
How we refactored the search form UI component
Allegro
October 2021
Evolution of web performance culture
Allegro
September 2021
How to turn on TypeScript strict mode in specific files
Allegro
September 2021
CSS Architecture and Performance in Micro Frontends
Allegro
July 2021
Making API calls a seamless user experience
Allegro
July 2021
Measuring Web Performance
Allegro
June 2021
Using ESLint to improve your app’s performance
Allegro
August 2020
Performance of JavaScript optional chaining
Allegro
November 2019
Page visibility and performance metrics
Allegro
September 2019
Why Allegro Ads chose TypeScript
Allegro
April 2019
Managing Frontend in the Microservices Architecture
Allegro
March 2016
Amazon
2
How Prime Video updates its app for more than 8,000 device types: the switch to WebAssembly increases stability, speed
Amazon
January 2022
How we halved the publish size of modular AWS SDK for JavaScript clients
Amazon
October 2021
Artsy
28
Two years of Next.js at Artsy: A Retrospective
Artsy
March 2024
TypeScript magic
Artsy
March 2023
Parallelizing Jest and Cypress.io Tests on CircleCI
Artsy
September 2022
Hacking Around Safari's 7-day Cookie Limit
Artsy
August 2022
Using Context to Simplify a VERY Large React Form
Artsy
February 2022
Accessing the Relay Store Without a Mutation
Artsy
April 2021
Testing React Tracking with Jest and Enzyme
Artsy
April 2021
Relay Pagination Containers Demystified
Artsy
August 2020
Effortless Pagination with GraphQL and Relay? Really!
Artsy
January 2020
CSS is Hard and Other Things I Learned Working on the 2019 Artsy Vanguard
Artsy
October 2019
Server-Rendering Responsively
Artsy
May 2019
What is TypeScript?
Artsy
April 2019
React Native at Artsy, 3 years later
Artsy
March 2019
The Anatomy of an Editorial Feature
Artsy
March 2019
From TSLint to ESLint, or How I Learned to Lint GraphQL Code
Artsy
January 2019
GraphQL: Union vs. Interface
Artsy
January 2019
GraphQL Stitching 101
Artsy
December 2018
Switch from Capybara Webkit to Chrome
Artsy
November 2018
Keeping Artsy's dependencies up to date
Artsy
November 2018
React Native, 2 years later
Artsy
March 2018
Modernizing Force
Artsy
September 2017
Making Artsy Editorial Accessible
Artsy
August 2017
Exploration: Front-end JavaScript at Artsy in 2017
Artsy
February 2017
JSON Web Tokens: Artsy's Journey
Artsy
October 2016
Helping the Web Towards OSS by Default
Artsy
September 2016
React Native at Artsy
Artsy
August 2016
The Tech Behind Live Auction Integration
Artsy
August 2016
Rendering on the Server and Client in Node.js
Artsy
November 2013
Atlassian
12
Designed for delight, built for performance: The journey of pragmatic drag and drop
Atlassian
December 2024
Rendering like Butter – a Confluence Whiteboards Story
Atlassian
August 2023
A Trello feature froze, but engineering didn’t: How we fixed an unreproducible React bug
Atlassian
July 2022
Colorful and accessible theming in Trello with CSS custom properties
Atlassian
July 2022
Performance in Jira front-end: solving bundle duplicates with Webpack and yarn
Atlassian
December 2020
Performance in Jira front-end: using modern bundles to improve load time
Atlassian
December 2020
Performance in Jira front-end: the story of a single line of code
Atlassian
November 2020
Improving performance through better architecture
Atlassian
June 2020
Scaling React server-side rendering in Jira Cloud
Atlassian
February 2020
Using an event-driven architecture to improve Jira Software responsiveness
Atlassian
November 2019
A look at Trello: adopting GraphQL and Apollo in a legacy application
Atlassian
August 2019
Trellisheets: How we spin up CSS for Trello sites with ease
Atlassian
March 2016
Australian Broadcasting Corporation
5
How we optimise front-end component reuse at the ABC
Australian Broadcasting Corporation
February 2024
Branding for ABC Websites
Australian Broadcasting Corporation
December 2021
Migrating the platform that powers ABC sites to TypeScript
Australian Broadcasting Corporation
September 2021
From data to DOM: Building a text rendering pipeline for React
Australian Broadcasting Corporation
October 2019
Composing Components
Australian Broadcasting Corporation
September 2018
BBC
7
Optimising BBC Online’s Code Splitting Strategy
BBC
May 2022
Sounds Web Next: a “persistent player” prototype for BBC Sounds
BBC
December 2021
Solving the problem with NPM Link and React Hooks
BBC
November 2021
The lessons learnt creating a design system for BBC Online
BBC
November 2020
How BBC Interactive Content Works Across AMP, Apps, And The Web
BBC
March 2018
HTTP/2 is easy, just turn it on…
BBC
November 2017
Redefining the BBC News core experience
BBC
July 2016
Betty Crocker
1
Wake Lock API case study: 300% increase in purchase intent indicators on BettyCrocker.com
Betty Crocker
May 2020
Bitmovin
3
To Play, or Not to Play #2 – Firefox blocks audible autoplay by default!
Bitmovin
February 2019
To Play, or Not to Play – New AutoPlay Policies for Safari 11 and Chrome 64
Bitmovin
September 2017
How Bitmovin Used React/Redux to Develop Its New Dashboard
Bitmovin
September 2017
Bloomberg
3
10 Insights from Adopting TypeScript at Scale
Bloomberg
November 2020
wsk: A Straightforward and Maintainable Build System from the Bloomberg Graphics Team
Bloomberg
December 2017
How Bloomberg Used React Native to Develop its new Consumer App
Bloomberg
December 2016
Booking.com
7
How we built our multi-platform design system at Booking.com
Booking.com
March 2023
How we adapted the Booking.com mobile site for the iPhone X notch.
Booking.com
November 2017
Implementing system fonts on Booking.com — A lesson learned.
Booking.com
March 2017
Progressive Web Apps with Service Workers
Booking.com
April 2016
Responsive email
Booking.com
September 2015
Automating CSS Sprites for Large Organisations
Booking.com
May 2014
Custom Browser Extensions for Front End Developers
Booking.com
January 2014
Botify
2
My Chart Will Go On: How we built our in-house Visualization library at Botify
Botify
April 2020
Lessons learned in 2 years with a JavaScript/React Monorepo
Botify
June 2018
Bumble
18
Interface localisation: adapting text fields for RTL languages
Bumble
December 2020
How to move large-scale React UI-components codebase to TypeScript
Bumble
September 2020
Design Tokens beyond colors, typography, and spacing
Bumble
November 2019
Covering A/B tests with UI tests: how to avoid getting tangled up in your own code
Bumble
February 2019
Generating multi-brand multi-platform icons with Sketch and a Node.js script: from the idea to the assets Sketch files
Bumble
December 2018
Generating multi-brand multi-platform icons with Sketch and a Node.js script: the build script and the generation of the assets
Bumble
December 2018
Optical alignment for frontend developers: why is it not the same as it is for designers
Bumble
November 2018
Optical alignment for frontend developers: how can the process be automated
Bumble
November 2018
How to manage your Design Tokens with Style Dictionary
Bumble
September 2018
Translating Dust templates to JSX
Bumble
May 2018
From zero to Cosmos: part 1
Bumble
February 2018
From zero to Cosmos: part 2
Bumble
February 2018
From zero to Cosmos: part 3
Bumble
February 2018
Hot localisations update: part 1
Bumble
November 2017
Hot localisations update: part 2
Bumble
November 2017
Translating interfaces into almost fifty languages: Sketch
Bumble
October 2017
The painless way to collect statistics from a web-site
Bumble
May 2017
How to teach a web app to speak 100 languages: the specifics of localisation
Bumble
March 2017
BuzzFeed
5
CLS at BuzzFeed — Part 1: Raising The Floor
BuzzFeed
November 2021
CLS at BuzzFeed — Part 2: Getting Help From Real Users
BuzzFeed
November 2021
CLS at BuzzFeed — Part 3: Dealing with the unpredictable
BuzzFeed
November 2021
Accessible BuzzFeed
BuzzFeed
August 2020
Micro Frontends at BuzzFeed
BuzzFeed
September 2019
Campaign Monitor
3
How to test accessibility of emails
Campaign Monitor
June 2018
Better video previews for email
Campaign Monitor
December 2016
Fixing bugs with Outlook specific CSS
Campaign Monitor
November 2016
Carousell
7
Optimising Core Web Vitals at Carousell
Carousell
February 2022
Assembling Robust Web Chat Applications with JavaScript: An In-depth Guide
Carousell
December 2019
An Experiment with JSON Schema
Carousell
April 2019
Building a Dynamic UI System at Carousell (Part 3)
Carousell
March 2019
Building a Dynamic UI System at Carousell (Part 2)
Carousell
February 2019
Building a Dynamic UI System at Carousell (Part 1)
Carousell
February 2019
How we made Carousell’s mobile web experience 3x faster
Carousell
October 2018
cars.com
1
How Cars.com Developer Mac Heller-Ogden Convinced His Bosses to Adopt Node.js
cars.com
July 2017
Checkbot
1
Scalable & lightweight web screenshots with SVG
Checkbot
November 2018
Clearleft
2
A framework for web performance
Clearleft
September 2018
How to use variable fonts in the real world
Clearleft
January 2018
Cloud Four
1
All Mixed Up: Isomorphic Sorting Gone Wrong
Cloud Four
October 2019
Cloudflare
9
Dark Mode for the Cloudflare Dashboard
Cloudflare
September 2021
Moving from reCAPTCHA to hCaptcha
Cloudflare
April 2020
Migrating to React land: Gatsby
Cloudflare
March 2020
Fast Google Fonts with Cloudflare Workers
Cloudflare
November 2018
Real URLs for AMP Cached Content Using Cloudflare Workers
Cloudflare
November 2018
How we made our page-load optimisations even faster
Cloudflare
February 2018
Going Global - a Localization Case Study at Cloudflare
Cloudflare
August 2017
Open Sourcing CloudFlare’s UI Framework
Cloudflare
June 2016
How we built Origin CA: Web Crypto
Cloudflare
May 2016
CodeSandbox
1
Lessons learned refactoring Codesandbox.io from Redux to Cerebral
CodeSandbox
February 2018
Condé Nast
1
The Why and How of Google AMP at Condé Nast
Condé Nast
August 2017
Conductor
1
Painless Migration From Backbone to React/Redux
Conductor
February 2018
Coursera
12
Improving Site Performance With Webpack Tree Shaking
Coursera
January 2020
Improving End-to-End Testing at Coursera using Puppeteer and Jest
Coursera
June 2019
Webpack 3 to 4: Facing the known unknowns and unknown unknowns
Coursera
October 2018
Best Practices for Flow Typing React Components
Coursera
June 2017
Breaking Up Our JavaScript Monolith with Rapidos
Coursera
December 2016
6 Steps to i18n Success for Your Web App
Coursera
January 2016
How to Migrate React to Isomorphic Rendering
Coursera
October 2015
Why and How Coursera Does Isomorphic Javascript: A Fast and Snappy Quiz
Coursera
August 2015
Improving Coursera Global Site Performance: A Head to Head CDN Battle with Production Traffic
Coursera
July 2015
Rapidash: Faster frontend development
Coursera
May 2015
Source Maps are Great … When You Get It Right
Coursera
March 2015
Efficient Front-end Development at Coursera
Coursera
November 2014
Datadog
5
How We Migrated Our Acceptance Tests to Use Synthetic Monitoring
Datadog
June 2023
Making Fetch Happen - Building a General-purpose Query & Render Scheduler
Datadog
April 2023
DRUIDS, the Design System that Powers Datadog
Datadog
September 2022
How Datadog uses Datadog to gain visibility into the Datadog user experience
Datadog
February 2022
Redux-Doghouse: Creating reusable React-Redux components through scoping
Datadog
November 2016
DAZN
7
Identifying micro-frontends in our applications
DAZN
May 2019
Jest: Our journey into performant unit tests
DAZN
April 2019
Orchestrating micro-frontends
DAZN
April 2019
Adopting a Micro-frontends architecture
DAZN
April 2019
Micro-frontends, the future of Frontend architectures
DAZN
April 2019
Handling complexity in lambda functions
DAZN
February 2019
Testing MobX State Tree
DAZN
December 2018
De Voorhoede
1
Why our website is faster than yours
De Voorhoede
July 2016
DEV
1
App shell UX with service workers and streams
DEV
June 2020
Discord
9
How Discord Modernized MFA with WebAuthn
Discord
December 2023
How Discord Implemented App-Wide Keyboard Navigation
Discord
December 2020
How Discord achieves native iOS performance with React Native
Discord
November 2019
Investigating Discord’s React Memory Leak
Discord
August 2019
How Discord Handles Two and Half Million Concurrent Voice Users using WebRTC
Discord
September 2018
How Discord Maintains Performance While Adding Features
Discord
August 2018
Why Discord is Sticking with React Native
Discord
July 2018
Lessons from migrating a large codebase to React 16
Discord
October 2017
Using React Native: One Year Later
Discord
June 2016
DoorDash
9
DoorDash’s Lessons on Improving Performance on High-Traffic Web Pages
DoorDash
August 2022
Building a Common Web Library for Fast Implementations of Risk Frictions
DoorDash
March 2022
Improving Web Page Performance at DoorDash Through Server-Side Rendering with Next.JS
DoorDash
March 2022
Building a Marketing Engineering Platform using Next.js, Cloudflare, and Contentful
DoorDash
February 2022
Managing React State on DoorDash’s Item Modal Using the Class Pattern
DoorDash
April 2021
Serving Multiple Websites and Business Logic From a Single Platform
DoorDash
February 2021
Implementing Theming in DoorDash’s Design Language System
DoorDash
December 2020
Building the Caviar Web Experience Using Reusable React Components on the DoorDash Platform
DoorDash
September 2020
Things to Keep in Mind When Integrating a Map Feature to a Web App
DoorDash
September 2020
Dropbox
18
JQuery to React: How we rewrote the HelloSign Editor
Dropbox
September 2020
The Great CoffeeScript to Typescript Migration of 2017
Dropbox
May 2020
Design Tooling at Scale
Dropbox
October 2019
Redux with Code-Splitting and Type Checking
Dropbox
July 2019
Migrating from Underscore to Lodash
Dropbox
September 2018
Improving Document Preview Performance
Dropbox
December 2017
Dropbox Paper: Emojis and Exformation
Dropbox
November 2017
Deploying Brotli for static content
Dropbox
April 2017
Preventing cross-site attacks using same-site cookies
Dropbox
March 2017
Annotations on Document Previews
Dropbox
November 2016
Enabling HTTP/2 for Dropbox web services: experiences and observations
Dropbox
May 2016
[CSP] Third Party Integrations and Privilege Separation
Dropbox
September 2015
[CSP] The Unexpected Eval
Dropbox
September 2015
[CSP] Unsafe-inline and nonce deployment
Dropbox
September 2015
[CSP] On Reporting and Filtering
Dropbox
September 2015
Dropbox dives into CoffeeScript
Dropbox
September 2012
Some love for JavaScript applications
Dropbox
August 2012
Translating Dropbox
Dropbox
April 2011
eBay
28
Auto Effect Pattern with Redux and React Hooks
eBay
April 2020
Front End Debugging — Tips on Resolving Issues Quickly so You Can Move on to Better Things
eBay
April 2020
Speed By A Thousand Cuts
eBay
January 2020
Autofill on Browsers: A Deep Dive
eBay
December 2019
WebAssembly at eBay: A Real-World Use Case
eBay
May 2019
Integration Testing with React and Enzyme
eBay
June 2018
Beyond HTTPS
eBay
December 2017
The Future of Marko
eBay
October 2017
eBay’s Font Loading Strategy
eBay
September 2017
Building a UI Component in 2017 and Beyond
eBay
May 2017
Effective Front-End Code Review
eBay
March 2017
Experience the Lightning Bolt
eBay
September 2016
Browse eBay with Style and Speed
eBay
June 2016
The Path to JavaScript Next
eBay
March 2016
Packaging for Performance
eBay
January 2016
How Our CSS Framework Helps Enforce Accessibility
eBay
November 2015
Mobile First - A Retrospective
eBay
May 2015
The Power of Perceived Performance
eBay
January 2015
Async Fragments: Rediscovering Progressive HTML Rendering with Marko
eBay
December 2014
Don't Build Pages, Build Modules
eBay
October 2014
Yet Another Responsive vs. Adaptive Story
eBay
March 2014
Front-end Renaissance at eBay
eBay
January 2014
Early Detection of Frontend Single Points of Failure
eBay
January 2013
Bandwidth-based Experience
eBay
October 2012
Page Loading and Rendering Optimizations
eBay
June 2012
Five JavaScript Tips for a Sleek User Experience
eBay
April 2012
The New eBay Motors Homepage is 2X Faster
eBay
October 2011
Data URI Sprites
eBay
July 2011
EdgeDB
1
An approach to optimizing TypeScript type checking performance
EdgeDB
August 2024
Ele.me
1
Upgrading Ele.me to Progressive Web App
Ele.me
May 2017
Electronic Arts
1
Building UI at Enterprise Scale with Web Components
Electronic Arts
August 2017
Etsy
15
Etsy’s Journey to TypeScript
Etsy
November 2021
Mobius: Adopting JSX While Prioritizing User Experience
Etsy
November 2021
Developing in a Monorepo While Still Using Webpack
Etsy
April 2020
The journey to fast production asset builds with Webpack
Etsy
February 2020
How Etsy Localizes Addresses
Etsy
September 2018
Reducing Image File Size at Etsy
Etsy
May 2017
Optimizing Meta Descriptions, H1s and Title Tags: Lessons from Multivariate SEO Testing at Etsy
Etsy
January 2017
SEO Title Tag Optimization at Etsy: Experimental Design and Causal Inference
Etsy
October 2016
How Etsy Formats Currency
Etsy
April 2016
Rebuilding the Foundation of Etsy’s Seller Tools
Etsy
February 2015
Transitioning to SCSS at Scale
Etsy
February 2015
Responsive emails that really work
Etsy
March 2014
Measuring Front-end Performance With Real Users
Etsy
November 2012
Multilingual User Generated Content and SEO
Etsy
December 2011
Localizing Logically for a Global Marketplace
Etsy
October 2011
Evil Martians
1
Is React Native podium-ready?
Evil Martians
May 2018
Expedia Group
20
Sizing Android WebView iframes with JavaScript
Expedia Group
April 2021
How Expedia.com Uses Accessibility Automation
Expedia Group
October 2020
Multi-Variate Web Optimisation Using Linear Contextual Bandits
Expedia Group
September 2020
CSS-in-JS: An Investigation
Expedia Group
July 2020
Using Webpack Module Federation to Create an App Shell
Expedia Group
June 2020
12 Tips to Improve Client Side Page Performance
Expedia Group
April 2020
Responsive Accessibility Guidelines at Expedia.com
Expedia Group
February 2020
Schema Driven UIs
Expedia Group
January 2020
File Upload with GraphQL, Apollo Server, Hapi 18+, and React
Expedia Group
January 2020
Web Applications: Analyzing Client-Side Performance
Expedia Group
January 2020
Measuring Interaction Performance with FPS Data
Expedia Group
December 2019
Migrating to WKWebView
Expedia Group
December 2019
A (Small) Case for Function-Based React Components
Expedia Group
December 2019
Web Performance vs. User Engagement
Expedia Group
October 2019
Minimizing DOM Nodes for Performance
Expedia Group
September 2019
Contextual and Consistent Analytic Events in React
Expedia Group
April 2019
Optimizing a Page: Resource Hints, Critical CSS, and Webpack
Expedia Group
March 2019
Profiling React Server-Side Rendering to Free the Node.js Event Loop
Expedia Group
February 2019
Creating Your Own Apollo Cache for Perf and Profit
Expedia Group
February 2019
Scoping A/B Test Code in React
Expedia Group
September 2018
ezCater
2
Saying goodbye to emotion
ezCater
June 2021
The case against React snapshot testing
ezCater
June 2019
FARFETCH
6
GraphQL sessions: powering farfetch.com
FARFETCH
May 2022
One less second for the page, one giant leap for the business
FARFETCH
July 2020
How to build a performance culture at scale
FARFETCH
September 2019
Lessons learned when building product-agnostic reusable UI Components
FARFETCH
March 2019
The need for speed — 1: measuring today’s web performance
FARFETCH
February 2019
The need for speed — 2: call for metrics
FARFETCH
February 2019
fastq.bio
1
How We Used WebAssembly To Speed Up Our Web App By 20X
fastq.bio
April 2019
Figma
11
The evolution of Figma’s mobile engine: Compiling away our custom programming language
Figma
May 2024
Illuminating dark mode
Figma
July 2022
Inside Figma: a case study on strict null checks
Figma
December 2020
React at 60fps: improving scrolling comments in Figma
Figma
August 2020
How to build a plugin system on the web and also sleep well at night
Figma
August 2019
Figma, faster 🏎
Figma
August 2018
Introducing: Figma to React
Figma
April 2018
Introducing BrowserView for Electron
Figma
June 2017
WebAssembly cut Figma’s load time by 3x
Figma
June 2017
Debugging Data Corruption with Emscripten
Figma
November 2016
Building a professional design tool on the web
Figma
December 2015
Financial Times
14
Animating list reordering with React Hooks
Financial Times
August 2020
Taming Webpackʼs content hashes
Financial Times
June 2020
Designing a sustainable front-end toolset for FT.com
Financial Times
April 2020
This one line of Javascript made FT.com 10 times slower
Financial Times
July 2018
An outbreak of Accessibility anti-patterns
Financial Times
May 2018
Tips for in-house teams in a free market software culture
Financial Times
January 2018
What happens when you visit ft.com?
Financial Times
November 2017
Speeding up without slowing down
Financial Times
November 2017
Can't You Just Make It More like Bootstrap?
Financial Times
July 2017
YES, your site too can (and should) be accessible
Financial Times
May 2017
A faster FT.com
Financial Times
April 2016
SVG icons are easy but the fallbacks aren't
Financial Times
December 2015
Free-market software development
Financial Times
August 2015
Building The New Financial Times Web App
Financial Times
May 2013
Flickr
10
Introducing yakbak: Record and playback HTTP interactions in NodeJS
Flickr
April 2016
Perceptual Image Compression at Flickr
Flickr
September 2015
Building Flickr’s new Hybrid Signed-Out Homepage
Flickr
April 2014
Adventures in Jank Busting: Parallax, performance, and the new Flickr Home Page
Flickr
June 2013
Parsing Exif client-side using JavaScript
Flickr
June 2012
Building The Flickr Web Uploadr: The Grid
Flickr
May 2012
Raising the bar on web uploads
Flickr
April 2012
Building an HTML5 Photo Editor
Flickr
April 2012
Creating an interface for geofences
Flickr
September 2011
Lessons Learned from the Flickr Touch Lightbox
Flickr
July 2011
Flipboard
2
60 FPS on the mobile web
Flipboard
February 2015
Layout in Flipboard for Web and Windows
Flipboard
March 2014
Flipkart
1
Building Flipkart Lite: A Progressive Web App
Flipkart
November 2015
Flocktory
1
Third party libraries
Flocktory
May 2017
Futurice
1
How Elm made our work better
Futurice
November 2016
Garbarino
1
Building a PWA in Argentina
Garbarino
July 2017
GitHub
17
Considerations for making a tree view component accessible
GitHub
January 2025
Exploring the challenges in creating an accessible sortable list (drag-and-drop)
GitHub
July 2024
Accessibility considerations behind code search and code view
GitHub
July 2023
Creating an accessible search experience with the QueryBuilder component
GitHub
December 2022
How we think about browsers
GitHub
June 2022
How we use Web Components at GitHub
GitHub
May 2021
How GitHub Actions renders large-scale logs
GitHub
March 2021
How we built the GitHub globe
GitHub
December 2020
From 48k lines of code to 10—the story of GitHub’s JavaScript SDK
GitHub
April 2020
Removing jQuery from GitHub.com frontend
GitHub
September 2018
Design Systems at GitHub
GitHub
July 2018
Shipping system fonts to GitHub.com
GitHub
February 2018
GitHub's post-CSP journey
GitHub
January 2017
GitHub's CSP journey
GitHub
April 2016
Browser Monitoring for GitHub.com
GitHub
May 2015
How GitHub is using Web Components in production
GitHub
September 2014
GitHub's CSS
GitHub
July 2014
GitLab
9
How we created a dark UI for GitLab's Web IDE
GitLab
May 2020
How GitLab Pages made our Sketch design handoffs easier and faster
GitLab
November 2019
Why we chose ECharts for data visualizations
GitLab
September 2019
How we iterated and improved our frontend team culture
GitLab
June 2018
Our journey in switching to native Unicode emoji
GitLab
May 2018
How GitLab switched to Headless Chrome for testing
GitLab
December 2017
How we do Vue: one year later
GitLab
November 2017
Our big Frontend plan revealed
GitLab
February 2017
Why We Chose Vue.js
GitLab
December 2016
GoDaddy
5
Building a robust mobile to webview bridge with RxJS and Redux
GoDaddy
March 2023
How GoDaddy's Websites + Marketing service improved customer Core Web Vitals by 75%
GoDaddy
July 2022
Creating better examples with @exemplar/storybook
GoDaddy
April 2019
Reduxful: Manage RESTful data with Redux
GoDaddy
November 2018
Eliminating Boilerplate and Increasing Reusability with Higher-Order Reducers
GoDaddy
August 2018
Goibibo
1
How Goibibo's PWA improved conversions by 60%
Goibibo
September 2020
Google
14
Why Google Sheets ported its calculation worker from JavaScript to WasmGC
Google
June 2024
Implementing CSP and Trusted Types debugging in Chrome DevTools
Google
November 2021
DevTools architecture refresh: migrating DevTools to TypeScript
Google
April 2021
Migrating Puppeteer to TypeScript
Google
January 2021
Scaling TypeScript compilation
Google
October 2020
How we built the Chrome DevTools WebAuthn tab
Google
October 2020
Bringing service workers to Google Search
Google
June 2019
A Recipe for Designing Animations — Without Sacrificing Performance
Google
June 2019
The Chrome Dev Summit site: case study
Google
March 2019
TypeScript at Google
Google
September 2018
Building the Google Photos Web UI
Google
July 2018
TypeScript at Google (TSConf 2018)
Google
May 2018
Designing very large (JavaScript) applications
Google
April 2018
The new AdWords UI uses Dart — we asked why
Google
March 2016
GOV.UK
9
How we reduced CSS size and improved performance across GOV.UK
GOV.UK
December 2023
Why videos on GOV.UK use the YouTube video player
GOV.UK
March 2020
Why the GOV.UK Design System team changed the input type for numbers
GOV.UK
February 2020
Accessibility lessons: dealing with a large amount of form inputs
GOV.UK
April 2019
What we learned from getting our autocomplete tested for accessibility
GOV.UK
May 2018
How we’ve made GOV.UK Elements even more accessible
GOV.UK
February 2018
How to create content that works well with screen readers
GOV.UK
February 2017
Patterns for accessible webchats
GOV.UK
December 2016
Accessibility for developers: building a frontend that everyone can use
GOV.UK
October 2016
grammarly
7
Signals With @grammarly/focal
grammarly
August 2023
Real-Time Collaborative Text Editing
grammarly
April 2022
Making Grammarly Feel Native On Every Website
grammarly
March 2022
Part 1: How Grammarly Tackles Hidden Complexity in Front-End Applications
grammarly
March 2022
Part 2: How Grammarly Tackles Hidden Complexity in Front-End Applications
grammarly
March 2022
Introducing Embrace: A Framework for Building Declarative UIs
grammarly
September 2021
Building Browser Extensions At Scale
grammarly
October 2017
Gusto
8
How We Made Gusto Page Loads 40% Faster
Gusto
June 2023
How I fell out of love with HOCs
Gusto
December 2018
Taking off with Apollo
Gusto
September 2018
Evolving JavaScript Part 1: Goodbye Backbone
Gusto
July 2016
Evolving JavaScript Part 2: Hello React
Gusto
July 2016
Evolving JavaScript Part 3: Building a React Application
Gusto
July 2016
Scaling Front-end Architecture
Gusto
June 2016
Solving the double-click in Backbone.js
Gusto
April 2014
HealthCare.gov
1
Building a design system for HealthCare.gov
HealthCare.gov
August 2017
Heap
7
We Turned Our Front-End Code Into a Component Library (and You Can, Too)
Heap
September 2021
Using Babel Transforms to Inject Analytics Code in React Native Apps
Heap
June 2020
How we failed, then succeeded, at migrating to TypeScript
Heap
October 2019
Redesigning Heap Without a Feature Branch
Heap
April 2019
How We Write Front-end Code
Heap
February 2018
Migrating To React + MobX While Shipping New Features
Heap
August 2017
Goodbye CoffeeScript, Hello TypeScript
Heap
October 2015
Hootsuite
18
Performance Regression in a React App: Investigation and Remediation Strategies
Hootsuite
March 2024
React Re-render Optimization
Hootsuite
April 2020
Inbox: Powering our Front-End through a Data-Driven Model
Hootsuite
April 2020
Migrating a codebase to React 16: some takeaways
Hootsuite
December 2019
Thoughts on migrating to TypeScript
Hootsuite
December 2018
Javascript Modules, Circular Dependencies and React
Hootsuite
August 2017
React Theme Management in Less with Javascript
Hootsuite
April 2017
The Coffee Threshold for Javascript Compilation
Hootsuite
April 2017
Step-by-Step VRT with Mugshot
Hootsuite
October 2016
Designing React components is easier with Cosmos
Hootsuite
September 2016
Resizing React Components
Hootsuite
August 2016
Designing Global Application State for Functional Frontends
Hootsuite
June 2016
Enhancing Hootsuite with React and Flux
Hootsuite
October 2015
Mobile Photo Uploads with HTML5
Hootsuite
April 2015
CSS at Hootsuite
Hootsuite
August 2014
GridList — building responsive dashboards with resizable widgets
Hootsuite
July 2014
Why Using RequireJS As-Is Could Hurt Your Web Performance
Hootsuite
March 2014
Functional testing with CasperJS
Hootsuite
August 2013
in der Apotheke
1
Farewell, Google Maps
in der Apotheke
July 2018
Infinite Red
4
Why Infinite Red uses MobX-State-Tree instead of Redux
Infinite Red
June 2020
Yarn 1 vs Yarn 2 vs NPM
Infinite Red
February 2020
Using TypeScript to upgrade Ignite without losing my mind
Infinite Red
March 2019
Switching from Ava to Jest for TypeScript
Infinite Red
November 2017
Insider Inc.
3
Delightful ways to write reusable CSS using subclasses
Insider Inc.
March 2019
Why we got rid of all our front-end and back-end engineers
Insider Inc.
February 2019
How to style different sites with one CSS collection
Insider Inc.
December 2018
Instagram
6
Launching Instagram Messaging on desktop
Instagram
July 2022
Making instagram.com faster: Code size and execution optimizations (Part 4)
Instagram
November 2019
Making Instagram.com faster: Part 3 — cache first
Instagram
October 2019
Making Instagram.com faster: Part 2
Instagram
September 2019
Making Instagram.com faster: Part 1
Instagram
August 2019
React Native at Instagram
Instagram
February 2017
Intercom
7
The evolution of Ember at Intercom
Intercom
February 2020
How we built a component API for interactive data visualizations with Ember
Intercom
September 2019
Reducing the Intercom Messenger bundle size by 65%
Intercom
July 2019
Hot button issue: Improving accessibility in the Messenger
Intercom
June 2019
Rebuilding Intercom’s homepage with a new CMS
Intercom
June 2019
Building for everyone: How we made the Intercom Messenger accessible
Intercom
December 2018
How we convinced everyone to care about technical performance
Intercom
May 2017
Internet Archive
1
Pixels vs. Ems: Users DO Change Font Size
Internet Archive
June 2018
Intuit
4
Delivering Consistent Animations with a Design System Library
Intuit
April 2019
GraphQL: Intuit’s Path to ONE API System
Intuit
March 2019
TurboTax Live’s Approach to a Gender-Neutral Design System
Intuit
February 2019
Making Accessibility an Integral Part of the Creative Workflow
Intuit
April 2018
InVision
7
Building the inspect measurement engine
InVision
July 2019
React Performance Tune-Up
InVision
September 2016
How ESLint Saved Our Soul
InVision
August 2016
Testing Our Shared ESLint Configs
InVision
May 2016
Persist Redux State by Using Sagas
InVision
April 2016
Optimizing Webpack for Faster React Builds
InVision
April 2016
Sharing ESLint Across Teams
InVision
April 2016
Khan Academy
14
Communication for Custom Developer Tools
Khan Academy
January 2024
Overcoming a false sense of security when using Flow types
Khan Academy
January 2021
How to upgrade hundreds of React components without breaking production
Khan Academy
September 2019
Making Websites Work with Windows High Contrast Mode
Khan Academy
March 2019
tota11y - an accessibility visualization toolkit
Khan Academy
April 2018
Creating Query Components with Apollo
Khan Academy
June 2017
Migrating to a Mobile Monorepo for React Native
Khan Academy
May 2017
Inline CSS at Khan Academy: Aphrodite
Khan Academy
March 2016
Forgo JS packaging? Not so fast
Khan Academy
November 2015
Schrödinger's deploys no more: how we update translations
Khan Academy
October 2015
i18nize-templates: Internationalization After the Fact
Khan Academy
September 2015
Copy-pasting more than just text
Khan Academy
August 2015
Fun with slope fields, css and react
Khan Academy
August 2015
Babel in Khan Academy's i18n Toolchain
Khan Academy
June 2015
Kickstarter
1
Namespacing Actions for Redux
Kickstarter
November 2017
Klarna
3
6 Lessons learned from optimizing the performance of a Node.js service
Klarna
January 2020
Improving Communication and Confidence with Visual Snapshot Testing
Klarna
March 2017
How removing caching improved mobile performance by 25%
Klarna
January 2017
Line
13
How We Rearchitected A/B Testing at LINE NEWS
Line
October 2023
How I made a Figma translation plugin with Vue.js after a couple of drinks
Line
July 2023
LINE has started to donate to Prettier - why companies should support OSS
Line
February 2022
Introducing the Team Developing Web Front-end for LINE User Services
Line
May 2021
Web Styling with ReactJS
Line
April 2021
LINE Securities: Page Stack revisited
Line
June 2020
LINE Developers site: From Middleman to VuePress
Line
March 2020
LINE's Web-based services and technology. Isn't LINE an app developer?
Line
September 2019
How and what front-end developers actually do at LINE?
Line
June 2019
LINE Animation Sticker Checker on Web browser
Line
June 2018
Floor map management system on web, with Leaflet
Line
April 2018
Easy code-splitting with grow-loader
Line
January 2018
LINE MANGA: Smooth page transition with Page Stack
Line
January 2018
LinkedIn
10
Accelerating Code Delivery By 97% With Yarn Workspaces
LinkedIn
December 2022
Leveraging configurable components to scale LinkedIn's Profile experience
LinkedIn
April 2022
Building a next-generation forms framework at LinkedIn
LinkedIn
March 2022
Under the hood: Updating LinkedIn's UI
LinkedIn
October 2020
LinkedIn’s approach to automated accessibility (A11y) testing
LinkedIn
May 2020
Lighter than Lightweight: How We Built the Same App Twice with Preact and Glimmer.js
LinkedIn
March 2018
Ember Timer Leaks: The Bad Apples in Your Test Infrastructure
LinkedIn
January 2018
The Glimmer Binary Experience
LinkedIn
December 2017
Sleek and Fast: Speeding Up your Fat Web Client
LinkedIn
October 2017
Bringing a Modern Javascript Build Pipeline to LinkedIn
LinkedIn
January 2016
Lucidchart
19
Design for canvas-based applications
Lucidchart
August 2023
An Angular Change Detection Challenge
Lucidchart
September 2019
Internationalizing Your Software Part Three: Final Thoughts
Lucidchart
June 2019
Internationalizing Your Software Part Two: Handling Language Differences
Lucidchart
May 2019
Internationalizing Your Software Part One: The Process
Lucidchart
April 2019
What you should know before making a service worker
Lucidchart
January 2019
JavaScriptCore—10 Months Later
Lucidchart
January 2019
ZoneTracker: Tracking JavaScript Performance with Zone.js
Lucidchart
November 2018
How to Actually Improve Type Safety with the TypeScript Strict Flags
Lucidchart
June 2018
JavaScriptCore – The Holy Grail of Cross Platform
Lucidchart
February 2018
How to handle folder uploads in Angular 2+
Lucidchart
January 2018
Converting 600k lines to TypeScript in 72 hours
Lucidchart
November 2017
Using Angular 2 Components In a Non-Angular App
Lucidchart
April 2017
Angular 2 and Observables: Data Sharing in a Multi-View Application
Lucidchart
November 2016
Improving Angular 2 Load Times and a 29KB Hello World App
Lucidchart
September 2016
Big content in a little canvas
Lucidchart
May 2015
The Definitive Guide to Copying and Pasting in JavaScript
Lucidchart
December 2014
Atomic CSS as a tool set
Lucidchart
January 2014
IE10: How does it really stack up?
Lucidchart
November 2012
Lyft
6
The Journey to Server Driven UI At Lyft Bikes and Scooters
Lyft
March 2023
Speeding Ahead with a Systematic Approach to Web Performance
Lyft
April 2021
Frontend at Lyft: An Overview
Lyft
March 2021
Changing Lanes: How Lyft is Migrating 100+ Frontend Microservices to Next.js
Lyft
November 2020
Re-approaching Color
Lyft
September 2018
TypeScript at Lyft
Lyft
September 2017
Mail.ru
1
Improving Core Web Vitals on the Mail.ru home page resulted in an average 10% increase in conversion rates
Mail.ru
November 2021
Mailchimp
1
Designing automated tests for React
Mailchimp
August 2019
MDN
1
Refactoring MDN macros with async, await, and Object.freeze()
MDN
February 2019
Medium
9
GraphQL Server Design @ Medium
Medium
November 2018
The case of the eternal blur: a bug hunt horror novella
Medium
May 2018
2 Fast 2 Furious: migrating Medium’s codebase without slowing down
Medium
March 2018
Simple Style Sheets, Or How to Improve Your Sleep by Dropping the Cascade
Medium
September 2016
The Unluckiest Paragraphs: A Tale of CSS and Why Parts of Medium Sometimes Disappear
Medium
December 2015
Five Goofy Things Medium Did That Break Accessibility
Medium
June 2015
The curious case of the disappearing Polish S
Medium
February 2015
Wait, Don’t Touch That! Mutual Exclusion Locks & JavaScript
Medium
January 2015
Why ContentEditable is Terrible
Medium
May 2014
MemSQL
1
Porting 30K lines of code from Flow to TypeScript
MemSQL
January 2019
Mercado Libre
1
How Mercado Libre optimized for Web Vitals (TBT/FID)
Mercado Libre
September 2020
Meta
19
React at Meta Connect 2024
Meta
October 2024
Behind the scenes of Threads for web
Meta
May 2024
MemLab: An open source framework for finding JavaScript memory leaks
Meta
September 2022
How Facebook is bringing QUIC to billions
Meta
October 2020
Making Facebook.com accessible to as many people as possible
Meta
July 2020
Rebuilding our tech stack for the new Facebook.com
Meta
May 2020
Implementing a secure web-based proxy service for Discover
Meta
May 2020
Building the New facebook.com with React, GraphQL and Relay
Meta
April 2019
Faster input events with Facebook’s first browser API contribution
Meta
April 2019
Behind the Scenes: Improving the React Repository Infrastructure
Meta
December 2017
React 16: A look inside an API-compatible rewrite of our frontend UI library
Meta
September 2017
Building High-Quality JavaScript Tools
Meta
June 2017
ARIA Grid: Supporting nonvisual layout and keyboard traversal
Meta
March 2017
This browser tweak saved 60% of requests to Facebook
Meta
January 2017
Building the F8 App with React Native
Meta
January 2017
Improving CSS quality at Facebook and beyond
Meta
June 2016
The technology behind preview photos
Meta
August 2015
Facebook has 30,000 react components. How do you manage large project directories with many components?
Meta
December 2013
BigPipe: Pipelining web pages for high performance
Meta
June 2010
Microsoft
9
Fast Front-End Performance for Microsoft Bing
Microsoft
August 2022
How we built the DevTools Tooltips
Microsoft
March 2021
Creating the Microsoft Edge DevTools 3D View
Microsoft
March 2020
Bing and React on Amazon Tablets
Microsoft
March 2019
Modernizing Word Online’s UX platform
Microsoft
August 2018
How We React at Microsoft To-Do
Microsoft
January 2018
Thinking in TypeScript
Microsoft
September 2017
Deminifying JavaScript call stacks
Microsoft
March 2017
Performance gains from switching to Closure Compiler
Microsoft
March 2017
Mixmax
9
To Yarn and Back (to npm) Again
Mixmax
May 2018
Choosing (and using) Javascript static typing: how Mixmax Engineering adopted Flow
Mixmax
May 2018
Precisely observing structural page changes
Mixmax
December 2017
Handling 3rd-party JavaScript with Rollup: how and when to leave JS out of the bundle
Mixmax
December 2017
React without Redux: how we moved from Backbone to React without rewriting
Mixmax
July 2017
Using CORS policies to implement CSRF protection
Mixmax
June 2017
Yarn-ifying Mixmax: why and how we moved from npm to Yarn
Mixmax
April 2017
How we built ‘instant’ autocomplete for Mixmax
Mixmax
November 2015
Scaling Mixmax: Front-end performance
Mixmax
May 2015
Mixpanel
4
How does CSS Grid work with Height/Width, Margin and Padding?
Mixpanel
August 2023
Making Web Components Work, or: How We Learned to Stop Worrying and Love the DOM
Mixpanel
June 2018
Straightening our Backbone: A lesson in event-driven UI development
Mixpanel
April 2015
Best Javascript Charting Libraries
Mixpanel
September 2010
Monzo
1
Building a Bank with Next.js: How We Use Next.js at Monzo
Monzo
December 2020
Mozilla
2
To Eleventy and Beyond
Mozilla
October 2020
The Art of UI Skeletons
Mozilla
April 2019
Mud
1
A Year of Utility Classes
Mud
January 2019
Myntra
1
Myntra’s Web UI Journey — AMP and PWA
Myntra
January 2018
Netflix
28
Introducing SafeTest: A Novel Approach to Front End Testing
Netflix
February 2024
How We Build Micro Frontends With Lattice
Netflix
September 2021
Hawkins: Diving into the Reasoning Behind our Design System
Netflix
February 2021
Architecting UI for Netflix Studio Technology
Netflix
November 2019
Bringing Rich Experiences to Memory-Constrained TV Devices
Netflix
July 2019
Delightful User Interfaces: Easter Eggs
Netflix
June 2019
Making Bandersnatch
Netflix
February 2019
Modernizing the Web Playback UI
Netflix
December 2018
Our learnings from adopting GraphQL
Netflix
December 2018
Delivering Meaning with Previews on Web
Netflix
November 2018
A Netflix Web Performance Case Study
Netflix
November 2018
Enhancing the Netflix UI Experience with HDR
Netflix
September 2018
Pseudo Localization @ Netflix
Netflix
August 2018
Integrating imperative APIs into a React application
Netflix
December 2017
Implementing Japanese Subtitles on Netflix
Netflix
December 2017
Performance Signup in React & Transactional Apps with Redux
Netflix
October 2017
Shop Talk podcast #264: React with Netflix
Netflix
May 2017
Pass the Remote: User Input on TV Devices
Netflix
May 2017
Netflix's approach to ES6 feature detection
Netflix
January 2017
Crafting a high-performance TV user interface using React
Netflix
January 2017
React.js for TV UIs
Netflix
March 2016
Making Netflix.com Faster
Netflix
August 2015
Localization Technologies at Netflix
Netflix
June 2015
JSON Graph: Reactive REST at Netflix
Netflix
April 2015
Node.js in Flames
Netflix
November 2014
Improving the performance of our JavaScript inheritance model
Netflix
May 2014
Building the New Netflix Experience for TV
Netflix
November 2013
HTML5 Video Playback UI
Netflix
October 2013
NextRoll
7
How to Run a Front-End Infrastructure Team
NextRoll
August 2017
How to Create a Style Guide: Start with a UI Framework
NextRoll
July 2016
gulp-react-docs: From propTypes to Markdown in 3 seconds
NextRoll
December 2015
Rollup: What we have learned from sharing UI code at AdRoll
NextRoll
November 2015
Rollup: How we use React.js and npm to share UI code at AdRoll
NextRoll
November 2015
Rollup: Shared UI components at AdRoll
NextRoll
November 2015
Lazy loading Backbone collections with Promises
NextRoll
November 2013
Notion
3
How we evolve code: Notion’s “ratcheting” system using custom ESLint rules
Notion
March 2025
How we sped up Notion in the browser with WASM SQLite
Notion
July 2024
Migrating Notion's marketing site to Next.js
Notion
August 2021
npm
2
JavaScript Usage by Industry
npm
June 2018
Re-inventing npmjs.com
npm
April 2018
OK GROW!
3
Real-world Unit Testing with Meteor and Jest
OK GROW!
October 2017
Where does Redux fit in Meteor?
OK GROW!
July 2016
Migrating from Iron Router to FlowRouter (with Blaze)
OK GROW!
September 2015
OYO
8
Migrating to webpack 5 to improve build time and reduce chunk sizes
OYO
June 2021
A complete implementation guide to Trusted Web Activity(TWA)- OYO Lite
OYO
November 2019
Building Chrome Extension with ReactJs: Beginner’s Guide
OYO
May 2019
Signed-Exchange: Solving the AMP URLs Display Problem
OYO
May 2019
Shipping ES6 in browsers without Polyfill
OYO
April 2019
AMP for Email - Interactive and Dynamic Email Experiences at OYO
OYO
March 2019
Brotli vs Gzip Compression. How we improved our latency by 37%
OYO
June 2018
OYO on a User Experience Quest with AMP ⚡
OYO
January 2018
Oyster
2
Using React and jQuery Together
Oyster
March 2016
Oyster Shots on the Front End
Oyster
July 2011
Palantir
2
TSLint in 2019
Palantir
February 2019
Scaling product design with Blueprint
Palantir
January 2017
PayPal
13
GraphQL at PayPal: An Adoption Story
PayPal
September 2021
How Micro Frontend Has Changed Our Team Dynamic
PayPal
August 2020
Sharing UI Components at an Enterprise Level
PayPal
June 2020
Scaling GraphQL at PayPal
PayPal
October 2019
Why every new web app at PayPal starts with TypeScript
PayPal
January 2019
GraphQL: A success story for PayPal Checkout
PayPal
October 2018
Introducing PayPal’s open-source cross-domain javascript suite
PayPal
October 2017
Reinventing cross-origin requests, without CORS
PayPal
September 2017
Safari’s new third party tracking rules, and enabling cross-domain data storage
PayPal
August 2017
Less is more: reducing thousands of PayPal buttons into a single iframe, using zoid
PayPal
March 2017
Dependency injection in Angular isn’t worth it. More lessons learned from scaling PayPal Checkout
PayPal
April 2016
Auto-shrink-wrapping in PayPal Checkout, and how it’s saved us more than once
PayPal
February 2016
Sane, scalable Angular apps are tricky, but not impossible. Lessons learned from PayPal Checkout
PayPal
September 2015
Pinafore
6
What I’ve learned about accessibility in SPAs
Pinafore
November 2019
The joy and challenge of developing for KaiOS
Pinafore
September 2019
One year of Pinafore
Pinafore
June 2019
Building a modern carousel with CSS scroll snap, smooth scrolling, and pinch-zoom
Pinafore
February 2019
Scrolling the main document is better for performance, accessibility, and usability
Pinafore
November 2018
Introducing Pinafore for Mastodon
Pinafore
April 2018
Pinterest
10
A one year PWA retrospective
Pinterest
July 2018
Supporting React Native at Pinterest
Pinterest
May 2018
A Pinterest Progressive Web App Performance Case Study
Pinterest
November 2017
Introducing Bonsai: an open source Webpack analyzer
Pinterest
June 2017
How we switched our template rendering engine to React
Pinterest
November 2016
Migrating Pinterest profiles to React
Pinterest
September 2016
Making Pinterest HTTPS
Pinterest
March 2015
How we made JavaScript testing 15x faster
Pinterest
February 2015
Demystifying SEO with experiments
Pinterest
January 2015
Gone In 60 Frames Per Second: A Pinterest Paint Performance Case Study
Pinterest
June 2013
Pivotal Tracker
2
Improving Accessibility in Pivotal Tracker
Pivotal Tracker
February 2018
Using Elm in Production at Pivotal Tracker
Pivotal Tracker
January 2017
Plaid
1
Securing WebViews with Chrome Custom Tabs
Plaid
April 2020
Preply
5
How Preply improved INP on a Next.js application (without React Server Components and App Router)
Preply
February 2025
The Implementation Details of Preply’s Design System Visual Coverage (part II)
Preply
September 2024
Visual coverage: Why and How Preply Measures the Impact of the Design System (part I)
Preply
September 2024
How to debug cumulative layout shift by adding secret visuals to HotJar recordings
Preply
November 2020
Migrating from Backbone.js to React.js without losing it
Preply
September 2018
Product Hunt
2
GraphQL @ Product Hunt
Product Hunt
November 2017
React @ Product Hunt
Product Hunt
May 2017
Proton
1
Deploying CSS Logical Properties On Web Apps
Proton
December 2022
Quizlet
4
Now or Never: Migrating 300k LOC from Flow to TypeScript at Quizlet
Quizlet
June 2019
Cypress: The future of end-to-end testing for web applications
Quizlet
February 2018
Launching A Successful Redesign For 20 Million Students
Quizlet
June 2017
Smooth Game Animations in React
Quizlet
February 2016
Quora
2
Choosing Quora’s GraphQL client
Quora
July 2020
Faster Paint Times
Quora
August 2016
REA Group
22
Introducing Argonaut: Part Seven. The future
REA Group
July 2024
Introducing Argonaut: Part Six. Reflections
REA Group
July 2024
Introducing Argonaut – Part Five. Resilience
REA Group
July 2024
Introducing Argonaut – Part Four. The developer experience
REA Group
July 2024
Introducing Argonaut – Part Three. A deep dive into rendering a micro-frontend
REA Group
September 2023
Introducing Argonaut – Part Two. A technical overview
REA Group
September 2023
Introducing Argonaut – Part One. The micro-frontend platform for building web experiences at REA Group
REA Group
September 2023
Introduction to fp-ts – Part 2
REA Group
April 2023
Introduction to fp-ts – Part 1
REA Group
April 2023
Saving 300k hours for teams with REA’s design system
REA Group
January 2023
Measure Core Web Vitals Score During Development
REA Group
April 2021
Static assets in an eventually consistent webapp deployment
REA Group
August 2017
My Journey in a UI Project (aka front-end is the new back-end)
REA Group
June 2017
Functions as Child Components and Higher Order Components
REA Group
October 2016
ReactJS Performance Debugging (aka The Magic of Reselect Selectors)
REA Group
September 2016
Singletons Suck (aka Flux to Redux)
REA Group
August 2016
ReactJS – Real World Examples of Higher-Order Components
REA Group
May 2016
Automated visual checking of deployments with ImageMagick
REA Group
January 2016
Painless JavaScript testing? Surely you Jest!
REA Group
October 2015
Playing with Flux
REA Group
July 2015
Are you responsive to your users?
REA Group
July 2013
Loading Google Maps with RequireJS
REA Group
October 2012
Reaktor
1
Refactoring 30000 lines of JS with types
Reaktor
January 2017
Reddit
2
Why We Chose Typescript
Reddit
June 2017
How We Built r/Place
Reddit
April 2017
Redmart
3
How we use Storybook for documentation and code reviews
Redmart
November 2018
RedMart's experience with PWA
Redmart
October 2018
Angular The Hard Way #1 Organise and manage domain data
Redmart
April 2015
repl.it
2
Modular, fast, small: how we built a server-rendered IDE
repl.it
February 2018
Infinite Loops
repl.it
January 2017
Revolut
2
The fundamentals of web development at Revolut
Revolut
January 2021
How we learned to stop worrying and love GraphQL
Revolut
August 2019
Roompact
1
Elm In Production: 25,000 Lines Later
Roompact
July 2017
Safety Culture
1
Why we moved our graphQL server from Node.js to Golang
Safety Culture
June 2018
Salesforce
5
Native Scrolling in Salesforce mobile app
Salesforce
February 2021
Debugging WebKit in Hybrid Mobile Apps
Salesforce
July 2020
Debugging embedded JavaScript in an Android app using Chrome DevTools
Salesforce
May 2020
Why We Open Sourced Our JavaScript Framework
Salesforce
July 2019
Optimizing Performance with Web Workers
Salesforce
September 2017
Scratch
1
Porting Scratch from Flash to JavaScript: Performance, Interoperability and Extensions
Scratch
February 2019
Sentry
14
Better Code Rendering Through Virtualization
Sentry
December 2024
Perfectly Fitting Text to Container in React
Sentry
October 2024
Preact or Svelte? An Embedded Widget Use Case
Sentry
September 2024
Mutation-testing our JavaScript SDKs
Sentry
August 2024
How We Reduced Replay SDK Bundle Size by 35%
Sentry
November 2023
Measuring Session Replay Overhead
Sentry
July 2023
How we reduced CI time by 35% with Nx Caching
Sentry
March 2023
Sentry’s Frontend Tests: Migrating from Enzyme to React Testing Library
Sentry
February 2023
How We Made JavaScript Stack Traces Awesome
Sentry
November 2022
Understanding the Performance Impact of Generated JavaScript
Sentry
July 2022
JavaScript SDK “Package Size is Massive” - So we reduced it by 29%
Sentry
July 2022
How we trimmed the Sentry JavaScript SDK file size by 20%
Sentry
February 2022
Slow and Steady: Converting Sentry’s Entire Frontend to TypeScript
Sentry
April 2021
Building Sentry: Source maps and their problems
Sentry
July 2019
Shopify
5
How We Built Hydrogen: A React Framework for Building Custom Storefronts
Shopify
June 2022
Want to Improve UI Performance? Start by Understanding Your User
Shopify
October 2019
Designing a GraphQL API
Shopify
June 2018
Building Shopify mobile with native and web technology
Shopify
September 2017
How 17 lines of code improved shopify.com loading by 50%
Shopify
May 2017
Skillshare
1
How We Ditched Redux for MobX
Skillshare
July 2018
Slack
22
Automated Accessibility Testing at Slack
Slack
January 2025
Balancing Old Tricks with New Feats: AI-Powered Conversion From Enzyme to React Testing Library at Slack
Slack
October 2024
Building Custom Animations in the Workflow Builder
Slack
December 2023
Building Background Effects for Clips
Slack
June 2022
Managing Focus Transitions in Slack
Slack
July 2021
Creating a React Analytics Logging Library: Part 2
Slack
December 2020
Creating a React Analytics Logging Library: Part 1
Slack
November 2020
The Unsuspecting Beauty & Complexity of Web Forms
Slack
September 2020
How Slack changed the way it designs accessible frontend components
Slack
May 2020
A Day in the Life of a Frontend Product Engineer at Slack
Slack
February 2020
Gantry: Slack’s Fast-booting Frontend Framework
Slack
October 2019
Building Dark Mode on Desktop
Slack
September 2019
The Gradual Design System: How We Built Slack Kit
Slack
September 2019
Service Workers at Slack: Our Quest for Faster Boot Times and Offline Support
Slack
August 2019
When a rewrite isn’t: rebuilding Slack on the desktop
Slack
July 2019
Keep webpack Fast: A Field Guide for Better Build Performance
Slack
January 2018
Rebuilding slack.com
Slack
October 2017
Localizing Slack
Slack
September 2017
Rebuilding Slack’s Emoji Picker in React
Slack
May 2017
TypeScript at Slack
Slack
April 2017
Reducing Slack’s memory footprint
Slack
March 2017
Getting to Slack faster with incremental boot
Slack
July 2016
Snipcart
1
The Story of our Progressive Migration from Backbone to Vue.js
Snipcart
July 2017
SoundCloud
6
Playback on Web at SoundCloud
SoundCloud
May 2019
Garbage Collection in Redux Applications
SoundCloud
January 2019
React Native at SoundCloud
SoundCloud
August 2016
Smooth image loading by upscaling
SoundCloud
February 2014
Building The Next SoundCloud
SoundCloud
June 2012
Front-end JavaScript bug tracking
SoundCloud
November 2011
Spectrum
1
Tech Choices I Regret at Spectrum
Spectrum
January 2019
Spotify
12
Multiple Layers of Abstraction in Design Systems
Spotify
May 2023
TV Spatial Navigation
Spotify
May 2023
Encore x Accessibility: A Balancing Act
Spotify
March 2023
From Development to Real Users: How to Create a Web Performance Story
Spotify
September 2022
Customization vs. Configuration in Evolving Design Systems
Spotify
April 2021
Building the Future of Our Desktop Apps
Spotify
April 2021
Reimagining Design Systems at Spotify
Spotify
December 2019
Techbytes: TypeScript – from “Assess” to “Use”
Spotify
September 2019
web-scripts – creating NPM libraries in a snap at Spotify
Spotify
July 2019
(Right to Left (The Mirror World
Spotify
April 2019
Building Spotify’s New Web Player
Spotify
March 2019
Spotify Wrapped 2018 — Technical Case Study
Spotify
December 2018
Stack Overflow
2
Building dark mode on Stack Overflow
Stack Overflow
March 2020
HTTPS on Stack Overflow: The End of a Long Road
Stack Overflow
May 2017
stripe
5
Migrating millions of lines of code to TypeScript
stripe
May 2022
To design and develop an interactive globe
stripe
September 2020
Designing accessible color systems
stripe
October 2019
A new approach to mocking GraphQL data: how we power React component tests and examples at Stripe
stripe
December 2018
Connect: behind the front-end experience
stripe
June 2017
SumUp
1
10 lessons learned building SumUp’s design system
SumUp
August 2019
Superhuman
1
Delightful search: more than meets the eye
Superhuman
May 2017
TakeShape
1
Why we switched from Yarn to pnpm
TakeShape
June 2020
The Guardian
3
Migrating the Guardian website to React
The Guardian
December 2019
Revisiting the rendering tier
The Guardian
April 2019
What we learnt from our mistakes in 2016
The Guardian
December 2016
The Knot Worldwide
3
React Native @ The Knot: A Designer’s Perspective
The Knot Worldwide
February 2019
React Native @ The Knot
The Knot Worldwide
February 2019
Rebuilding the Guest List Manager with React + MobX at The Knot
The Knot Worldwide
June 2017
The New York Times
10
How The New York Times systematically migrated from Enzyme into React Testing Library
The New York Times
March 2025
Enhancing The New York Times Web Performance with React 18
The New York Times
June 2024
Expanding our Front End Testing Frameworks
The New York Times
December 2022
A More Accessible Web
The New York Times
February 2021
How We Implemented a Baseline Grid Using CSS
The New York Times
November 2019
GraphQL in real life
The New York Times
April 2019
React, Relay and GraphQL: Under the Hood of The Times Website Redesign
The New York Times
June 2017
Building a Cross Platform 360-degree Video Experience at nytimes
The New York Times
November 2016
Improving Article Accessibility
The New York Times
June 2014
The Technology Behind the NYTimes.com Redesign
The New York Times
January 2014
The Telegraph
3
Improving Cumulative Layout Shift at Telegraph Media Group
The Telegraph
June 2021
Improving third-party web performance at The Telegraph
The Telegraph
April 2019
React Serverside rendering : build slicker apps with better SEO ranking
The Telegraph
September 2018
The Times & The Sunday Times
1
Building the UI for the new The Times website
The Times & The Sunday Times
March 2016
The U.S. Digital Service
1
Building Forms Faster on Vets.gov
The U.S. Digital Service
June 2017
The Wall Street Journal
1
Making WSJ.com more accessible
The Wall Street Journal
August 2016
This Also
1
Fixing HTML Video on Mobile
This Also
July 2016
ThomasNet
1
How We Adopted CSS Grid at Scale
ThomasNet
March 2018
Thread
2
Searching and sorting text with diacritical marks in JavaScript
Thread
August 2018
Dealing with legacy code in React
Thread
May 2018
Tinder
2
Building Tinder Online
Tinder
February 2018
A Tinder Progressive Web App Performance Case Study
Tinder
December 2017
Tines
4
Understanding why our build got 15x slower with Webpack 5
Tines
November 2021
Relay: Fetching data in parallel with multiple queries
Tines
July 2021
Using backend factories during frontend testing
Tines
April 2021
Our approach to CSS and how we chose it
Tines
April 2020
Tiny
5
A Tiny road to Reason
Tiny
September 2020
Continuously refactoring 100000 lines of code
Tiny
April 2020
Collaboration needs a clean Slate
Tiny
February 2020
To OT or CRDT, that is the question
Tiny
January 2020
Benefits of gradual strong typing in JavaScript
Tiny
January 2019
Tokopedia
2
How focusing on web performance improved Tokopedia's click-through rate by 35%
Tokopedia
October 2020
A Tokopedia Mobile Web Performance Case Study
Tokopedia
May 2020
Treebo
7
GraphQL at Treebo
Treebo
October 2020
A Tale of Brotli Compression
Treebo
January 2020
Improving User Experience with AMP⚡- A Treebo Case Study
Treebo
March 2019
Iconography for Treebo
Treebo
August 2018
How do we design for an operations heavy product?
Treebo
May 2018
Redux Middlewares — An approach to cancel redux actions
Treebo
May 2018
A React And Preact Progressive Web App Performance Case Study: Treebo
Treebo
September 2017
Trivago
21
End-to-end tests retry strategies
Trivago
September 2023
3 Things We Learned When Switching to TypeScript
Trivago
August 2022
WARP - A Web Application Rewrite Project
Trivago
May 2022
Designing Marketing Emails via predefined Modules in Salesforce Email Studio
Trivago
April 2021
Rethinking the Next-gen Analytics Web App at trivago
Trivago
February 2021
Exploring the Page Visibility API for Detecting Page Background State
Trivago
November 2020
The First Prettier Plugin For Twig is Here
Trivago
March 2020
trivago Magazine's Journey to Server-Side Rendering
Trivago
January 2020
Presenting babel-plugin-cloudinary
Trivago
April 2019
Building fast and reliable web applications
Trivago
October 2018
Melody - the sound of JavaScript for our Hotel Search
Trivago
June 2018
trivago just made filtering faster and more accessible, but why and how?
Trivago
December 2017
Accessibility at trivago
Trivago
September 2017
CSS done right - Post RTLCSS
Trivago
July 2017
An Inline SVG Icon System For Our Hotel Search Application
Trivago
September 2016
Thoughts on Atom Building in the Pattern Library
Trivago
June 2016
Dropping IE8 Support: Consequences for JavaScript
Trivago
June 2016
Large Scale CSS Refactoring at trivago
Trivago
February 2016
Speeding up webpack performance with parallel builds
Trivago
December 2015
Risk-free Migration From Assetic to Webpack
Trivago
May 2015
Designing for RTL platforms - A flipped layout
Trivago
April 2015
Tumblr
7
How we wrote our own Service Worker
Tumblr
February 2019
We’re making Tumblr more accessible!
Tumblr
January 2019
A Big New Beautiful Future for the Web at Tumblr
Tumblr
April 2018
Using srcset and sizes to make responsive HTML5 images
Tumblr
March 2018
Flow and TypeScript
Tumblr
September 2017
The Road to Webpack
Tumblr
April 2016
Moving things out of critical rendering path
Tumblr
February 2016
Twitch
3
Beyond Purple
Twitch
December 2019
Investigating React Native
Twitch
April 2017
Improving Chat Rendering Performance
Twitch
August 2016
Twitter
7
How using component-based design helps us build faster
Twitter
July 2019
Redux modules and code-splitting
Twitter
February 2018
The Twitter Lite team about their use of Node.js
Twitter
April 2017
Twitter Lite and High Performance React Progressive Web Apps at Scale
Twitter
April 2017
Infinite List and React
Twitter
April 2017
How we built Twitter Lite
Twitter
April 2017
View Source: Twitter.com
Twitter
January 2017
Uber
6
Counting Calories: How We Improved the Performance and Developer Experience of UberEats.com
Uber
February 2020
Best Practices for Unit Testing in React Version 16
Uber
August 2019
Building a More Seamless Web Booking Flow for Uber
Uber
July 2019
Javascript @ Uber
Uber
July 2017
Building m.uber: Engineering a High-Performance Web App for the Global Market
Uber
June 2017
Powering UberEATS with React Native and Uber Engineering
Uber
March 2017
Udacity
3
React Native: A retrospective from the mobile-engineering team at Udacity
Udacity
July 2018
Udacity’s Front-End Tech Stack
Udacity
July 2016
How a Fixed-Width Button Can Get Your Company Trending on Reddit for All the Wrong Reasons: A Front-End Developer Tale
Udacity
April 2016
Unity
2
WebAssembly Load Times and Performance
Unity
September 2018
WebAssembly is here!
Unity
August 2018
Unsplash
1
How we gradually migrated to TypeScript at Unsplash
Unsplash
March 2018
Vercel
4
How Vercel adopted microfrontends
Vercel
October 2024
Design Engineering at Vercel
Vercel
March 2024
Designing the Vercel virtual product tour
Vercel
June 2023
How we made the Vercel Dashboard twice as fast
Vercel
August 2022
Walmart Labs
11
Differential Serving — Food for latest browsers
Walmart Labs
June 2020
Turbocharging Walmart.com
Walmart Labs
April 2020
Delivering ReactJS applications at scale
Walmart Labs
August 2019
Infinite Scroll’ing the right way
Walmart Labs
April 2019
Midway: Walmart’s mocking journey…
Walmart Labs
October 2018
Lazy Loading Images with IntersectionObserver
Walmart Labs
September 2018
Primer on Front End Automation
Walmart Labs
July 2018
Migrating Large Enterprise to NodeJS
Walmart Labs
December 2017
Migrating Angular 1.x apps to React — The Hybrid Way!
Walmart Labs
November 2017
Cutting Dev Time in Half With Invalid User Input Prevention
Walmart Labs
October 2017
React Native at WalmartLabs
Walmart Labs
December 2016
Wikimedia
19
300ms Faster: Reducing Wikipedia's Total Blocking Time
Wikimedia
May 2023
Analyzing Wikipedia's Search Performance
Wikimedia
April 2021
Measuring Long Tasks and First Input Delay
Wikimedia
December 2019
Wikipedia's JavaScript initialisation on a budget
Wikimedia
September 2019
Tracking down slow event handlers with Event Timing
Wikimedia
June 2019
Performance perception: correlation to RUM metrics
Wikimedia
June 2019
Performance perception: the effect of late-loading banners
Wikimedia
June 2019
Performance perception: how satisfied are Wikipedia users?
Wikimedia
May 2019
Evaluating Element Timing for Images
Wikimedia
April 2019
Migrating code from MediaWiki's ResourceLoader to Webpack
Wikimedia
March 2019
Why performance matters
Wikimedia
December 2018
Mobile web performance: the importance of the device
Wikimedia
June 2018
Extension:Popups (Page Previews) front-end tooling
Wikimedia
April 2018
mustache.js replaced with JavaScript template literals in Extension:Popups
Wikimedia
April 2018
Measuring Wikipedia page load times
Wikimedia
January 2018
Beacons
Wikimedia
August 2017
Improving time-to-logo performance with preload links
Wikimedia
June 2017
Investigating a performance improvement
Wikimedia
June 2017
Creative Techniques for Loading Web Pages Faster
Wikimedia
January 2012
Wingify
10
Automated Heatmap Verification E2E using Selenium and Canvas
Wingify
April 2018
Why we've removed Inheritance/Extend from SASS & you should do the same!
Wingify
November 2017
Migrating towards Yarn and Webpack
Wingify
October 2017
Speeding Up VWO
Wingify
September 2016
A layout trick
Wingify
April 2016
Testing AngularJS Apps End to End Using Protractor
Wingify
February 2015
Overcoming the Challenges of Performance Testing Single-page Apps
Wingify
January 2015
Getting 60 FPS using Chrome devtools
Wingify
July 2013
How We Made The Animated A/B Testing Guide
Wingify
July 2013
jQuery Promises: The answer to PostMessage's asynchrony
Wingify
June 2013
Wix
7
When life gives you lemons, write better error messages
Wix
September 2022
How Wix improved website performance by evolving their infrastructure
Wix
March 2021
Trim the Fat From Your Bundles Using Webpack Analyzer & React Lazy/Suspense
Wix
September 2019
Improving load time for 100 million websites
Wix
June 2018
The Story of Making Wix Accessible
Wix
December 2017
Building a React Native App for 80 Million Users
Wix
October 2016
Taking CSS To Scale: A Pragmatic Approach
Wix
July 2016
Yelp
7
Gondola: an internal PaaS architecture for frontend app deployment
Yelp
March 2023
Writing Emails Using React
Yelp
July 2022
Migrating from Styleguidist to Storybook
Yelp
July 2022
Server Side Rendering at Scale
Yelp
February 2022
Organizing and Securing Third-Party CDN Assets at Yelp
Yelp
November 2019
CSS in the Age of React: How We Traded the Cascade for Consistency
Yelp
March 2018
Whoa! That Embedded Web View Looks Hot in Your iOS App!
Yelp
November 2013
YNAB
5
How we use OpenAPI / Swagger for the YNAB API
YNAB
March 2020
Semantic Colors for Designers and Developers. The Theory: A Semantic Color System
YNAB
February 2020
Semantic Colors for Designers and Developers. The Practice: Semantic Colors for Designers
YNAB
February 2020
Semantic Colors for Designers and Developers. The Practice: Semantic Colors for Developers
YNAB
February 2020
Progressive Conversion of TypeScript Namespaces to Modules
YNAB
September 2019
YouTube
4
Building a Better Web - Part 1: A faster YouTube on web
YouTube
October 2022
A Conspiracy To Kill IE6
YouTube
May 2019
Polymer @ YouTube
YouTube
August 2017
Page Weight Matters
YouTube
December 2012
Zajno
1
Visualizing money: how we explained a complex financial product using animation
Zajno
September 2018
Zynga
2
React Native Stability Monitoring
Zynga
May 2019
Why & How Words With Friends Is Adopting React Native
Zynga
September 2018