Statecharts for the rest of javascript
JavaScript HTML
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

Stativus: Statecharts for the Rest of Us!

Stativus is a micro-framework that has full functionality of Statecharts for your application. It can work in any library such as:

Statecharts are a great way to organize your web application and make it more robust and increase code reuse.


Stativus comes in three versions:

  • Debug Mode: This is the file named stativus.debug.js and it is more readable and you get the following
    • All enterState are documented with 'ENTER: state_name'
    • All exitState are documented with 'EXIT: state_name
    • All events are documented with 'EVENT: state_name fired [event_name] with n argument(s)'
    • Any time your application is configured in such a way that it will break, you will get a console or exception
    • All Async starts and stops will be outputted to the console.
    • Will warn you if you forgot to return true when using willEnterState()
  • Full: this is the file named stativus.js and is a normal version for production use
  • Minified: this is the file named stativus.min.js and is a minified version for production use (gzipped: ~3.9k)


A list of all demos can be found at Stativus Demos

You can see a working version using only HTML5 Canvas / JQuery / Stativus called RedFlix You can see the code at stativus-demo

Readings and Tutorials on Statecharts

Here are a list of resources for learning about state charts (Thanks: Johnny Luu):


Please read the complete API documentation at


  1. Make sure that you have GruntJS installed
  2. Make sure that you have UglifyJS installed
  3. Make sure that you have Metascript installed
  4. Clone the repository: git clone git://
  5. npm install
  6. grunt -v


  • Architect: Evin Grano
  • Contributors:
    • Seth Carney :: twitter: @SethCarney :: github: @scarney81
    • Mike Atkins :: github: @apechimp
  • Beta Tester: Johnny Luu


Stativus is under the MIT license that can be read in license.js Just remember who brought this to you.

TypeScript declaration file

There is a TypeScript declartion file (stativus.d.ts) available for TypeScript users.