About

What's the purpose of this site

ReactJS is easy to get started with, but it doesn't provide much insight into the application architecture.

Using the official documentation and StackOverflow answers from lots of talented React developers, will get you there in terms of how to use the framework, but they often gain very little or no insights at all to the software application architecture. That is perfectly fine, because that's not the purpose of those resources.

In fact ReactJS does not make any assumptions on how you structure you application*. Unlike (some) frameworks they leave the architecture entirely up to you. That is a good thing if you where wondering. Regardless of the size of your project, you can find value in using ReactJS, that you (perhaps) wouldn't if a certain architecture was forced upon you. But using ReactJS comes with that specifici cost. You and your team must define your own architecture.

This site's main purpose is to help you get inspiration to different approaches to React software architecture. No software pattern is the best and it's not a "one size, fits all" deal when defining your architecture. If one single pattern was THE best - we'd all be doing that. Different architectural designs has different strengths and drawbacks and choosing one is a matter of perspective. For instance this website will probably always stay lean and small, therefore this does not require the same scalability as the architecture chosen to drive a site like Facebook.

Though this is examplified using React (and React eco system libraries such as redux, etc), we consider the actual patterns to be framework-agnostic. Using the different architectural designs, should be just as valid if they where to be used with Vue, Mithril, etc.

*) Using open source packages that are built as part of the React Eco-system may in fact force some architecture.

This website is not affiliated with ReactJS or Facebook