What prompted you to create this project?
Ivan: I was part of a new team forming and we were exploring whether to use React. The team needed a quick way to get started, and so the idea for a starter app was born. The app can be cloned from Github and includes everything needed to get started with test-driven development of a React-based web application.
Who does this template work best for?
Ivan: The starter app will work best for a team that has tried out—and decided to use—React. Perhaps they have already created some simple demo components using React in the browser. The starter has a ready-to-go solution for building, using a more stable, test-driven approach.
What kind of apps does this template help users create?
Ivan: It would work for any kind of app where React is a good fit. React is known for being highly performant compared to other frameworks like Angular. High-traffic sites like Instagram, Facebook, Khan Academy, and The New York Times use React. But React isn’t just for high-traffic sites. The starter app is more than a template—it has best practices for developing React components baked in.
What skill level do JavaScript developers need in order to use this project?
Ivan: It’s appropriate for all levels. React was designed with an intent to include designers, so it’s easy to get started. It’s also influenced by Functional Reactive Programming (FRP), a style that has made its way from academia to industry. So you can go as deep as you want with composing components, one-way data flow, immutable data structures, and reactive programming.
Do you have updates in mind that you’ll be adding in the future?
Ivan: I’d like to add in more Flux architecture, which is comparable to the common Model-View-Controller pattern, but better because it creates a one-way data flow.
I would also like to add a demonstration of how the client-side web app would talk to a REST API server.
Feedback wanted! Should this be a Yeoman Generator? Let me know!
How do you see React affecting the JavaScript language? What kind of impact does it have on the way web apps are built now?
Ivan: React’s JSX syntax is really handy. You get so used to it that it’s hard to imagine designing components without it. I’m not sure if JSX is something TC39 will ever consider putting into the language, but it might be an outside possibility.
Right now there is a choice of what I am calling “follower” frameworks, like Angular and Ember, which have openly admitted that their second versions are going to be highly influenced by React. Personally, I don’t see the point of waiting around for second versions that aren’t even released yet. React already has a thriving community and large apps in production. It has built the momentum to be a viable production framework.
React encourages you to use ES6 (which has recently been renamed to ES2015) today. With Babel being the de facto standard transpiler, it’s easy to get started on using the most current version of JavaScript. ES6/ES2015 brings a lot of features to the table that make JavaScript a more mature language.
Is there anything else about React or this project you’d like to share?
Ivan: React is not a framework. It doesn’t come with scaffolding like Ember, so it can’t just be used completely out of the box. Using React requires thinking about the architecture of your web app on a deeper level than using a framework. Thinking about the design of your app before you get started is a good thing! Use this starter kit to get organized today.