Following along with Robin Wieruch's article here.
Using useReducer to manage everything except the form input's state. Didn't bother styling much other than some barebones alignment; using Milligram.css for general styling. The whole thing is just one bloated App.jsx.