Why CanJS?

  • page

CanJS is designed to be a very well-rounded JavaScript framework, useful to almost any client-side JavaScript team.

It provides a wealth of JavaScript utilities that combine to make testable and repeatable Model-View-ViewModel applications with very little code.

CanJS provides the default MV* libraries to the DoneJS framework. Checkout DoneJS's quick start guide for an example of using CanJS to build a server-side rendered, real-time chat app that works as an Android, iOS, and Desktop app.


CanJS is flexible. Unlike other frameworks, it's designed to work in almost any situation. You can readily use third party plugins, modify the DOM with jQuery directly, and even use alternate DOM libraries like Zepto and Dojo. CanJS supports all browsers, including IE8.


CanJS is powerful. Create custom elements with one and two-way bindings. Easily define the behavior of observable objects and their derived values. Avoid memory leaks with smart model stores and smart event binding.


CanJS is fast. It is only about 20k. Its live-binding updates only what needs to be updated without requiring a "diff".


CanJS is friendly. Our fulltime and core team are extremely active on gitter chat and on the forums and always wanting to help.