The only thing I would improve is to center the newsletter sign-up by settings its parent element to: width: 100vw; height: 100vh; display: flex; justify-content: center; align-items: center; Also, not sure that router is necessary in this project, its nice to know it, but you could just render components based on state, its better to get into a habit of not installing dependencies that you don't really need, its just extra overhead.
Your submission is very good, much better than mine. :D
Marked as helpful