I just read about two issues we have on our app that are "hard to fix" and we have done MANY attempts to fix with no success (this for example) and I just realize something:
Why we don't use state machines for those complex scenarios?
The only place we are effectively using state machines in the document drafts and honestly I don't remember when was the last time we filed an issue about document drafts or anything related to document drafts...
State machines clearly work for complex scenarios like that, and we do have A LOT of complex scenarios in the app that we can make more stable and predictable with state machines. Here are some places I believe we can use them:
Account picker
Auto-updater
panel management (sizing, positioning...)
account data normalization across the whole app
Onboarding
device linking
publishing documents
comment publishing
and many more...
I know Eric Vicenti do not like them and Alex Burdiyan also don't see them as super valuable, but they clearly work. not only because they work as expected, but also because they are easy to update, easy to adapt to new flows and easier to test!
Anyways... I really hope we can start using them more and more...🙏