As much as I love working with state machines in the frontend side of the UI, the most hard thing to do with it is to convince your team that they are great and they solve most of the problems in terms of logic, feature iteration and confidence in the code you push to production.
One of the worst scenarios I am right now is when some app logic is inside the state machine and some is outside. Is really hard to follow what is actually happening when there's this mix of state logic in the same app/feature.
what about you? Do you love/hate state machines? what is your current opinion of them?