1. Everything starts with URLs. Whatever's in the URL, should be reflected on the page, and vice versa. Are you updating the state? Update the URL first, and derive the new state from there. You'll get lots of things for free: browser navigation, reproducible errors, easier reporting.