frontend-case-studies
by andrew--r
💼 A curated list of technical talks and articles about real world enterprise frontend development
AI summary
Frontend case studies
A curated collection of articles and talks on real-world enterprise frontend development challenges and solutions.
- stars
- 7.3K
- forks
- 423
- watching
- 223
- awesome list
- 1
- entries
- 945
What's in the list
945 links in 209 sections, with live GitHub stats.activeno commit in 2y
AdRoll
- Lazy loading Backbone collections with Promises
(November 12, 2013)
- Rollup: Shared UI components at AdRoll
(November 05, 2015)
- Rollup: How we use React.js and npm to share UI code at AdRoll
(November 12, 2015)
- Rollup: What we have learned from sharing UI code at AdRoll
(November 19, 2015)
- gulp-react-docs: From propTypes to Markdown in 3 seconds
(December 21, 2015)
- How to Create a Style Guide: Start with a UI Framework
(July 29, 2016)
- How to Run a Front-End Infrastructure Team
(August 29, 2017)
Aha!
- How I Convinced Our CTO to Switch From CoffeeScript to ES6
(September 7, 2017)
Airbnb
- Turbocharged JavaScript Refactoring with Codemods
(April 27, 2016)
- Rearchitecting Airbnb’s Frontend
(May 15, 2017)
- Migrating from Mocha to Jest
(June 15, 2017)
- React Performance Fixes on Airbnb Listing Pages
(December 5, 2017)
- Server Rendering, Code Splitting, and Lazy Loading with React Router v4
(January 10, 2018)
- React Native at Airbnb
(June 19, 2018): , , ,
- Operationalizing Node.js for Server Side Rendering
(July 18, 2018)
- How Airbnb is Moving 10x Faster at Scale with GraphQL and Apollo
(December 5, 2018)
- Building (And Re-Building) the Airbnb Design System
(October 30, 2019)
- ts-migrate: A Tool for Migrating to TypeScript at Scale
(August 18, 2020)
- A Deep Dive into Airbnb’s Server-Driven UI System
(June 29, 2021)
- Measuring Web Performance at Airbnb
(December 7, 2021)
- Faster JavaScript Builds with Metro
(May 24, 2022)
- Airbnb’s Trip to Linaria
(June 16, 2022)
- Improving Performance with HTTP Streaming
(May 17, 2023)
- Rethinking Text Resizing on Web
(May 16, 2024)
- How Airbnb Smoothly Upgrades React
(July 23, 2024)
- Adopting Bazel for Web at Scale
(Nov 12, 2024)
ALDO
- The Impact of Web Performance
(February 6, 2020)
Algolia
- Improving Web Performance to Mirror Engine Speed
(July 26, 2017)
- Using NetInfo API to Improve Algolia’s JavaScript Client
(July 30, 2019)
Allegro
- Managing Frontend in the Microservices Architecture
(March 12, 2016)
- Why Allegro Ads chose TypeScript
(April 9, 2019)
- Page visibility and performance metrics
(September 2, 2019)
- Performance of JavaScript optional chaining
(November 8, 2019)
- Using ESLint to improve your app’s performance
(August 11, 2020)
- Measuring Web Performance
(June 8, 2021)
- Making API calls a seamless user experience
(July 21, 2021)
- CSS Architecture and Performance in Micro Frontends
(July 29, 2021)
- How to turn on TypeScript strict mode in specific files
(September 6, 2021)
- Evolution of web performance culture
(September 23, 2021)
- How we refactored the search form UI component
(October 26, 2021)
Amazon
- How we halved the publish size of modular AWS SDK for JavaScript clients
(October 14, 2021)
Artsy
- Rendering on the Server and Client in Node.js
(November 30, 2013)
- The Tech Behind Live Auction Integration
(August 9, 2016)
- React Native at Artsy
(August 15, 2016)
- Making Artsy Editorial Accessible
(August 29, 2017)
- Helping the Web Towards OSS by Default
(September 6, 2016)
- JSON Web Tokens: Artsy's Journey
(October 26, 2016)
- Exploration: Front-end JavaScript at Artsy in 2017
(February 5, 2017)
- Modernizing Force
(September 5, 2017)
- React Native, 2 years later
(March 17, 2018)
- Keeping Artsy's dependencies up to date
(November 26, 2018)
- Switch from Capybara Webkit to Chrome
(November 27, 2018)
- GraphQL Stitching 101
(December 11, 2018)
- GraphQL: Union vs. Interface
(January 14, 2019)
- From TSLint to ESLint, or How I Learned to Lint GraphQL Code
(January 29, 2019)
Atlassian
- Trellisheets: How we spin up CSS for Trello sites with ease
(March 1, 2016)
- Using an event-driven architecture to improve Jira Software responsiveness
(November 05, 2019)
- Scaling React server-side rendering in Jira Cloud
(February 04, 2020)
- Improving performance through better architecture
(June 23, 2020)
- Performance in Jira front-end: the story of a single line of code
(November 16, 2020)
- Performance in Jira front-end: using modern bundles to improve load time
(December 5, 2020)
Australian Broadcasting Corporation
- Composing Components
(September 28, 2018)
- From data to DOM: Building a text rendering pipeline for React
(October 23, 2019)
- Migrating the platform that powers ABC sites to TypeScript
(September 30, 2021)
Badoo
- The painless way to collect statistics from a web-site
(May 18, 2017)
- Translating interfaces into almost fifty languages: Sketch
(October 17, 2017)
- part 1
Hot localisations update: , (November 2017)
- part 1
From zero to Cosmos: , , (February 2018)
- Translating Dust templates to JSX
(May 16, 2018)
- How to manage your Design Tokens with Style Dictionary
(September 27, 2018)
- why is it not the same as it is for designers
Optical alignment for frontend developers: and (November 22, 2018)
- from the idea to the assets Sketch files
Generating multi-brand multi-platform icons with Sketch and a Node.js script: and (December 2018)
- Design Tokens beyond colors, typography, and spacing
(November 12, 2019)
BBC
- Redefining the BBC News core experience
(July 22, 2016)
- HTTP/2 is easy, just turn it on…
(November 7, 2017)
- How BBC Interactive Content Works Across AMP, Apps, And The Web
(March 15, 2018)
Betty Crocker
Bitmovin
- How Bitmovin Used React/Redux to Develop Its New Dashboard
(September 7, 2017)
- To Play, or Not to Play – New AutoPlay Policies for Safari 11 and Chrome 64
(September 28, 2017)
- To Play, or Not to Play #2 – Firefox blocks audible autoplay by default!
(February 20, 2019)
blogfoster
Bloomberg
- How Bloomberg Used React Native to Develop its new Consumer App
(December 15, 2016)
- 10 Insights from Adopting TypeScript at Scale
(November 9, 2020)
BuzzFeed
- Micro Frontends at BuzzFeed
(September 17, 2019)
- Accessible BuzzFeed
(August 27, 2020)
- CLS at BuzzFeed — Part 1: Raising The Floor
(November 6, 2021)
- CLS at BuzzFeed — Part 2: Getting Help From Real Users
(November 6, 2021)
- CLS at BuzzFeed — Part 3: Dealing with the unpredictable
(November 6, 2021)
Campaign Monitor
- Fixing bugs with Outlook specific CSS
(November 9, 2016)
- Better video previews for email
(December 20, 2016)
- How to test accessibility of emails
(June 5, 2018)
Carbon Five
- Cross-Domain Browser Window Messaging with HTML5 and Javascript
(August 17, 2012)
- Composing Synchronous and Asynchronous Functions in JavaScript
(January 29, 2015)
- An AJAX Auto-Save Implementation
(January 24, 2018)
Carousell
- How we made Carousell’s mobile web experience 3x faster
(October 31, 2018)
- part 1
Building a Dynamic UI System at Carousell (Feb/Mar 2019): , and
- An Experiment with JSON Schema
(April 18, 2019)
cars.com
Checkbot
- Scalable & lightweight web screenshots with SVG
(November 30, 2018)
Clearleft
- How to use variable fonts in the real world
(January 26, 2018)
- A framework for web performance
(September 20, 2018)
Cloudflare
- How we built Origin CA: Web Crypto
(May 10, 2016)
- Open Sourcing CloudFlare’s UI Framework
(June 8, 2016)
- Going Global - a Localization Case Study at Cloudflare
(August 23, 2017)
- How we made our page-load optimisations even faster
(February 2, 2018)
- Real URLs for AMP Cached Content Using Cloudflare Workers
(November 13, 2018)
- Fast Google Fonts with Cloudflare Workers
(November 22, 2018)
- Migrating to React land: Gatsby
(March 26, 2020)
- Moving from reCAPTCHA to hCaptcha
(April 8, 2020)
- Dark Mode for the Cloudflare Dashboard
(September 29, 2021)
Cloud Four
- All Mixed Up: Isomorphic Sorting Gone Wrong
(October 17, 2019)
CodeSandbox
- Lessons learned refactoring Codesandbox.io from Redux to Cerebral
(February 7, 2018)
Condé Nast
- The Why and How of Google AMP at Condé Nast
(August 29, 2017)
Conductor
- Painless Migration From Backbone to React/Redux
(February 16, 2018)
Datadog
- Redux-Doghouse – Creating Reusable React-Redux Components Through Scoping
(November 14, 2016)
- How Datadog uses Datadog to gain visibility into the Datadog user experience
(February 22, 2022)
- DRUIDS, the Design System that Powers Datadog
(September 29, 2022)
DAZN
- Testing MobX State Tree
(December 7, 2018)
- Handling complexity in lambda functions
(February 8, 2019)
- Micro-frontends, the future of Frontend architectures
(April 2, 2019)
- Adopting a Micro-frontends architecture
(April 8, 2019)
- Orchestrating micro-frontends
(April 12, 2019)
- Jest: Our journey into performant unit tests
(April 15, 2019)
- Identifying micro-frontends in our applications
(May 21, 2019)
De Voorhoede
- Why our website is faster than yours
(July 16, 2016)
DEV
- App shell UX with service workers and streams
(June 23, 2020)
Discord
- Using React Native: One Year Later
(June 7, 2016)
- Lessons from migrating a large codebase to React 16
(October 5, 2017)
- Why Discord is Sticking with React Native
(July 26, 2018)
- How Discord Maintains Performance While Adding Features
(August 2, 2018)
- How Discord Handles Two and Half Million Concurrent Voice Users using WebRTC
(September 10, 2018)
- Investigating Discord’s React Memory Leak
(August 8, 2019)
- How Discord achieves native iOS performance with React Native
(November 7, 2019)
- How Discord Implemented App-Wide Keyboard Navigation
(December 17, 2020)
<div>RIOTS
- A story of how we migrated to pnpm
(January 18, 2022)
DoorDash
- Things to Keep in Mind When Integrating a Map Feature to a Web App
(Septermber 11, 2020)
- Implementing Theming in DoorDash’s Design Language System
(December 17, 2020)
- Serving Multiple Websites and Business Logic From a Single Platform
(February 9, 2021)
Dropbox
- Translating Dropbox
(April 18, 2011)
- Some love for JavaScript applications
(August 31, 2012)
- Dropbox dives into CoffeeScript
(September 13, 2012)
- On Reporting and Filtering
Content Security Policy at Dropbox (September 2015): , , ,
- Annotations on Document Previews
(November 30, 2016)
- Preventing cross-site attacks using same-site cookies
(March 16, 2017)
- Deploying Brotli for static content
(April 6, 2017)
- Dropbox Paper: Emojis and Exformation
(November 15, 2017)
- Improving Document Preview Performance
(December 1, 2017)
- Migrating from Underscore to Lodash
(September 5, 2018)
- Redux with Code-Splitting and Type Checking
(July 16, 2019)
- Design Tooling at Scale
(October 12, 2019)
- The Great CoffeeScript to Typescript Migration of 2017
(May 13, 2020)
- JQuery to React: How we rewrote the HelloSign Editor
(September 30, 2020)
eBay
- Data URI Sprites
(July 12, 2011)
- The New eBay Motors Homepage is 2X Faster
(October 14, 2011)
- Five JavaScript Tips for a Sleek User Experience
(April 16, 2012)
- Page Loading and Rendering Optimizations
(June 22, 2012)
- Bandwidth-based Experience
(October 10, 2012)
- Early Detection of Frontend Single Points of Failure
(January 22, 2013)
- Front-end Renaissance at eBay
(January 13, 2014)
- Yet Another Responsive vs. Adaptive Story
(March 5, 2014)
- Don't Build Pages, Build Modules
(October 2, 2014)
- Async Fragments: Rediscovering Progressive HTML Rendering with Marko
(December 8, 2014)
- The Power of Perceived Performance
(January 5, 2015)
- Mobile First - A Retrospective
(May 13, 2015)
- How Our CSS Framework Helps Enforce Accessibility
(November 4, 2015)
- Packaging for Performance
(January 4, 2016)
- The Path to JavaScript Next
(March 15, 2016)
- Browse eBay with Style and Speed
(June 30, 2016)
- Experience the Lightning Bolt
(September 21, 2016)
- Effective Front-End Code Review
(March 2, 2017)
- Building a UI Component in 2017 and Beyond
(May 3, 2017)
- eBay’s Font Loading Strategy
(September 21, 2017)
- The Future of Marko
(October 26, 2017)
- Beyond HTTPS
(December 13, 2017)
- Integration Testing with React and Enzyme
(June 26, 2018)
- WebAssembly at eBay: A Real-World Use Case
(May 22, 2019)
- Autofill on Browsers: A Deep Dive
(December 3, 2019)
- Speed By A Thousand Cuts
(January 23, 2020)
- Auto Effect Pattern with Redux and React Hooks
(April 15, 2020)
EdgeDB
- An approach to optimizing TypeScript type checking performance
(August 8, 2024)
Electronic Arts
- Building UI at Enterprise Scale with Web Components
(August 22, 2017)
Ele.me
- Upgrading Ele.me to Progressive Web App
(May 6, 2017)
Etsy
- Localizing Logically for a Global Marketplace
(October 21, 2011)
- Multilingual User Generated Content and SEO
(December 2, 2011)
- Measuring Front-end Performance With Real Users
(November 29, 2012)
- Responsive emails that really work
(March 13, 2014)
- Transitioning to SCSS at Scale
(February 2, 2015)
- Rebuilding the Foundation of Etsy’s Seller Tools
(February 5, 2015)
- How Etsy Formats Currency
(April 19, 2016)
- Reducing Image File Size at Etsy
(May 30, 2017)
- How Etsy Localizes Addresses
(September 26, 2018)
- Developing in a Monorepo While Still Using Webpack
(April 6, 2020)
- The journey to fast production asset builds with Webpack
(February 3, 2020)
- Etsy’s Journey to TypeScript
(November 8, 2021)
Evil Martians
- Is React Native podium-ready?
(May 14, 2018)
Expedia Group
- Scoping A/B Test Code in React
(September 4, 2018)
- Profiling React Server-Side Rendering to Free the Node.js Event Loop
(February 18, 2019)
- Creating Your Own Apollo Cache for Perf and Profit
(February 7, 2019)
- Optimizing a Page: Resource Hints, Critical CSS, and Webpack
(March 20, 2019)
- Contextual and Consistent Analytic Events in React
(April 22, 2019)
- Minimizing DOM Nodes for Performance
(September 24, 2019)
- Web Performance vs. User Engagement
(October 31, 2019)
- Migrating to WKWebView
(December 11, 2019)
- A (Small) Case for Function-Based React Components
(December 10, 2019)
- Measuring Interaction Performance with FPS Data
(December 16, 2019)
- File Upload with GraphQL, Apollo Server, Hapi 18+, and React
(January 16, 2020)
- Web Applications: Analyzing Client-Side Performance
(January 7, 2020)
- Schema Driven UIs
(January 23, 2020)
- Responsive Accessibility Guidelines at Expedia.com
(February 27, 2020)
- 12 Tips to Improve Client Side Page Performance
(April 28, 2020)
- Using Webpack Module Federation to Create an App Shell
(June 10, 2020)
- CSS-in-JS: An Investigation
(July 7, 2020)
- Multi-Variate Web Optimisation Using Linear Contextual Bandits
(September 1, 2020)
- How Expedia.com Uses Accessibility Automation
(October 1, 2020)
- Sizing Android WebView iframes with JavaScript
(April 27, 2021)
ezCater
- The case against React snapshot testing
(June 27, 2019)
- Saying goodbye to emotion
(June 1, 2021)
- BigPipe: Pipelining web pages for high performance
(June 4, 2010)
- The technology behind preview photos
(August 6, 2015)
- Improving CSS quality at Facebook and beyond
(June 13, 2016)
- This browser tweak saved 60% of requests to Facebook
(January 26, 2017)
- Building High-Quality JavaScript Tools
(June 2, 2017)
- React 16: A look inside an API-compatible rewrite of our frontend UI library
(September 26, 2017)
- Design Systems & Tools at Facebook
(November 15, 2017)
- Behind the Scenes: Improving the React Repository Infrastructure
(December 15, 2017)
- Building the New facebook.com with React, GraphQL and Relay
(April 30, 2019)
- Rebuilding our tech stack for the new Facebook.com
(May 8, 2020)
- Making Facebook.com accessible to as many people as possible
(July 30, 2020)
FARFETCH
- The need for speed — 1: measuring today’s web performance
(February 19, 2019)
- The need for speed — 2: call for metrics
(February 19, 2019)
- How to build a performance culture at scale
(September 11, 2019)
- The art of failure II: graceful degradation
(September 20, 2021)
- GraphQL sessions: powering farfetch.com
(May 6, 2022)
fastq.bio
- How We Used WebAssembly To Speed Up Our Web App By 20X
(April 5, 2019)
Figma
- Building a professional design tool on the web
(December 7, 2015)
- Debugging Data Corruption with Emscripten
(November 7, 2016)
- WebAssembly cut Figma’s load time by 3x
(June 8, 2017)
- Introducing BrowserView for Electron
(June 29, 2017)
- Introducing: Figma to React
(April 26, 2018)
- Figma, faster 🏎
(August 13, 2018)
- How to build a plugin system on the web and also sleep well at night
(August 22, 2019)
- React at 60fps: improving scrolling comments in Figma
(August 19, 2020)
- Inside Figma: a case study on strict null checks
(December 17, 2020)
- Illuminating dark mode
(July 21, 2022)
Financial Times
- Building The New Financial Times Web App
(May 23, 2013)
- Free-market software development
(August 21, 2015)
- SVG icons are easy but the fallbacks aren't
(December 1, 2015)
- A faster FT.com
(April 4, 2016)
- YES, your site too can (and should) be accessible
(May 23, 2017)
- Improving the cache performance of The Polyfill Service
(June 9, 2017)
- Can't You Just Make It More like Bootstrap?
(July 22, 2017)
- Speeding up without slowing down
(November 7, 2017)
- What happens when you visit ft.com?
(November 24, 2017)
- Tips for in-house teams in a free market software culture
(January 30, 2018)
- An outbreak of Accessibility anti-patterns
(May 18, 2018)
- This one line of Javascript made FT.com 10 times slower
(July 16, 2018)
- Improving the cache performance of The Polyfill Service even more
(January 21, 2019)
- Designing a sustainable front-end toolset for FT.com
(April 27, 2020)
- Animating list reordering with React Hooks
(August 26, 2020)
- Taming Webpackʼs content hashes
(June 3, 2020)
Flickr
- Lessons Learned from the Flickr Touch Lightbox
(July 20, 2011)
- Creating an interface for geofences
(September 6, 2011)
- Raising the bar on web uploads
(April 25, 2012)
- Building an HTML5 Photo Editor
(April 18, 2012)
- Building The Flickr Web Uploadr: The Grid
(May 11, 2012)
- Parsing Exif client-side using JavaScript
(June 1, 2012)
- Building Flickr’s new Hybrid Signed-Out Homepage
(April 23, 2014)
- Perceptual Image Compression at Flickr
(September 25, 2015)
- Layout in Flipboard for Web and Windows
(March 24, 2014)
- 60 FPS on the mobile web
(February 10, 2015)
Flipkart
- Building Flipkart Lite: A Progressive Web App
(November 11, 2015)
Flocktory
- Third party libraries
(May 22, 2017)
Futurice
- How Elm made our work better
(November 1, 2016)
Garbarino
- Building a PWA in Argentina
(July 24, 2017)
GitHub
- GitHub's CSS
(July 23, 2014)
- How GitHub is using Web Components in production
(September 30, 2014)
- Browser Monitoring for GitHub.com
(May 19, 2015)
- GitHub's CSP journey
(April 12, 2016)
- GitHub's post-CSP journey
(January 19, 2017)
- Shipping system fonts to GitHub.com
(February 7, 2018)
- Design Systems at GitHub
(July 6, 2018)
- Removing jQuery from GitHub.com frontend
(September 6, 2018)
- How we built the GitHub globe
(December 21, 2020)
- How GitHub Actions renders large-scale logs
(March 25, 2021)
GitLab
- Why We Chose Vue.js
(December 1, 2016)
- Our big Frontend plan revealed
(February 6, 2017): long term plan to make GitLab as fast and performant as possible with Vue and webpack
- How we do Vue: one year later
(November 9, 2017)
- How GitLab switched to Headless Chrome for testing
(December 19, 2017)
- Our journey in switching to native Unicode emoji
(May 30, 2018)
- How we iterated and improved our frontend team culture
(June 26, 2018)
- Why we chose ECharts for data visualizations
(September 30, 2019)
- How GitLab Pages made our Sketch design handoffs easier and faster
(November 7, 2019)
- How we created a dark UI for GitLab's Web IDE
(May 20, 2020)
Goibibo
- How Goibibo's PWA improved conversions by 60%
(September 29, 2020)
- Designing very large (JavaScript) applications
(April 15, 2018)
- Building the Google Photos Web UI
(July 10, 2018)
- TypeScript at Google
(September 1, 2018)
- The Chrome Dev Summit site: case study
(March 12,2019)
- The new AdWords UI uses Dart — we asked why
(March 31, 2016)
- Bringing service workers to Google Search
(June 20, 2019)
- How we built the Chrome DevTools WebAuthn tab
(October 22, 2020)
- Migrating Puppeteer to TypeScript
(January 21, 2021)
- Implementing CSP and Trusted Types debugging in Chrome DevTools
(November 1, 2021)
GOV.UK
- Patterns for accessible webchats
(December 9, 2016)
- How to create content that works well with screen readers
(February 8, 2017)
- How we’ve made GOV.UK Elements even more accessible
(February 28, 2018)
- Why the GOV.UK Design System team changed the input type for numbers
(February 24, 2020)
- Why videos on GOV.UK use the YouTube video player
(March 16, 2020)
- How we reduced CSS size and improved performance across GOV.UK
(December 15, 2023)
grammarly
- Building Browser Extensions At Scale
(October 6, 2017)
- Introducing Embrace: A Framework for Building Declarative UIs
(September 3, 2021)
- Real-Time Collaborative Text Editing
Under the Hood of the Grammarly Editor: and (April 22, 2022)
- Making Grammarly Feel Native On Every Website
(March 7, 2022)
- part 1
How Grammarly Tackles Hidden Complexity in Front-End Applications: and (March 7, 2022)
- Signals With @grammarly/focal
(August 21, 2023)
Gusto
- Scaling Front-end Architecture
(June 10, 2016)
- Evolving JavaScript Part 1: Goodbye Backbone
(July 12, 2016)
- Evolving JavaScript Part 2: Hello React
(July 12, 2016)
- Evolving JavaScript Part 3: Building a React Application
(July 12, 2016)
- Taking off with Apollo
(September 12, 2018)
- How I fell out of love with HOCs
(December 9, 2018)
HealthCare.gov
- Building a design system for HealthCare.gov
(August 29, 2017)
Heap
- Goodbye CoffeeScript, Hello TypeScript
(October 7, 2015)
- Migrating To React + MobX While Shipping New Features
(August 16, 2017)
- How We Write Front-end Code
(February 20, 2018)
- Redesigning Heap Without a Feature Branch
(April 10, 2019)
- How we failed, then succeeded, at migrating to TypeScript
(October 10, 2019)
in der Apotheke
- Farewell, Google Maps
(July 18, 2018)
Infinite Red
- Switching from Ava to Jest for TypeScript
(November 6, 2017)
- Using TypeScript to upgrade Ignite without losing my mind
(March 20, 2019)
- Yarn 1 vs Yarn 2 vs NPM
(February 6, 2020)
- Why Infinite Red uses MobX-State-Tree instead of Redux
(June 16, 2020)
Insider Inc.
- How to style different sites with one CSS collection
(December 17, 2018)
- Why we got rid of all our front-end and back-end engineers
(February 13, 2019)
- Delightful ways to write reusable CSS using subclasses
(March 1 , 2019)
- React Native at Instagram
(February 7, 2017)
- part 1
Making Instagram.com faster: (August 1, 2019), (September 6, 2019), (October 11, 2019), (November 1, 2019)
Internet Archive
- Pixels vs. Ems: Users DO Change Font Size
(June 13, 2018)
Intuit
- Making Accessibility an Integral Part of the Creative Workflow
(April 15, 2018)
- TurboTax Live’s Approach to a Gender-Neutral Design System
(February 21, 2019)
- Delivering Consistent Animations with a Design System Library
(April 25, 2019)
- GraphQL: Intuit’s Path to ONE API System
(March 13, 2019)
InVision
- Sharing ESLint Across Teams
(April 5, 2016)
- Optimizing Webpack for Faster React Builds
(April 12, 2016)
- Persist Redux State by Using Sagas
(April 26, 2016)
- Testing Our Shared ESLint Configs
(May 12, 2016)
- How ESLint Saved Our Soul
(August 12, 2016)
- React Performance Tune-Up
(September 23, 2016)
- Building the inspect measurement engine
(July 17, 2019)
Khan Academy
- Babel in Khan Academy's i18n Toolchain
(June 22, 2015)
- Fun with slope fields, css and react
(August 5, 2015)
- Copy-pasting more than just text
(August 31, 2015)
- i18nize-templates: Internationalization After the Fact
(September 28, 2015)
- Schrödinger's deploys no more: how we update translations
(October 12, 2015)
- Forgo JS packaging? Not so fast
(November 23, 2015)
- Inline CSS at Khan Academy: Aphrodite
(March 29, 2016)
- Migrating to a Mobile Monorepo for React Native
(May 29, 2017)
- Creating Query Components with Apollo
(June 12, 2017)
- tota11y - an accessibility visualization toolkit
(April 15, 2018)
Kickstarter
- Namespacing Actions for Redux
(November 20, 2017)
Klarna
- Migrating from Rails’ asset pipeline to Node’s webpack
(January 2, 2016)
- How removing caching improved mobile performance by 25%
(January 10, 2017)
Line
- LINE MANGA: Smooth page transition with Page Stack
(January 18, 2018)
- Easy code-splitting with grow-loader
(January 24, 2018)
- Bringing a Modern Javascript Build Pipeline to LinkedIn
(January 20, 2016)
- Sleek and Fast: Speeding Up your Fat Web Client
(October 19, 2017)
- The Glimmer Binary Experience
(December 7, 2017)
- Ember Timer Leaks: The Bad Apples in Your Test Infrastructure
(January 3, 2018)
Lucidchart
- IE10: How does it really stack up?
(November 14, 2012)
- Atomic CSS as a tool set
(January 31, 2014)
- The Definitive Guide to Copying and Pasting in JavaScript
(December 2, 2014)
- Big content in a little canvas
(May 19, 2015)
- Improving Angular 2 Load Times and a 29KB Hello World App
(September 26, 2016)
- Angular 2 and Observables: Data Sharing in a Multi-View Application
(November 8, 2016)
- Using Angular 2 Components In a Non-Angular App
(April 10, 2017)
- Converting 600k lines to TypeScript in 72 hours
(November 16, 2017)
- How to handle folder uploads in Angular 2+
(January 3, 2018)
- JavaScriptCore – The Holy Grail of Cross Platform
(February 14, 2018)
- ZoneTracker: Tracking JavaScript Performance with Zone.js
(November 9, 2018)
- JavaScriptCore—10 Months Later
(January 3, 2019)
Lyft
- TypeScript at Lyft
(September 27, 2017)
- Re-approaching Color
(September 21, 2018)
- Changing Lanes: How Lyft is Migrating 100+ Frontend Microservices to Next.js
(November 30, 2020)
- Frontend at Lyft: An Overview
(March 9, 2021)
Mail.ru
Mailchimp
- Designing automated tests for React
(August 10, 2019)
MDN
- Refactoring MDN macros with async, await, and Object.freeze()
(February 7, 2019)
Medium
- Why ContentEditable is Terrible
(May 14, 2014)
- Wait, Don’t Touch That! Mutual Exclusion Locks & JavaScript
(January 17, 2015)
- The curious case of the disappearing Polish S
(February 2, 2015)
- Five Goofy Things Medium Did That Break Accessibility
(June 29, 2015)
- Simple Style Sheets, Or How to Improve Your Sleep by Dropping the Cascade
(September 28, 2016)
- GraphQL Server Design @ Medium
(November 2, 2018)
MemSQL
- Porting 30K lines of code from Flow to TypeScript
(January 13, 2019)
Mercado Libre
- How Mercado Libre optimized for Web Vitals (TBT/FID)
(September 21, 2020)
Microsoft Bing
- Fast Front-End Performance for Microsoft Bing
(August 25, 2022)
Microsoft To-Do
- How We React at Microsoft To-Do
(January 5, 2018)
Mixmax
- Scaling Mixmax: Front-end performance
(May 5, 2015)
- How we built ‘instant’ autocomplete for Mixmax
(November 5, 2015)
- Yarn-ifying Mixmax: why and how we moved from npm to Yarn
(April 24, 2017)
- Using CORS policies to implement CSRF protection
(June 13, 2017)
- Precisely observing structural page changes
(December 7, 2017)
- To Yarn and Back (to npm) Again
(May 29, 2018)
Mixpanel
Monzo
- Building a Bank with Next.js: How We Use Next.js at Monzo
(December 2, 2020)
Mozilla
- The Art of UI Skeletons
(April 23, 2019)
- To Eleventy and Beyond
(October 1, 2020)
Mud
- A Year of Utility Classes
(January 28, 2019)
Myntra
- Myntra’s Web UI Journey — AMP and PWA
(January 31, 2018)
Netflix
- HTML5 Video Playback UI
(October 21, 2013)
- Node.js in Flames
(November 19, 2014)
- JSON Graph: Reactive REST at Netflix
(April 1, 2015)
- Localization Technologies at Netflix
(June 4, 2015)
- Making Netflix.com Faster
(August 5, 2015)
- Crafting a high-performance TV user interface using React
(January 12, 2017)
- Netflix's approach to ES6 feature detection
(January 20, 2017)
- Pass the Remote: User Input on TV Devices
(May 17, 2017)
- Shop Talk podcast #264: React with Netflix
(May 22, 2017)
- Performance Signup in React & Transactional Apps with Redux
(October 25, 2017)
- Implementing Japanese Subtitles on Netflix
(December 11, 2017)
- Integrating imperative APIs into a React application
(December 20, 2017)
- Pseudo Localization @ Netflix
(August 6, 2018)
- Delivering Meaning with Previews on Web
(November 12, 2018)
- Enhancing the Netflix UI Experience with HDR
(September 24, 2018)
- Our learnings from adopting GraphQL
(December 10, 2018)
- Modernizing the Web Playback UI
(December 12, 2018)
- Architecting UI for Netflix Studio Technology
(November 14, 2019)
New Relic
- Real-World JavaScript Performance Tips
(November 14, 2014)
- How We Architected the New Relic Mobile Web UI in React
(January 3, 2018)
Notion
- Migrating Notion's marketing site to Next.js
(August 12, 2021)
npm
- Re-inventing npmjs.com
(April 3, 2018)
- JavaScript Usage by Industry
(June 27, 2018)
OK GROW!
- Migrating from Iron Router to FlowRouter (with Blaze)
(September 17, 2015)
- Where does Redux fit in Meteor?
(July 15, 2016)
- Real-world Unit Testing with Meteor and Jest
(October 17, 2017)
- Optimizing a GraphQL app using Apollo Engine
(February 12, 2019)
OYO
- OYO on a User Experience Quest with AMP ⚡
(January 11, 2018)
- AMP for Email - Interactive and Dynamic Email Experiences at OYO
(March 26, 2019)
- Shipping ES6 in browsers without Polyfill
(April 17, 2019)
- Building Chrome Extension with ReactJs: Beginner’s Guide
(May 13, 2019)
- A complete implementation guide to Trusted Web Activity(TWA)- OYO Lite
(November 7, 2019)
Oyster
- Oyster Shots on the Front End
(July 29, 2011)
- Using React and jQuery Together
(March 22, 2016)
Palantir
- Scaling product design with Blueprint
(January 6, 2017)
- TSLint in 2019
(February 19, 2019)
PayPal
- Reinventing cross-origin requests, without CORS
(September 6, 2017)
- Introducing PayPal’s open-source cross-domain javascript suite
(October 16, 2017)
- GraphQL: A success story for PayPal Checkout
(October 17, 2018)
- Why every new web app at PayPal starts with TypeScript
(January 21, 2019)
- Scaling GraphQL at PayPal
(October 30, 2019)
- Sharing UI Components at an Enterprise Level
(June 2, 2020)
- How Micro Frontend Has Changed Our Team Dynamic
(August 10, 2020)
- GraphQL at PayPal: An Adoption Story
(September 1, 2021)
Pinafore
- Introducing Pinafore for Mastodon
(April 9, 2018)
- One year of Pinafore
(June 2, 2019)
- The joy and challenge of developing for KaiOS
(September 22, 2019)
- What I’ve learned about accessibility in SPAs
(November 5, 2019)
- Demystifying SEO with experiments
(January 27, 2015)
- How we made JavaScript testing 15x faster
(February 3, 2015)
- Making Pinterest HTTPS
(March 13, 2015)
- How we switched our template rendering engine to React
(November 18, 2016)
- Introducing Bonsai: an open source Webpack analyzer
(June 2, 2017)
- Migrating Pinterest profiles to React
(September 23, 2016) ( ) (November 22, 2017)
- A Pinterest Progressive Web App Performance Case Study
(November 30, 2017)
- Supporting React Native at Pinterest
(May 10, 2018)
- A one year PWA retrospective
(July 20, 2018)
Pivotal Tracker
- Using Elm in Production at Pivotal Tracker
(January 31, 2017)
- Improving Accessibility in Pivotal Tracker
(February 1, 2018)
Plaid
- Securing WebViews with Chrome Custom Tabs
(April 9, 2020)
Plotly
- Modularizing monolithic javascript projects in plotly.js
(January 28, 2016)
Product Hunt
- React @ Product Hunt
(May 30, 2017)
- GraphQL @ Product Hunt
(November 2, 2017)
Proton
- Deploying CSS Logical Properties On Web Apps
(December 23, 2022)
Quizlet
- Smooth Game Animations in React
(February 18, 2016)
- Launching A Successful Redesign For 20 Million Students
(June 13, 2017)
- Cypress: The future of end-to-end testing for web applications
(February 8, 2018)
Quora
- Faster Paint Times
(August 18, 2016)
- Choosing Quora’s GraphQL client
(July 22, 2020)
REA Group
- Singletons Suck (aka Flux to Redux)
(August 17, 2016)
- ReactJS Performance Debugging (aka The Magic of Reselect Selectors)
(September 9, 2016)
Reaktor
- Refactoring 30000 lines of JS with types
(January 24, 2017)
- How We Built r/Place
(April 13, 2017)
- Why We Chose Typescript
(June 30, 2017)
Redmart
- Angular The Hard Way #1 Organise and manage domain data
(April 22, 2015)
- RedMart's experience with PWA
(October 25, 2018)
- How we use Storybook for documentation and code reviews
(November 14, 2018)
repl.it
- Infinite Loops
(January 23, 2017)
- Modular, fast, small: how we built a server-rendered IDE
(February 14, 2018)
Revolut
- How we learned to stop worrying and love GraphQL
(August 8, 2019)
- The fundamentals of web development at Revolut
(January 4, 2021)
Roompact
- Elm In Production: 25,000 Lines Later
(July 30, 2017)
Safety Culture
- Why we moved our graphQL server from Node.js to Golang
(June 27, 2018)
Scratch
Sentry
- Building Sentry: Source maps and their problems
(July 16, 2019)
- How we trimmed the Sentry JavaScript SDK file size by 20%
(February 28, 2022)
- Understanding the Performance Impact of Generated JavaScript
(July 22, 2022)
- How We Made JavaScript Stack Traces Awesome
(November 30, 2022)
- Sentry’s Frontend Tests: Migrating from Enzyme to React Testing Library
(February 23, 2023)
- How we reduced CI time by 35% with Nx Caching
(March 31, 2023)
- Measuring Session Replay Overhead
(July 5, 2023)
- How We Reduced Replay SDK Bundle Size by 35%
(November 14, 2023)
Shopify
- How 17 lines of code improved shopify.com loading by 50%
(May 24, 2017)
- Building Shopify mobile with native and web technology
(September 29, 2017)
- Designing a GraphQL API
(June 18, 2018)
- Want to Improve UI Performance? Start by Understanding Your User
(October 20, 2019)
Skillshare
- How We Ditched Redux for MobX
(July 2, 2018)
Slack
- Reducing Slack’s memory footprint
(March 3, 2017)
- TypeScript at Slack
(April 11, 2017)
- Rebuilding Slack’s Emoji Picker in React
(May 23, 2017)
- Getting to Slack faster with incremental boot
(July 5, 2016)
- Localizing Slack
(September 12, 2017)
- Rebuilding slack.com
(October 11, 2017)
- Keep webpack Fast: A Field Guide for Better Build Performance
(January 17, 2018)
- When a rewrite isn’t: rebuilding Slack on the desktop
(July 22, 2019)
- The Gradual Design System: How We Built Slack Kit
(September 12, 2019)
- Building Dark Mode on Desktop
(September 24, 2019)
- Gantry: Slack’s Fast-booting Frontend Framework
(October 23, 2019)
- A Day in the Life of a Frontend Product Engineer at Slack
(February 5, 2020)
- The Unsuspecting Beauty & Complexity of Web Forms
(September 15, 2020)
- part 1
Creating a React Analytics Logging Library: (November 7, 2020) and (December 16, 2020)
- Managing Focus Transitions in Slack
(July 13, 2021)
Snipcart
SoundCloud
- Front-end JavaScript bug tracking
(November 21, 2011)
- Building The Next SoundCloud
(June 14, 2012)
- Smooth image loading by upscaling
(February 20, 2014)
- React Native at SoundCloud
(August 3, 2016)
- Garbage Collection in Redux Applications
(January 24, 2019)
- Playback on Web at SoundCloud
(May 3, 2019)
Spectrum
- Tech Choices I Regret at Spectrum
(January 16, 2019)
Spotify
- Spotify Wrapped 2018 — Technical Case Study
(December 18, 2018)
- Building Spotify’s New Web Player
(March 25, 2019)
- (Right to Left (The Mirror World
(April 15, 2019)
- Reimagining Design Systems at Spotify
(December 16, 2019)
Stack Overflow
- HTTPS on Stack Overflow: The End of a Long Road
(May 22, 2017)
- Building dark mode on Stack Overflow
(March 31, 2020)
stripe
- Connect: behind the front-end experience
(June 19, 2017)
- Designing accessible color systems
(October 15, 2019)
- To design and develop an interactive globe
(September 1, 2020)
- Migrating millions of lines of code to TypeScript
(May 20, 2022)
SumUp
- 10 lessons learned building SumUp’s design system
(August 15, 2019)
Superhuman
- Delightful search: more than meets the eye
(May 5, 2017)
TakeShape
- Why we switched from Yarn to pnpm
(June 9, 2020)
The Guardian
- What we learnt from our mistakes in 2016
(December 18, 2016)
- Revisiting the rendering tier
(April 4, 2019)
- Migrating the Guardian website to React
(December 8, 2019)
The Knot Worldwide
- React Native @ The Knot
(February 8, 2019)
- React Native @ The Knot: A Designer’s Perspective
(February 13, 2019)
The New York Times
- The Technology Behind the NYTimes.com Redesign
(January 8, 2014)
- Improving Article Accessibility
(June 24, 2014)
- Building a Cross Platform 360-degree Video Experience at The New York Times
(November 11, 2016)
- GraphQL in real life
(April 19, 2019)
- How We Implemented a Baseline Grid Using CSS
(November 21, 2019)
- A More Accessible Web
(February 25, 2021)
The Telegraph
- React Serverside rendering : build slicker apps with better SEO ranking
(September 10, 2018)
- Improving third-party web performance at The Telegraph
(April 30, 2019)
- Improving Cumulative Layout Shift at Telegraph Media Group
(June 14, 2021)
The Times & The Sunday Times
- Building the UI for the new The Times website
(March 30, 2016)
The U.S. Digital Service
- Building Forms Faster on Vets.gov
(June 2, 2017)
The Wall Street Journal
- Making WSJ.com more accessible
(August 3, 2016)
This Also
- Fixing HTML Video on Mobile
(July 14, 2016)
ThomasNet
- How We Adopted CSS Grid at Scale
(March 1, 2018)
Thread
- Dealing with legacy code in React
(May 10, 2018)
- Searching and sorting text with diacritical marks in JavaScript
(August 29, 2018)
Tinder
- A Tinder Progressive Web App Performance Case Study
(December 24, 2017)
- Building Tinder Online
(February 9, 2018)
Tines
- Our approach to CSS and how we chose it
(publication date is unknown)
- Understanding why our build got 15x slower with Webpack 5
(publication date is unknown)
TinyMCE
- TinyMCE is going mobile
(March 31, 2017)
- Benefits of gradual strong typing in JavaScript
(January 25, 2019)
Tokopedia
- A Tokopedia Mobile Web Performance Case Study
(May 22, 2020)
Treebo
- A React And Preact Progressive Web App Performance Case Study: Treebo
(September 13, 2017)
- How do we design for an operations heavy product?
(May 31, 2018)
- Iconography for Treebo
(August 13, 2018)
- Improving User Experience with AMP⚡- A Treebo Case Study
(March 16, 2019)
- A Tale of Brotli Compression
(January 20, 2020)
- GraphQL at Treebo
(October 23, 2020)
Trivago
- Designing for RTL platforms - A flipped layout
(April 27, 2015)
- Risk-free Migration From Assetic to Webpack
(May 28, 2015)
- Speeding up webpack performance with parallel builds
(December 15, 2015)
- Large Scale CSS Refactoring at trivago
(February 2, 2016)
- Dropping IE8 Support: Consequences for JavaScript
(June 1, 2016)
- Thoughts on Atom Building in the Pattern Library
(June 16, 2016)
- An Inline SVG Icon System For Our Hotel Search Application
(September 5, 2016)
- CSS done right - Post RTLCSS
(July 7, 2017)
- Accessibility at trivago
(September 26, 2017)
- trivago just made filtering faster and more accessible, but why and how?
(December 22, 2017)
- Melody - the sound of JavaScript for our Hotel Search
(June 28, 2018)
- Building fast and reliable web applications
(October 12, 2018)
- Presenting babel-plugin-cloudinary
(April 2, 2019)
- trivago Magazine's Journey to Server-Side Rendering
(January 29, 2020)
- The First Prettier Plugin For Twig is Here
(March 10, 2020)
- Exploring the Page Visibility API for Detecting Page Background State
(November 17, 2020)
- Rethinking the Next-gen Analytics Web App at trivago
(February 9, 2021)
- WARP - A Web Application Rewrite Project
(May 16, 2022)
- 3 Things We Learned When Switching to TypeScript
(August 1, 2022)
- End-to-end tests retry strategies
(September 27, 2023)
Tumblr
- Moving things out of critical rendering path
(February 19, 2016)
- The Road to Webpack
(April 29, 2016)
- Flow and TypeScript
(September 7, 2017)
- Using srcset and sizes to make responsive HTML5 images
(March 5, 2018)
- A Big New Beautiful Future for the Web at Tumblr
(April 5, 2018)
- How we wrote our own Service Worker
(February 1, 2019)
- We’re making Tumblr more accessible!
(January 17, 2019)
Twitch
- Improving Chat Rendering Performance
(August 8, 2016)
- Investigating React Native
(April 25, 2017)
- Beyond Purple
(December 3, 2019)
- View Source: Twitter.com
(January 1, 2017)
- How we built Twitter Lite
(April 6, 2017)
- Infinite List and React
(April 9, 2017)
- The Twitter Lite team about their use of Node.js
(April 12, 2017)
- Redux modules and code-splitting
(February 02, 2018)
- How using component-based design helps us build faster
(July 16, 2019)
Uber
- Powering UberEATS with React Native and Uber Engineering
(March 28, 2017)
- Javascript @ Uber
(July 10, 2017)
- Building a More Seamless Web Booking Flow for Uber
(July 25, 2019)
- Best Practices for Unit Testing in React Version 16
(August 29, 2019)
Udacity
- Udacity’s Front-End Tech Stack
(July 18, 2016)
Unity
- WebAssembly is here!
(August 15, 2018)
- WebAssembly Load Times and Performance
(September 17, 2018)
Unsplash
- How we gradually migrated to TypeScript at Unsplash
(March 14, 2018)
Vercel
- How we made the Vercel Dashboard twice as fast
(August 9, 2022)
- Designing the Vercel virtual product tour
(June 2, 2023)
- Design Engineering at Vercel
(March 29, 2024)
- How Vercel adopted microfrontends
(October 22, 2024)
Verve
- GraphQL: A Retrospective
(November 28, 2018)
Walmart Labs
- React Native at WalmartLabs
(December 19, 2016)
- Cutting Dev Time in Half With Invalid User Input Prevention
(October 25, 2017)
- Migrating Angular 1.x apps to React — The Hybrid Way!
(November 15, 2017)
- Migrating Large Enterprise to NodeJS
(December 9, 2017)
- Primer on Front End Automation
(July 27, 2018)
- Lazy Loading Images with IntersectionObserver
(September 10, 2018)
- Midway: Walmart’s mocking journey…
(October 5, 2018)
- Infinite Scroll’ing the right way
(April 2, 2019)
- Delivering ReactJS applications at scale
(August 26, 2019)
- Turbocharging Walmart.com
(April 9, 2020)
- Differential Serving — Food for latest browsers
(June 23, 2020)
Wikimedia
- Creative Techniques for Loading Web Pages Faster
(January 17, 2012)
- Investigating a performance improvement
(June 2, 2017)
- Improving time-to-logo performance with preload links
(June 7, 2017)
- Beacons
(August 16, 2017)
- Measuring Wikipedia page load times
(January 9, 2018)
- Extension:Popups (Page Previews) front-end tooling
(April 19, 2018)
- Mobile web performance: the importance of the device
(June 22, 2018)
- Why performance matters
(December 12, 2018)
- Migrating code from MediaWiki's ResourceLoader to Webpack
(March 13 2019)
- Evaluating Element Timing for Images
(April 10, 2019)
- Performance perception: the effect of late-loading banners
(June 13, 2019)
- Performance perception: correlation to RUM metrics
(June 17, 2019)
- Tracking down slow event handlers with Event Timing
(June 19, 2019)
- Wikipedia's JavaScript initialisation on a budget
(Septemper 18, 2019)
- Measuring Long Tasks and First Input Delay
(December 21, 2019)
- Analyzing Wikipedia's Search Performance
(April 5, 2021)
- 300ms Faster: Reducing Wikipedia's Total Blocking Time
(May 21, 2023)
Wingify
- jQuery Promises: The answer to PostMessage's asynchrony
(June 17, 2013)
- How We Made The Animated A/B Testing Guide
(July 8, 2013)
- Getting 60 FPS using Chrome devtools
(July 29, 2013)
- Overcoming the Challenges of Performance Testing Single-page Apps
(January 29, 2015)
- Testing AngularJS Apps End to End Using Protractor
(February 13, 2015)
- A layout trick
(April 4, 2016)
- Speeding Up VWO
(September 17, 2016)
- Migrating towards Yarn and Webpack
(October 4, 2017)
- Why we've removed Inheritance/Extend from SASS & you should do the same!
(November 30, 2017)
- Automated Heatmap Verification E2E using Selenium and Canvas
(April 3, 2018)
Wix
- Taking CSS To Scale: A Pragmatic Approach
(July 13, 2016)
- Building a React Native App for 80 Million Users
(October 1, 2016)
- The Story of Making Wix Accessible
(December 14, 2017)
- Improving load time for 100 million websites
(June 26, 2018)
- Trim the Fat From Your Bundles Using Webpack Analyzer & React Lazy/Suspense
(September 2, 2019)
- When life gives you lemons, write better error messages
(September 12, 2022)
Yelp
- Whoa! That Embedded Web View Looks Hot in Your iOS App!
(November 7, 2013)
- Organizing and Securing Third-Party CDN Assets at Yelp
(November 20, 2019)
- Server Side Rendering at Scale
(February 22, 2022)
- Migrating from Styleguidist to Storybook
(July 6, 2022)
- Writing Emails Using React
(July 20, 2022)
YNAB
- Progressive Conversion of TypeScript Namespaces to Modules
(September 23, 2019)
- part 1
Semantic Colors for Designers and Developers: , and (February 12, 2020)
- How we use OpenAPI / Swagger for the YNAB API
(March 16, 2020)
YouTube
- Page Weight Matters
(December 21, 2012)
- Polymer @ YouTube
(August 22, 2017)
- A Conspiracy To Kill IE6
(May 1, 2019)
- Building a Better Web - Part 1: A faster YouTube on web
(October 20, 2022)
Zajno
- Visualizing money: how we explained a complex financial product using animation
(September 25, 2018)
Zynga
- Why & How Words With Friends Is Adopting React Native
(September 17, 2018)
- React Native Stability Monitoring
(May 14, 2019)
18F
1Password
- From dark to light and back again
(November 8, 2018)
Miscellaneous
Production Web Apps Performance Study Q4/16 - Q1/17
(January 21, 2017)
- Case study: analyzing the Walmart site performance
(April 27, 2018)
- part 1
Web Components for Enterprise (July 2019): and
- Frontend at scale
: leaders at Atlassian, Canva, Tinder, and Vimeo discuss frameworks, tooling, and rapidly evolving technologies (May 2020)
- Building an accessible emoji picker
(July 1, 2020)
- How ZDF created a video PWA with offline and dark mode
(October 7, 2020)
- NDTV achieved a 55% improvement in LCP by optimizing for Core Web Vitals
(October 27, 2020)
- Rakuten 24’s investment in PWA increases user retention by 450%
(November 17, 2020)
- PWA users are 2.5x more likely to purchase Gravit Designer PRO
(December 8, 2020)
- Clipchamp's video editor PWA installs see a 97% monthly growth
(December 8, 2020)
- How Swappie increased mobile revenue by 42% by focusing on Core Web Vitals
(September 15, 2021)
- How Terra improved user engagement thanks to Dark Mode
(December 18, 2021)
Russian / Amplifr
Russian / Aviasales
- Как мы строим веб-платформу в Авиасейлс
(4 ноября 2021)
Russian / Avito
- Фронтенд в Avito
(13 декабря 2015)
- Фронтенд для миллионов
(24 июня 2017)
- Дизайн-платформа в Avito
(8 апреля 2017)
- Скриншоты как сервис
(7 марта 2018)
- Unit-тестирование скриншотами: преодолеваем звуковой барьер
(14 марта 2018)
- Масштабируемая архитектура фронтенда
(7 апреля 2018)
- Каталог компонентов: переосмысление
(19 мая 2018)
- Avito Online Frontend: Infrastructure
(11 декабря 2018)
- Avito Online Frontend: Performance
(18 декабря 2018)
- Жесть для Jest
(17 августа 2019)
- Webpack в дикой природе
(20 ноября 2020)
Russian / auto.ru
- Полный цикл тестирования React-приложений
(14 июля 2019)
Russian / Badoo
- Многоязычный Badoo: «трудности перевода»
(22 мая 2014)
- Специфика верстки мультиязычных веб-приложений
(26 марта 2015)
- Как собрать статистику с веб-сайта и не набить себе шишек
(29 марта 2017)
- Работаем с API по-взрослому
(14 апреля 2017)
- Покрываем A/B-тесты UI-тестами. Как не запутаться в собственном коде
(26 декабря 2018)
- Часть 1
Sketch + Node.js: генерируем иконки для множества платформ и брендов. (27 февраля 2019) и (12 марта 2019)
- Локализация приложений: как мы подружили перевод и разработку
(23 января 2020)
Russian / Delivery Club
- Микрофронтенды: разделяй и властвуй
(14 апреля 2021)
Russian / DIRECTUM
- Опыт перевода большого проекта с Flow на TypeScript
(1 августа 2019)
Russian / Flocktory
- Разработка сторонних библиотек
(22 мая 2017)
Russian / GitLab
- Методы борьбы с legacy-кодом на примере GitLab
(10 декабря 2019)
Russian / HeadHunter
- Нянчим проект на React-redux с пелёнок
(21 сентября 2016)
- Качество кода фронтенда в HH
(4 февраля 2019)
- Как мы пилили серверный рендеринг и что из этого вышло
(28 марта 2019)
- Перфоманс фронтенда как современное искусство: графики, код, кулстори
(17 сентября 2020)
- «Продам гараж»: фронт и реклама в hh.ru
(14 апреля 2021)
Russian / ISPSystem
- Как разделить фронтенд и бэкенд, сохранив взаимопонимание
(11 апреля 2019)
- От библиотеки компонентов к дизайн-системе
(23 июня 2020)
- Ленивая подгрузка переводов с Angular
(22 июля 2020)
Russian / Joom
- Автоматизируем локализацию макетов в Figma
(29 декабря 2020)
Russian / Mail.Ru
- Разработка собственного решения: риски и ответственность
(26 ноября 2015)
- Frontend: Разработка и поддержка
(6 сентября 2016)
- Архитектура фронтенда крупного проекта, как она есть
(19 апреля 2018)
- запись доклада
WebAuthn в реальной жизни: (27 ноября 2019), (20 февраля 2020)
- Кастомизация компонентов Ant Design и оптимизация бандла
(11 декабря 2020)
- Адаптивный layout — как переверстать весь проект, не перевёрстывая его
(24 сентября 2021)
Russian / Microsoft To-Do
- Как Microsoft To-Do использует React
(18 июня 2018)
Russian / Miro
- Как мы учились рисовать тексты на Canvas
(3 июля 2019)
Russian / Netcracker
- Микросервисный фронтенд — современный подход к разделению фронта
(21 августа 2018)
Russian / OneTwoTrip
- 9 лет в монолите на Node.JS
(9 июля 2019)
- Как мигрировать с mocha на jest в 14 простых шагов — и зачем
(31 января 2020)
Russian / Rambler Group
- Как мы разогнали мобильную Lenta.ru до скорости света
(31 марта 2016)
- Проектирование дизайн-системы Рамблера
(18 июня 2018)
- Apollo: 9 месяцев — полет нормальный
(27 июля 2018)
- Способы синхронизации вкладок браузера
(7 сентября 2018)
- Маршрутизация в большом приложении на React
(27 сентября 2018)
Russian / Setka
- Разработка Rich Text Editor: проблемы и решения
(5 марта 2018)
Russian / Skyeng
- Как масштабировать сложный Single Page Application
(5 июня 2017)
- цели, планы и правила переноса элементов
Переход с AngularJS на Angular (февраль 2018): , ,
- От Skype до WebRTC: как мы организовали видеосвязь через веб
(3 апреля 2019)
Russian / Sports.ru
- Как в Sports.ru писали свой WYSIWYG-редактор
(13 марта 2020)
Russian / Tinkoff
- Как мы разрабатываем новый фронтенд Tinkoff.ru
(23 июня 2016)
- Создание Tinkoff Design System. Первые шаги
(18 апреля 2017)
- Как организовать работу над библиотекой общих компонентов
(25 сентября 2019)
- Компоненты-агностики в Angular
(25 октября 2019)
- «Шакал»: сжимаем фронтенд
(7 ноября 2019)
- часть 1
Как мы распилили монолит: , , , (август–декабрь 2020)
Russian / Wrike
- DIY: Как мы делали «живое» расписание для Codefest X
(18 апреля 2019)
- 10 верстальщиков на 30 команд. Вы рехнулись?
(21 мая 2019)
- Как настроить веб-аналитику на AMP страницах
(26 июня 2019)
Russian / Альфа-Банк
- Предъявите паспорт
(18 августа 2017)
- БЭМ + React: гибкая архитектура дизайн-системы
(23 октября 2017)
- Изоморфное приложение React JS + Spring Boot
(27 октября 2017)
- Атомарные SPA
(7 апреля 2018)
- Тёмная сторона дизайн-системы и что с ней делать
(16 марта 2020)
Russian / Бюро Горбунова
Russian / ВКонтакте
- Как оседлать радугу: история создания тёмной темы
(29 апреля 2019)
- Баги, которые вы никогда не встретите
(26 ноября 2019)
- Бенчмарки VKUI и других ребят из UI-библиотек
(26 мая 2021)
Russian / Додо Пицца
- Додо Пицца: собственная касса на веб-технологиях
(14 октября 2019)
- Лошадь сдохла – слезь: переход с tslint на eslint
(29 октября 2019)
Russian / Леруа Мерлен
- Опыт интеграции веб-компонентов на сайт Леруа Мерлен
(18 февраля 2020)
Russian / Медуза
- Веб-пуш уведомления в Медузе
(10 декабря 2015)
- AMP, Instant Articles, Instant View, whut?
(23 ноября 2016)
- Как использовать кастомные шрифты в вебе и не сойти с ума
(1 декабря 2016)
- Подкасты «Медузы»
(21 сентября 2017)
Russian / Одноклассники
- Архитектура и платформа проекта Одноклассники
(21 марта 2011)
- Как мы оптимизировали социальную кнопку
(26 августа 2013)
- Часть 1
Новый фронтенд Одноклассников: запуск React в Java. и (январь–февраль 2020)
Russian / Сбербанк
- Работа с периферией из JavaScript: от теории к практике
(15 июня 2017)
Russian / Ситимобил
- Хороший ли выбор Svelte для реализации виджета?
(28 мая 2020)
Russian / Спортмастер
- Frontend в Sportmaster Lab
(4 декабря 2020)
Russian / Учи.ру
- Единый UI-кит и синхронизация дизайна в Учи.ру. Часть 1
(20 февраля 2021)
Russian / Хабр
- Как мы ускоряли комментарии Хабра
(25 ноября 2021)
Russian / ЦИАН
- Микросервисный фронтенд
(7 ноября 2018)
- доклад
Как разрабатывать сотни A/B-экспериментов: , (28 мая 2019)
- Внедряем Sign in with Apple — систему авторизации от Apple
(8 ноября 2019)
- Micro-frontends. Асинхронный подход к мультикомандной разработке
(28 августа 2020)
- Время менять шапки: ускорение мобильной поисковой выдачи Циан
(11 января 2021)
Russian / ЮMoney (Яндекс.Деньги)
- Прототипирование на продакшн-технологиях
(26 октября 2017)
- Почему Node.js в качестве основы фронтенда – это круто
(31 июля 2017)
- Создание NPM-модуля Яндекс.Кассы под Node.js — опыт Lodoss Team
(1 февраля 2018)
- Фронтенд как у сына маминой подруги
(26 апреля 2018)
- Jenkins на службе фронтенд-разработки
(22 февраля 2018)
- Обзор архитектуры фронтенда ЮMoney
(15 декабря 2020)
Russian / Яндекс
- Как создавалась карта с голосами болельщиков для Олимпиады
(20 августа 2017)
- Как мы делали «нарратив» – новый формат публикаций в Яндекс.Дзене
(16 февраля 2018)
- React в Яндекс Поиске. Новая архитектура фронтенда СЕРПа
(27 октября 2018)
- React & БЭМ – официальная коллаборация. Часть историческая
(5 февраля 2019)
- От идеи до релиза. Детальный опыт фронтенда Маркета
(22 июля 2019)
- Разработка в монорепозитории
(3 октября 2019)
- Минифицируем приватные поля в TypeScript
(13 июня 2020)
- Веб-тренажёр Яндекс.Практикума. Как всё устроено
(27 ноября 2020)
Russian / 2ГИС
- TARS, сделай уровень frontend-рутины 0%
(26 марта 2015)
- Тестируем вёрстку правильно
(18 февраля 2016)
- Этажи: 3D-навигация на WebGL в 2gis.ru
(22 апреля 2016)
- Дели — сокращай, или как мы делали мобильный 2ГИС Онлайн
(20 июля 2017)
- Справа налево. Как перевернуть интерфейс сайта под RTL
(10 июля 2018)
- Быстрая генерализация маркеров на WebGL-карте
(6 марта 2019)
- 3D-аркада в браузере: как мы сделали игру на React + Redux
(23 апреля 2020)
Russian / Прочее
Nothing in this list matches your filter.
Featured in 1 awesome list
Each link jumps to the spot where the list mentions frontend-case-studies.