We maintain a React archetype that's exist to serve three goals:
It's a reference of the ideal state of our React applications across Shift
It's a boilerplate for prototyping
It's an on boarding resource for showing new team members how we build React apps
The React archetype should be considered a living document. It should be maintained to reflect to solutions we create on a regular basis. The archetype does not intend to be future proof. Instead, it's an ideal that should evolve with what we learn.
We use the archetype for rapid prototyping. It acts a a boilerplate allowing engineers to create experimental solutions without needing to scaffold problems that have been solved. It contains a set of UI components that are purpose built for this reason.
When creating a new prototype, just create a new branch. Your prototype can live there as long as it needs to.
All new team members should use the archetype as a learning tool to see how we build products using React. It contains patterns and structure that should carry through to any applications we build.