{"componentChunkName":"component---src-templates-blog-js","path":"/blog/2013/08/26/community-roundup-7.html","result":{"data":{"markdownRemark":{"html":"<p>It’s been three months since we open sourced React and it is going well. Some stats so far:</p>\n<ul>\n<li>114 285 unique visitors on this website</li>\n<li><a href=\"https://github.com/facebook/react/stargazers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">1933 stars</a> and <a href=\"https://github.com/facebook/react/network/members\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">210 forks</a></li>\n<li><a href=\"https://groups.google.com/forum/#!forum/reactjs\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">226 posts on Google Group</a></li>\n<li><a href=\"https://gist.github.com/vjeux/6335762\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">76 GitHub projects using React</a></li>\n<li><a href=\"https://github.com/facebook/react/graphs/contributors\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">30 contributors</a></li>\n<li><a href=\"/blog/\">15 blog posts</a></li>\n<li>2 early adopters: <a href=\"http://sophiebits.com/2013/06/09/using-react-to-speed-up-khan-academy.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Khan Academy</a> and <a href=\"http://usepropeller.com/blog/posts/from-backbone-to-react/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Propeller</a></li>\n</ul>\n<h2 id=\"wolfenstein-rendering-engine-ported-to-react\"><a href=\"#wolfenstein-rendering-engine-ported-to-react\" 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>Wolfenstein Rendering Engine Ported to React </h2>\n<p><a href=\"http://www.petehunt.net/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Pete Hunt</a> ported the render code of the web version of Wolfenstein 3D to React. Check out <a href=\"http://www.petehunt.net/wolfenstein3D-react/wolf3d.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">the demo</a> and <a href=\"https://github.com/petehunt/wolfenstein3D-react/blob/master/js/renderer.js#L183\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">render.js</a> file for the implementation.</p>\n<figure><a href=\"http://www.petehunt.net/wolfenstein3D-react/wolf3d.html\">\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block;  max-width: 650px; margin-left: auto; margin-right: auto;\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 43.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAJCAIAAAC9o5sfAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACMElEQVQozwElAtr9AKKlpaSnqKWpqKisq6uurqywsKuvr6qurq2xsbS4uLG1tby/v+ro5u3r6O/t6u7s6u/t6vDu7O3s6dvZ1wBlZGQ8PT0uLy8vMTAuMC8wMTEuMDAvMDAvMTEtLzArKyg0Q0pghMtlh895ltV4ltV4ltV7mNZxktaUrNsAgX9/eHh4YF9gPT0+QkFBNjY4Ozk5Ozs7MjIyQEFBPjs6QlNVgKPlhKXolK3nkarkj6nmiaTlhKPmpbvmAHFvb3p7eXt3f0luL0FvIUhESlNLSkVGRiwtK0Q/SEVkLVOGQvz4/////+7q9Onk8Onl8Ojj8Pbz+f38+QB7eXl3d3dvbnFWZklWaEZDRUc7OzsuLy81NTREQkZPXENkfWXm5+zx8fLe3ebf3ebl5u/j5O/t7/fz9PUAeHZ3bGtsZmZrcm5dcGxIW11dd3ZlX15WS0pMSEhMY15Rgopu5Nzh6eHj6+vq6enp6+PZ9ejZ9uvf7ermAGVnXGNmW29xaHJ2aXN0a4d2ZYOAbnp9cnJ0a3Z5cHV3bW59cvPn6e3l5vj5+fr5+tjHnsG9jdTHlOnaxgArM4IuN4YwOIQrN4pXUWBtXGI8RZA4QYkzPIYcJW8UHGE5S3Pt6uXr5ujr6+z39vfdz6O+wpDQyZXw4s4AGhuFAAFxGhx/DhSBSDtUVUphMzuZHyOEGByAAAFtAABPJjJi2dvV4+Lk4+Hi5ufo8OHO2s3C2c7C39fM6osoj+FSYwIAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;\">\n      <img class=\"gatsby-resp-image-image\" style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\" alt=\"wolfenstein react\" title src=\"/static/a1e0d13a915d083c08c19c77b39a64de/a6d36/wolfenstein_react.png\" srcset=\"/static/a1e0d13a915d083c08c19c77b39a64de/65ed1/wolfenstein_react.png 210w,\n/static/a1e0d13a915d083c08c19c77b39a64de/d10fb/wolfenstein_react.png 420w,\n/static/a1e0d13a915d083c08c19c77b39a64de/a6d36/wolfenstein_react.png 650w\" sizes=\"(max-width: 650px) 100vw, 650px\">\n    </span>\n  </span>\n  </a></figure>\n<h2 id=\"react--meteor\"><a href=\"#react--meteor\" 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>React &#x26; Meteor </h2>\n<p><a href=\"https://twitter.com/benjamn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Ben Newman</a> made a <a href=\"https://github.com/benjamn/meteor-react/blob/master/lib/mixin.js\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">13-lines wrapper</a> to use React and Meteor together. <a href=\"http://www.meteor.com/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Meteor</a> handles the real-time data synchronization between client and server. React provides the declarative way to write the interface and only updates the parts of the UI that changed.</p>\n<blockquote>\n<p>This repository defines a Meteor package that automatically integrates the React rendering framework on both the client and the server, to complement or replace the default Handlebars templating system.</p>\n<p>The React core is officially agnostic about how you fetch and update your data, so it is far from obvious which approach is the best. This package provides one answer to that question (use Meteor!), and I hope you will find it a compelling combination.</p>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\"><span class=\"token keyword\">var</span> MyComponent <span class=\"token operator\">=</span> React<span class=\"token punctuation\">.</span><span class=\"token function\">createClass</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n mixins<span class=\"token operator\">:</span> <span class=\"token punctuation\">[</span>MeteorMixin<span class=\"token punctuation\">]</span><span class=\"token punctuation\">,</span>\n\n <span class=\"token function-variable function\">getMeteorState</span><span class=\"token operator\">:</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n   <span class=\"token keyword\">return</span> <span class=\"token punctuation\">{</span> foo<span class=\"token operator\">:</span> Session<span class=\"token punctuation\">.</span><span class=\"token function\">get</span><span class=\"token punctuation\">(</span><span class=\"token string\">'foo'</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span>\n\n <span class=\"token function-variable function\">render</span><span class=\"token operator\">:</span> <span class=\"token keyword\">function</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n   <span class=\"token keyword\">return</span> <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">{</span><span class=\"token keyword\">this</span><span class=\"token punctuation\">.</span>state<span class=\"token punctuation\">.</span>foo<span class=\"token punctuation\">}</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span><span class=\"token punctuation\">;</span>\n <span class=\"token punctuation\">}</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>Dependencies will be registered for any data accesses performed by getMeteorState so that the component can be automatically re-rendered whenever the data changes.</p>\n<p><a href=\"https://github.com/benjamn/meteor-react\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Read more …</a></p>\n</blockquote>\n<h2 id=\"react-page\"><a href=\"#react-page\" 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>React Page </h2>\n<p><a href=\"https://github.com/jordwalke\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Jordan Walke</a> implemented a complete React project creator called <a href=\"https://github.com/facebook/react-page/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">react-page</a>. It supports both server-side and client-side rendering, source transform and packaging JSX files using CommonJS modules, and instant reload.</p>\n<blockquote>\n<p>Easy Application Development with React JavaScript</p>\n<figure><a href=\"https://github.com/facebook/react-page/\">\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block;  max-width: 465px; margin-left: auto; margin-right: auto;\">\n    <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 32.857142857142854%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAHCAIAAACHqfpvAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABaUlEQVQY032MR0/CABiG+4/dBxONJnpBvXAycjUcjJogSBmlpZNSVqGU0dKmLUPpYAhoKUNsNeFo8uTN+37J8wF4GaWbdapRJRvVTIPPur3Oyz3V+bS+poY9M//Snlm/eHN7B47I2EUOCfC5Wy7rckon9wnwpVXerGfr1WTljL9X0+V8tHTGC3u4Xow3q+l68eGxnACHVCzAM1GlGVeFkFy7KRG7ePRV5lgai4SfcjSaIeE8g5MYJAkcQ6NQIpLLYlg6noZBwFfEH8Uq0VPwnpLSpGCzfJxJhkRWqpUQGHRNCk+VCpRQZy1dawlchkJoCiEwyPWBkywUFMqpdiuhCQlVvOOZAxIMSxV79K73FVNXLV0dmG2zr3Y1UX9TBobX+z3Z/QXskeBVEX8QuWeJv2+yZ0xqh4i+SBVnYpi6Nh50B4aXI6szNDuuuS1mXwMuGfi6gPpLhC+f9rNentNQXOY285FjDxf/8gPimF2msNHqOAAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;\">\n      <img class=\"gatsby-resp-image-image\" style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\" alt=\"react page\" title src=\"/static/01b89cb5c9975b566dfbc3dc1c74299f/9ff85/react-page.png\" srcset=\"/static/01b89cb5c9975b566dfbc3dc1c74299f/65ed1/react-page.png 210w,\n/static/01b89cb5c9975b566dfbc3dc1c74299f/d10fb/react-page.png 420w,\n/static/01b89cb5c9975b566dfbc3dc1c74299f/9ff85/react-page.png 465w\" sizes=\"(max-width: 465px) 100vw, 465px\">\n    </span>\n  </span>\n  </a></figure>\n<p><strong>Why Server Rendering?</strong></p>\n<ul>\n<li>\n<p>Faster initial page speed:</p>\n<ul>\n<li>Markup displayed before downloading large JavaScript.</li>\n<li>Markup can be generated more quickly on a fast server than low power client devices.</li>\n</ul>\n</li>\n<li>\n<p>Faster Development and Prototyping:</p>\n<ul>\n<li>Instantly refresh your app without waiting for any watch scripts or bundlers.</li>\n</ul>\n</li>\n<li>Easy deployment of static content pages/blogs: just archive using recursive wget.</li>\n<li>SEO benefits of indexability and perf.</li>\n</ul>\n<p><strong>How Does Server Rendering Work?</strong></p>\n<ul>\n<li><code class=\"gatsby-code-text\">react-page</code> computes page markup on the server, sends it to the client so the user can see it quickly.</li>\n<li>The corresponding JavaScript is then packaged and sent.</li>\n<li>The browser runs that JavaScript, so that all of the event handlers, interactions and update code will run seamlessly on top of the server generated markup.</li>\n<li>From the developer’s (and the user’s) perspective, it’s just as if the rendering occurred on the client, only faster.</li>\n</ul>\n<p><a href=\"https://github.com/facebook/react-page/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Try it out …</a></p>\n</blockquote>","excerpt":"It’s been three months since we open sourced React and it is going well. Some stats so far: 114 285 unique visitors on this website 1933 stars and 210 forks 226 posts on Google Group 76 GitHub projects using React 30 contributors 15 blog posts 2 early adopters: Khan Academy and Propeller Wolfenstein Rendering Engine Ported to React  Pete Hunt ported the render code of the web version of Wolfenstein 3D to React. Check out the demo and render.js file for the implementation. React & Meteor  Ben…","frontmatter":{"title":"Community Round-up #7","next":null,"prev":null,"author":[{"frontmatter":{"name":"Vjeux","url":"https://twitter.com/vjeux"}}]},"fields":{"date":"August 26, 2013","path":"content/blog/2013-08-26-community-roundup-7.md","slug":"/blog/2013/08/26/community-roundup-7.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/2013/08/26/community-roundup-7.html"}},"staticQueryHashes":[]}