Definitely check out Egghead.io course by Kent C. Dodds
This is the result of me following along his explanations (and peeking at the original repo to fill the code gaps between the lessons).
I've used Create React App to enable hot-reloading and do it a bit differently (more traditionally) to single-file approach.
Live result can be viewed here