
Meta Developers
2 HN recommenders · recommended in 5 months, 2015–2017
25:55 · 26K views · Feb 4, 2015
Jafar Husain of Netflix explains at React.js Conf 2015 how Netflix runs React-style rendering without the DOM on smart TVs and game consoles. It uses a canvas-like API for performance.
Cited as the primary source on React with a custom rendering backend and on Netflix's Gibbon engine.
6 comments from Hacker News
If you're interested in doing it with React, here's a video explaining how to do a custom backend: 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]
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. this video
Its also important to consider the environment as well since JSX is potentially much bigger than the web. JSX is much like other generic user interface markup languages[0] and like many other is simply a dialect of XML. Any interface that can be represented with XML/HTML or any other markup language can use JSX and optionally react. We are already seeing this boom with in native mobile environments with React Native, NativeScript, Titanium... Here are several examples where JSX is used that is not a browser: - Native desktop apps for Linux, Mac, and Windows (Not including Electron/NW.js)[1][2][3][4] - TVs with AppleTV apps or Netflix's Gibbon[5][6] - Command line apps as stdin/stdout with react-blessed[7]/mylittledom[8] - Direct to Canvas[9]/pixi.js[10] - Latex documents[11] - Web Audio[12] - Conole.logs[13] - Truly custom direct to hardware[14] 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]: this video [7]: [LINK] [8]: [LINK] [9]: [LINK] [10]: [LINK] [11]: [LINK] [12]: [LINK] [13]: [LINK] [14]: [LINK]
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. this video
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. this video