Skip to content
0:00 / 0:00

#react#netflixgibbon#canvas

React.js Conf 2015 - Beyond the DOM: How Netflix plans to enhance your television experience

Meta Developers

311K subscribers • 8 videos on Hallway

YouTube
  • Recommended by 2 people: 2 on Hacker News.
  • Presented by Jafar Husain, Technical Lead at Netflix
  • May be out of date. The tools, versions or practices it shows have likely moved on.

Intermediate. Assumes working knowledge.

26K views11 years ago2 recommendations

Web developmentSoftware designReactVue, Svelte, Angular and othersPerformance and optimization

Jafar Husain explains how Netflix uses React with a custom canvas-like rendering engine to achieve high performance on smart TVs.

Jafar Husain, Netflix Netflix has rebuilt our mobile and web UIs. These UIs are hosted in the browser, and we've seen big performance gains thanks to React's virtual DOM. But what if the DOM is just too slow on a given platform? Netflix uses a canvas-like API to maximize performance on smart TVs and game consoles. Given that React improved performance and simplified the code on our other platforms, we asked ourselves "could React work without the DOM?" Yes. Not only is it possible to use React without the DOM, React's design is particularly well-suited to working with low-level APIs like Canvas or WebGL. As a matter of fact, React's design is heavily influenced by game-rendering engines. In this talk, you will learn about how we are integrating React with our TV platform, and what design patterns we're using to get a good balance of simplicity and performance.

Why it's here

2 people recommend this

What people say. Recommended as a classic talk demonstrating how to decouple React from the DOM for custom rendering environments.

peterhunton Hacker News • Recommends

On “First Impressions Using React Native”

If you're interested in doing it with React, here's a video explaining how to do a custom backend: link to this video You basically need to change BackendIDOperations and ReactEventListener to send/receive messages vs talking to the real APIs. It's already set up in the codebase to do this (because it actually worked at one time). Webpack, per usual, already thought of this and has an answer for you :) link

mikeryanon Hacker News • Recommends

On “Is ReactJS really fast?”

There's an interesting video by Netflix where they discuss using React in their stack. To increase performance on many of Netflix's TV or Console based UI's they have their own rendering engine they're using instead of the manufacturer's browser engine. This means any of React's "speed" improvements are a moot point so instead they use it because of its simplicity for UI layouts. link to this video

mjjohnstonon Hacker News • Mentions

On “Flipboard releases React Canvas”

It's worth mentioning that much of the code that integrates with React internals is based on the work in react-art: link This is the same technique used by Netflix for their React-based television UI. link to this video

mikeryanon Hacker News • Mentions

On “A View of the Entire Netflix Stack”

Picking a nit, they don't use React in the browser across all devices. They actually use an internal rendering engine called Gibbon on some devices with client code written JavaScript with React but not rendering to HTML or a browser instead using their internal engine. Interestingly this has become easier with React breaking out React and ReactDOM. Interesting to note that Netflix must see Gibbon as a competitive advantage, I've been told its not likely to see an open source release. link to this video

zappo2938on Hacker News • Mentions

On “The Cost of Native Mobile App Development Is Too Damn High”

Sorry. I was under the impression after watching this video Netflix was using React across all devices. 0 0 link to this video

sscotthon Hacker News • Mentions

On “JavaScript once had a JSX-like syntax called E4X”

…Canvas9/pixi.js10 - Latex documents11 - Web Audio12 - Conole.logs13 - Truly custom direct to hardware14 as some C code like: `digitalWrite(led, HIGH)` I definitely believe JSX could use standardization separate from any implementation, JavaScript or otherwise. 0: link 1: link 2: link 3: link 4: link 5: link 6: link to this video 7: link 8: link 9: link 10: link 11: link 12: link 13: link 14: link…