readme.md 5.57 KB
Newer Older
1
# ![TodoMVC](https://raw.github.com/addyosmani/todomvc/gh-pages/media/logo.png)
addyosmani's avatar
addyosmani committed
2

3
## Helping you select an MV\* framework
addyosmani's avatar
addyosmani committed
4

Sindre Sorhus's avatar
Sindre Sorhus committed
5

6
Developers these days are spoiled with choice when it comes to selecting an MV\* framework for structuring and organizing JavaScript web apps.
addyosmani's avatar
addyosmani committed
7

8 9 10
Backbone, Ember, AngularJS, Spine... the list of new and stable solutions goes on and on, but just how do you decide on which to use in a sea of so many options?

To help solve this problem, we created TodoMVC - a project which offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV\* frameworks of today.
addyosmani's avatar
addyosmani committed
11

12

13
#### Todo apps are included for:
14

Sindre Sorhus's avatar
Sindre Sorhus committed
15
- [Backbone.js](http://documentcloud.github.com/backbone)
16
- [Ember.js](http://emberjs.com)
17
- [AngularJS](http://angularjs.org)
Sindre Sorhus's avatar
Sindre Sorhus committed
18
- [Spine](http://spinejs.com)
19 20
- [KnockoutJS](http://knockoutjs.com) (MVVM)
- [Dojo](http://dojotoolkit.org)
Sindre Sorhus's avatar
Sindre Sorhus committed
21
- [YUI](http://yuilibrary.com)
22 23
- [Batman.js](http://batmanjs.org)
- [Closure](http://code.google.com/closure/library/)
24
- [Agility.js](http://agilityjs.com)
25
- [Knockback.js](http://kmalakoff.github.com/knockback)
Sindre Sorhus's avatar
Sindre Sorhus committed
26
- [Google Web Toolkit](https://developers.google.com/web-toolkit/)
27

28

29
###### Non MV*
30

Sindre Sorhus's avatar
Sindre Sorhus committed
31
- [jQuery](http://jquery.com)
32
- Vanilla JS
33

addyosmani's avatar
addyosmani committed
34 35
###### RequireJS

Sindre Sorhus's avatar
Sindre Sorhus committed
36 37
- [Backbone.js](http://documentcloud.github.com/backbone) + [RequireJS](http://requirejs.org) (using AMD)
- [Ember.js](http://emberjs.com) + [RequireJS](http://requirejs.org) (using AMD)
addyosmani's avatar
addyosmani committed
38 39


40 41
#### Labs

Sindre Sorhus's avatar
Sindre Sorhus committed
42
We also have a number of in-progress applications in Labs:
43

44
- [CanJS](http://canjs.us)
Sindre Sorhus's avatar
Sindre Sorhus committed
45
- [Maria.js](https://github.com/petermichaux/maria)
46
- [cujo.js](http://cujojs.github.com)
47
- [Meteor](http://meteor.com)
48
- [Derby](http://derbyjs.com)
49 50 51
- [SocketStream](http://www.socketstream.org) + [jQuery](http://jquery.com)
- [Ext.js](http://www.sencha.com/products/extjs)
- [Sammy.js](http://sammyjs.org)
52
- [dermis](https://github.com/wearefractal/dermis)
53
- [Stapes.js](http://hay.github.com/stapes)
54
- [Epitome](http://dimitarchristoff.github.com/Epitome)
Sindre Sorhus's avatar
Sindre Sorhus committed
55
- [TroopJS](https://github.com/troopjs)
56
- [soma.js](http://somajs.github.com/somajs)
57 58 59 60
- [DUEL](https://bitbucket.org/mckamey/duel/wiki/Home)
- [Olives](https://github.com/flams/olives)
- [PlastronJS](https://github.com/rhysbrettbowen/PlastronJS)
- [Dijon](https://github.com/creynders/dijon-framework)
Sindre Sorhus's avatar
Sindre Sorhus committed
61 62
- [rAppid.js](http://www.rappidjs.com)
- [o_O](http://weepy.github.com/o_O)
63
- [KnockoutJS](http://knockoutjs.com) + [ClassBindingProvider](https://github.com/rniemeyer/knockout-classBindingProvider) (using Ryan Niemeyer's Class Binding Provider)
Sindre Sorhus's avatar
Sindre Sorhus committed
64
- [KnockoutJS](http://knockoutjs.com) + [RequireJS](http://requirejs.org) (using AMD)
65
- [AngularJS](http://angularjs.org) + [RequireJS](http://requirejs.org) (using AMD)
66
- [CanJS](http://canjs.us) + [RequireJS](http://requirejs.org) (using AMD)
Sindre Sorhus's avatar
Sindre Sorhus committed
67
- [AngularJS](http://angularjs.org) (optimized)
68
- [Backbone.xmpp](https://github.com/ggozad/Backbone.xmpp)
69
- [Dart](http://dartlang.org)
70
- [Chaplin](http://chaplinjs.org) + [Brunch](http://brunch.io)
Sindre Sorhus's avatar
Sindre Sorhus committed
71

72

73 74
## Live demos

Sindre Sorhus's avatar
Sindre Sorhus committed
75 76
Live demos are available on our [website](http://todomvc.com)

77

78
## Screenshot
79

80
![screenshot](https://raw.github.com/addyosmani/todomvc/gh-pages/screenshot.png)
81 82


83
## Team
84

85
TodoMVC would not be possible without a strong team of [contributors](https://github.com/addyosmani/todomvc/contributors) helping push the project forward each day. In addition, we have a core project team composed of:
86

Sindre Sorhus's avatar
Sindre Sorhus committed
87
#### [Addy Osmani](http://github.com/addyosmani) - Founder/Lead
Addy Osmani's avatar
Addy Osmani committed
88

Sindre Sorhus's avatar
Sindre Sorhus committed
89
<img align="left" width="40" height="40" src="http://www.gravatar.com/avatar/96270e4c3e5e9806cf7245475c00b275.png?s=40">
Sindre Sorhus's avatar
Sindre Sorhus committed
90
Addy is a Developer Platform Engineer at Google who originally created TodoMVC. He oversees the project direction, drives expansion and helps lead core development with Sindre Sorhus (by far our most active contributor!).
91

Sindre Sorhus's avatar
Sindre Sorhus committed
92
#### [Sindre Sorhus](https://github.com/sindresorhus) - Lead Developer
93

Sindre Sorhus's avatar
Sindre Sorhus committed
94
<img align="left" width="40" height="40" src="http://www.gravatar.com/avatar/d36a92237c75c5337c17b60d90686bf9.png?s=40">
Sindre Sorhus's avatar
Sindre Sorhus committed
95 96
Sindre is a Web Developer who drives core development, quality control and application design for the project. His contributions have helped us ensure consistency and best practices are enforced wherever possible.

97
#### [Gianni Chiappetta](https://github.com/gf3) - Logo designer
addyosmani's avatar
addyosmani committed
98

99 100

## Disclaimer
101

Sindre Sorhus's avatar
Sindre Sorhus committed
102 103
<img align="right" width="230" height="230" src="https://raw.github.com/addyosmani/todomvc/gh-pages/media/icon-small.png">

104
TodoMVC has been called many things including the 'Speed-dating' and 'Rosetta Stone' of MV* frameworks. Whilst we hope that this project is able to offer assistance in deciding what frameworks are worth spending more time looking at, remember that the Todo application offers a limited view of what a framework may be capable of.
105

Erik Jansson's avatar
Erik Jansson committed
106
It is meant to be used as a gateway to reviewing how a basic application using a framework may be structured and we heavily recommend investing time researching a solution in more depth before opting to use it.
Addy Osmani's avatar
Addy Osmani committed
107

108

109 110
## Project Status

111
TodoMVC 1.0 includes re-writes of almost all applications, ensuring they follow a consistent set of specifications and are using the latest versions of all libraries and frameworks in use. We've also addressed framework author concerns about routing by adding this to many of the more mainstream applications in the project.
112

Sindre Sorhus's avatar
Sindre Sorhus committed
113

114
## Getting Involved
115

116
Whilst we enjoy implementing and improving existing Todo apps, we're always interested in speaking to framework authors (and users) wishing to share Todo app implementations in their framework/solution of choice.
117

118
Check out our [contribution docs](todomvc/blob/gh-pages/contributing.md) for more info.
119 120 121 122


## License

123
MIT License  
Sindre Sorhus's avatar
Sindre Sorhus committed
124
Copyright (c) Addy Osmani & Sindre Sorhus