2) Consider a Routing Solution

React-Router

I like React-Router . It keeps your UI in sync with the URL. It has a simple API with powerful features like lazy code loading, dynamic route matching, and location transition handling built right in. Make the URL your first thought, not an after-thought.

react-router-redux

Redux DevTools

I also suggest you to use this great and fun Redux DevTools browser extension. You development workflow will never be the same

4) Choose your client-server interaction

In today’s world there are two dominant architectural styles for client-server interaction: REST and ad hoc endpoints, don’t forgetting Websockets .

But if you feel adventurous you can try GraphQL — a data query language and runtime -, together with Relay — a JS framework for building data-driven React applications, both from Facebook. This tutorial andthis post should help you get started.

5) Consider Server side rendering

Universal JavaScript means the same code runs in different environments, in this case, on the client and on the server (thank you node.js). This can help SEO and initial loading time of your SPA and can be easily achieved with React Router SSR .

6) Consider some tests

There are some utilities (besides all major test runners and assertion libraries out there):

Follow ReactJSnpm that publishes tweets when #ReactJS related libraries are updated on NPM

8) Breathe. It’s web development

Yes, It’s web development. Things move fast. You don’t need to master everything and there will always be that brand new technology that the cool kids will gonna want to use. Use what you need, and what makes sense to your project. If you want, start with the basics, and as your project grows, if you feel that something is start missing, opt-in for that tools. Refactoring is easy as long as you do it in a regular basis and structure your code well.