Please note: this blog has been migrated to a new location at https://jakesgordon.com. All new writing will be published over there, existing content has been left here for reference, but will no longer be updated (as of Nov 2023)

Javascript State Machine 2.4

Mon, Nov 21, 2016

My javascript-state-machine library has been in hibernation for a little while - as have I - but we sleep no more! Starting with a small point release - 2.4 - to clean up a few loose ends:

The Future

As mentioned in the previous release I feel that this library works well for it’s intended use case. It is mature, stable, and well tested. This 2.x release branch is - I think - a nice, small, self contained library.

However, some companies have requested new features to support more complex use cases:


These features are fairly significant and likely to break backward compatibility and therefore justify a Major version bump to 3.0. I don’t yet know which features will be prioritized - so feel free to vote for your favorites in the comments below.

I’m also (tentatively) considering building version 3.0 under a dual Open Source/Commercial license where the majority of features will be available for free under the open source license, while the more complex features will be available, along with guaranteed support, under the commercial license…

Open Source Commercial
All Existing 2.x Features
Promise-based Async
Improved Introspection
Observable Transitions
Conditional Transitions
Dynamic Transitions
Composable State Machines
State History
Support Github Issues Priority Email
License LGPL Commercial
Price Free $149 / year

If you have any thoughts feel free to comment below, or email jake@codeincomplete.com