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.
Flexible
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.
Powerful
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.
Fast
CanJS is fast. It is only about 20k. Its live-binding updates only what needs to be updated without requiring a
"diff".
Friendly
CanJS is friendly. Our fulltime and
core team are extremely active on
gitter chat and on the forums and
always wanting to help.
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.
Flexible
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.
Powerful
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.
Fast
CanJS is fast. It is only about 20k. Its live-binding updates only what needs to be updated without requiring a "diff".
Friendly
CanJS is friendly. Our fulltime and core team are extremely active on gitter chat and on the forums and always wanting to help.