Hi Marcin, thank you for your feedback.
I made a conscious decision to not use useReducer here as I believe it would have added another level of complexity that is not required would have presented a departure from trying to compare simple state updates with React and Vue. I could have opted to use useReducer for the list and useState for the todo, but opted to keep it simple and use useState for both.
There will be another edition in this article series coming soon that will be comparing an app built with React against an app built with React + Redux and I think the use of useReducer will fit much better here given that reducers are a core tenet of Flux/Redux architecture. But good shout on mentioning this as it will provide me with more impetus to get this article started sooner rather than later!
Thanks