{"componentChunkName":"component---src-templates-blog-js","path":"/blog/2015/02/18/react-conf-roundup-2015.html","result":{"data":{"markdownRemark":{"html":"<p>It was a privilege to welcome the React community to Facebook HQ on January 28–29 for the first-ever React.js Conf, and a pleasure to be able to unveil three new technologies that we’ve been using internally at Facebook for some time: GraphQL, Relay, and React Native.</p>\n<h2 id=\"the-talks\"><a href=\"#the-talks\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The talks </h2>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-keynote\"></a>Keynote <a class=\"hash-link\" href=\"#talk-keynote\">#</a></h3> <p> <strong>Tom Occhino</strong> opened with a history of how React came to be, before announcing Facebook&#x2019;s answer to a long-looming what-if question: what if we could use React to target something other than the DOM? </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/KVZ-P-ZI6W4\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-tweak\"></a>Tweaking in real time <a class=\"hash-link\" href=\"#talk-tweak\">#</a></h3> <p> <strong>Brenton Simpson</strong> showed us how eBay brings Bret Victor&#x2019;s feedback loop to your favorite editor using webpack, react-hot-loader, and <a href=\"https://github.com/appsforartists/ambidex\">Ambidex</a>. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/yaymfLj5tjA\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-ast\"></a>Abstract Syntax Trees <a class=\"hash-link\" href=\"#talk-ast\">#</a></h3> <p> <strong>Gurdas Nijor</strong> showed us how we can leverage some conventions of React to perform source code transformations that unlock an inspirational set of use cases. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/OZGgVxFxSIs\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-relay-graphql\"></a>Relay and GraphQL <a class=\"hash-link\" href=\"#talk-relay-graphql\">#</a></h3> <p> <strong>Daniel Schafer</strong> and <strong>Jing Chen</strong> showed us how Facebook approaches data fetching with React, giving us an early peek at the forthcoming duo of Relay and GraphQL. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/9sc8Pyc51uU\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-channels\"></a>Channels <a class=\"hash-link\" href=\"#talk-channels\">#</a></h3> <p> <strong>James Long</strong> explores what might happen if we introduce channels, a new style of coordinating actions, to React. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/W2DgDNQZOwo\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-router\"></a>React Router <a class=\"hash-link\" href=\"#talk-router\">#</a></h3> <p> <strong>Michael Jackson</strong> reminded us that URLs should be part of our design process, and showed us how <a href=\"https://github.com/rackt/react-router\">react-router</a> can help to manage the transitions between them. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/XZfvW1a8Xac\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-full-stack-flux\"></a>Full-stack Flux <a class=\"hash-link\" href=\"#talk-full-stack-flux\">#</a></h3> <p> <strong>Pete Hunt</strong> showed us how a Flux approach can help us scale actions and questions on the backend in addition to the frontend. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/KtmjkCuV-EU\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-performance\"></a>High-performance <a class=\"hash-link\" href=\"#talk-performance\">#</a></h3> <p> <strong>Jason Bonta</strong> showed us how complex user interfaces can get, and how his team keeps them performant as they scale. He also had the pleasure of open-sourcing his team&#x2019;s work on <a href=\"https://facebook.github.io/fixed-data-table/\">FixedDataTable</a>. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/KYzlpRvWZ6c\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-intl\"></a>FormatJS and react-intl <a class=\"hash-link\" href=\"#talk-intl\">#</a></h3> <p> <strong>Eric Ferraiuolo</strong> showed how you can bring your app to a worldwide audience using a series of polyfills and emerging ECMAScript APIs. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/Sla-DkvmIHY\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-hype\"></a>Hype! <a class=\"hash-link\" href=\"#talk-hype\">#</a></h3> <p> <strong>Ryan Florence</strong> showed us how easy it is to transition from a career selling life insurance, to a burgeoning one as a software developer. All you have to do is to learn how to say &#x201C;yes.&#x201D; </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/z5e7kWSHWTg\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-native\"></a>React Native <a class=\"hash-link\" href=\"#talk-native\">#</a></h3> <p> <strong>Christopher Chedeau</strong> showed us how to bring the developer experience of working with React on the web to native app development, using React Native. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/7rDsRXj9-cU\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-components\"></a>Components <a class=\"hash-link\" href=\"#talk-components\">#</a></h3> <p> <strong>Andrew Rota</strong> explained how React and Web Components can work together, and how to avoid some common pitfalls. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/g0TD0efcwVg\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-immutable\"></a>Immutability <a class=\"hash-link\" href=\"#talk-immutable\">#</a></h3> <p> <strong>Lee Byron</strong> led a master-class on persistent immutable data structures, showing us the world of possibility that they can unlock for your software, and perhaps JavaScript in general. </p> </div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/I7IdS-PbEgI\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-gibbon\"></a>Beyond the DOM <a class=\"hash-link\" href=\"#talk-gibbon\">#</a></h3> <p> <strong>Jafar Husain</strong> told us a story about how Netflix was able to push React into places where the DOM could not go. </p></div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/eNC0mRYGWgc\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-visualization\"></a>Data Visualization <a class=\"hash-link\" href=\"#talk-visualization\">#</a></h3> <p> <strong>Zach Nation</strong> showed us how we can produce visualizations from over 45 million data points without breaking a sweat. </p></div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/2ii1lEkIv1s\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-refracted\"></a>React Refracted <a class=\"hash-link\" href=\"#talk-refracted\">#</a></h3> <p> <strong>David Nolen</strong> gave us a view of React from a non-JavaScript perspective, challenging some common intuition along the way. </p></div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/5hGHdETNteE\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-flux-panel\"></a>Flux Panel <a class=\"hash-link\" href=\"#talk-flux-panel\">#</a></h3> <p> <strong>Bill Fisher</strong> coordinated a Flux panel together with <strong>Michael Ridgway</strong>, <strong>Spike Brehm</strong>, <strong>Andres Suarez</strong>, <strong>Jing Chen</strong>, <strong>Ian Obermiller</strong>, and <strong>Kyle Davis</strong>. </p></div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/LTj4O7WJJ98\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-communication\"></a>Component communication <a class=\"hash-link\" href=\"#talk-communication\">#</a></h3> <p> <strong>Bonnie Eisenman</strong> led us through the &#x2018;adapter&#x2019; approach to inter-component communication taken by her team at Codecademy. </p></div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/ZM6wXoFTY3o\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-typescript\"></a>Flow and TypeScript <a class=\"hash-link\" href=\"#talk-typescript\">#</a></h3> <p> <strong>James Brantly</strong> demonstrated how we can reap the benefits of static typing using both Flow and TypeScript. </p></div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/9PTa9-PPVAc\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <div class=\"skinny-row\"> <div class=\"skinny-col\"> <h3 style=\"margin-top:0\"><a class=\"anchor\" name=\"talk-qa\"></a>Core Team Q&amp;A <a class=\"hash-link\" href=\"#talk-qa\">#</a></h3> <p> <strong>Tom Occhino</strong>, <strong>Sophie Alpert</strong>, <strong>Lee Byron</strong>, <strong>Christopher Chedeau</strong>, <strong>Sebastian Markb&#xE5;ge</strong>, <strong>Jing Chen</strong>, and <strong>Dan Schafer</strong> closed the conference with a Q&amp;A session. </p></div> <div class=\"skinny-col\"> <iframe src=\"https://www.youtube-nocookie.com/embed/EPpkboSKvPI\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div> </div> </div>\n<h2 id=\"reactions\"><a href=\"#reactions\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Reactions </h2>\n<p>The conference is over, but the conversation has just begun.</p>\n<p><strong>Mihai Parparita</strong> detailed his efforts to <a href=\"http://blog.persistent.info/2014/12/html-munging-my-way-to-reactjs-conf.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">hack his way to a React.js Conf ticket</a>; <strong>James Long</strong> blogged about <a href=\"http://jlongster.com/First-Impressions-using-React-Native\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">his first encounter with React Native</a>; <strong>Eric Florenzano</strong> talked about how he perceives the <a href=\"https://medium.com/@ericflo/facebook-just-taught-us-all-how-to-build-websites-51f1e7e996f2\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">impact of Relay, GraphQL, and React Native</a> on software development; <strong>Margaret Staples</strong> blogged about her experience of <a href=\"http://deadlugosi.blogspot.com/2015/02/facebook-gave-me-ice-cream.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">being on-campus at Facebook HQ</a>; <strong>Jeff Barczewski</strong> tied his experience of attending the conference up with a bow in this <a href=\"http://codewinds.com/blog/2015-02-04-reactjs-conf.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">blog post filled with photos, videos, and links</a>; <strong>Kevin Old</strong> left us with <a href=\"http://kevinold.com/2015/01/31/takeaways-from-reactjs-conf-2015.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">his takeaways</a>; <strong>Paul Wittmann</strong> found React Native <a href=\"http://www.railslove.com/stories/fresh-on-our-radar-react-native\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">freshly on his radar</a>; and finally, undeterred by not being able to attend the conference in person, <strong>Justin Ball</strong> <a href=\"http://www.justinball.com/2015/02/02/i-didn&#x27;t-attend-react.js-conf.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">summarized it from afar</a>.</p>\n<p>And, in case you missed a session, you can borrow <strong>Michael Chan’s</strong> <a href=\"http://chantastic.io/2015-reactjs-conf/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">drawings</a>, <strong>Mihai Parparita’s</strong> <a href=\"https://quip.com/uJQeABv7nkFN\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">summary</a>, or <strong>Shaohua Zhou’s</strong> <a href=\"http://getshao.com/2015/01/29/react-js-conf-notes-day1/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">day 1</a> / <a href=\"http://getshao.com/2015/01/29/react-js-conf-notes-day-2/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">day 2</a> notes.</p>\n<div class=\"skinny-row\">\n  <div class=\"skinny-col\">\n    <blockquote class=\"twitter-tweet\" lang=\"en\"><p>Notes from <a href=\"https://twitter.com/dlschafer\">@dlschafer</a> and <a href=\"https://twitter.com/jingc\">@jingc</a>&#39;s <a href=\"https://twitter.com/hashtag/reactjsconf?src=hash\">#reactjsconf</a> talk &quot;Data fetching for React applications at Facebook&quot; <a href=\"http://t.co/IUZUbDCDMQ\">pic.twitter.com/IUZUbDCDMQ</a></p>&mdash; Michael Chan (@chantastic) <a href=\"https://twitter.com/chantastic/status/560538533161472000\">January 28, 2015</a></blockquote>\n    <blockquote class=\"twitter-tweet\" lang=\"en\"><p>This is just magical (in the good way)… GraphQL + Relay is amazing. <a href=\"https://twitter.com/hashtag/reactjsconf?src=hash\">#reactjsconf</a></p>&mdash; Chris Williams (@voodootikigod) <a href=\"https://twitter.com/voodootikigod/status/560533225395589120\">January 28, 2015</a></blockquote>\n    <blockquote class=\"twitter-tweet\" lang=\"en\"><p>These… these are my people. :) <a href=\"https://twitter.com/hashtag/reactjsconf?src=hash\">#reactjsconf</a></p>&mdash; Thomas Beirne (@Beirnet) <a href=\"https://twitter.com/Beirnet/status/560317879501848576\">January 28, 2015</a></blockquote>\n  </div>\n  <div class=\"skinny-col\">\n    <blockquote class=\"twitter-tweet\" lang=\"en\"><p>Humbled by the React team and community. Found <a href=\"https://twitter.com/hashtag/reactjsconf?src=hash\">#reactjsconf</a> very mindful, practical and just real.</p>&mdash; xnoɹǝʃ uɐıɹq (@brianleroux) <a href=\"https://twitter.com/brianleroux/status/560972130112655360\">January 30, 2015</a></blockquote>\n    <blockquote class=\"twitter-tweet\" lang=\"en\"><p>I say with confidence as a former UIKit author: [React&#39;s model for the UI layer is vastly better than UIKit&#39;s. React Native is a *huge* deal.</p>&mdash; Andy Matuschak (@andy_matuschak) <a href=\"https://twitter.com/andy_matuschak/status/560511204867575808\">January 28, 2015</a></blockquote>]\n    <blockquote class=\"twitter-tweet\" lang=\"en\"><p><a href=\"https://twitter.com/hashtag/reactjsconf?src=hash\">#reactjsconf</a> was incredible. Amazing project stewardship and community. Boring prediction, React Native sends adoption vertical in 2015.</p>&mdash; David Nolen (@swannodette) <a href=\"https://twitter.com/swannodette/status/561232290273980416\">January 30, 2015</a></blockquote>\n    <blockquote class=\"twitter-tweet\" lang=\"en\"><p>I really love the community shout outs by <a href=\"https://twitter.com/Vjeux\">@vjeux</a> between talks at <a href=\"https://twitter.com/hashtag/reactjsconf?src=hash\">#reactjsconf</a>!</p>&mdash; Andrew Rota (@AndrewRota) <a href=\"https://twitter.com/AndrewRota/status/560927339522297856\">January 29, 2015</a></blockquote>\n  </div>\n</div>\n<p><strong>All proceeds from React.js Conf 2015 were donated to the wonderful programs at <a href=\"http://code.org\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">code.org</a></strong>. These programs aim to increase access to the field of computer science by underrepresented members of our community. Watch this video to learn more.</p>\n<div class=\"gatsby-resp-iframe-wrapper\" style=\"padding-bottom: 26.30769230769231%; position: relative; height: 0; overflow: hidden; \" > <iframe src=\"https://www.youtube-nocookie.com/embed/FC5FbmsH4fw\" frameborder=\"0\" allowfullscreen style=\" position: absolute; top: 0; left: 0; width: 100%; height: 100%; \"></iframe> </div>","excerpt":"It was a privilege to welcome the React community to Facebook HQ on January 28–29 for the first-ever React.js Conf, and a pleasure to be able to unveil three new technologies that we’ve been using internally at Facebook for some time: GraphQL, Relay, and React Native. The talks  Reactions  The conference is over, but the conversation has just begun. Mihai Parparita detailed his efforts to hack his way to a React.js Conf ticket; James Long blogged about his first encounter with React Native; Eric…","frontmatter":{"title":"React.js Conf Round-up 2015","next":null,"prev":null,"author":[{"frontmatter":{"name":"Steven Luscher","url":"https://twitter.com/steveluscher"}}]},"fields":{"date":"February 18, 2015","path":"content/blog/2015-02-18-react-conf-roundup-2015.md","slug":"/blog/2015/02/18/react-conf-roundup-2015.html"}},"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"title":"Introducing the New JSX Transform"},"fields":{"slug":"/blog/2020/09/22/introducing-the-new-jsx-transform.html"}}},{"node":{"frontmatter":{"title":"React v17.0 Release Candidate: No New Features"},"fields":{"slug":"/blog/2020/08/10/react-v17-rc.html"}}},{"node":{"frontmatter":{"title":"React v16.13.0"},"fields":{"slug":"/blog/2020/02/26/react-v16.13.0.html"}}},{"node":{"frontmatter":{"title":"Building Great User Experiences with Concurrent Mode and Suspense"},"fields":{"slug":"/blog/2019/11/06/building-great-user-experiences-with-concurrent-mode-and-suspense.html"}}},{"node":{"frontmatter":{"title":"Preparing for the Future with React Prereleases"},"fields":{"slug":"/blog/2019/10/22/react-release-channels.html"}}},{"node":{"frontmatter":{"title":"Introducing the New React DevTools"},"fields":{"slug":"/blog/2019/08/15/new-react-devtools.html"}}},{"node":{"frontmatter":{"title":"React v16.9.0 and the Roadmap Update"},"fields":{"slug":"/blog/2019/08/08/react-v16.9.0.html"}}},{"node":{"frontmatter":{"title":"Is React Translated Yet? ¡Sí! Sim! はい！"},"fields":{"slug":"/blog/2019/02/23/is-react-translated-yet.html"}}},{"node":{"frontmatter":{"title":"React v16.8: The One With Hooks"},"fields":{"slug":"/blog/2019/02/06/react-v16.8.0.html"}}},{"node":{"frontmatter":{"title":"React v16.7: No, This Is Not the One With Hooks"},"fields":{"slug":"/blog/2018/12/19/react-v-16-7.html"}}}]}},"pageContext":{"slug":"/blog/2015/02/18/react-conf-roundup-2015.html"}},"staticQueryHashes":[]}