React is a fantastic library but it becomes a real pain to manage a project when you are only doing it with react. There are numerous states which you have to manage. With each feature, it becomes harder to know what will be affected. That is why we need redux. You can read more about the motivation here. There is only one state and only ‘actions’ can change it.
All the navigation with states and mounting of components based on URL is easy as pie with react-router.
That is for bare-minimum
Hence, this is the bare-minimum requirement for any React project. Leaving anything and you will be punished.
It is often required that you have to do some non-blocking (or blocking) fetches when the component is loaded or you want to do multiple things in a single action, then Redux Saga comes in handy. You can manage the flow easily with Redux Saga.
Jest is a testing library and there is no better way of getting better without a test framework.
There are many react boilerplate but I am specifying only one here which has all the above tools and making it a perfect boilerplate – react-boilerplate
React has more than 20 UX components but my personal favorite is http://grommet.io