Clone this wiki locally
Due to the current number of MVC/MVVM/MV* frameworks in circulation at the moment, it's not always possible to include each one in TodoMVC, but we would still like to show some of them off here.
Scala.js + Binding.scala
Binding.scala can be used as a reactive web framework. It enables you use native XML literal syntax to create reactive DOM nodes, which are able to automatically change whenever the data source changes.
Binding.scala's TodoMVC application has the tiniest code size among all the TodoMVC implementations, only one source file, 150 lines of code!
- The Binding.scala Project Page
- This “Binding.scala • TodoMVC” Project Page
- This “Binding.scala • TodoMVC” DEMO
- API documentation
- Other live DEMOs
- Chat on Gitter
This submission uses the ClojureScript One MVC framework.
ClojureScript One is a "IDE in the browser" to develop/test/deploy web apps in Clojure/ClojureScript View part is done with Enfocus/Enlive.
Halo is a client-side MVC framework based on Addy Osmani's talks about Aura. It was conceived while Aura was still in private development, causing some concepts to be shared and others to be significantly different.
A lightweight CoffeeScript library/DSL for reactive programming and for declaratively building dynamic web UIs. It focuses on simplicity and on scalability in both performance and application architecture.
ClojureScript + C2
Preact + ES6
A Preact + ES6 + Webpack fork of the React TodoMVC implementation. Fast and ~7kb.
VanillaJS by Ondras
AngularJS + Persistence.js
Backbone.js with sorting
Backbone example with sorting of todos using jQuery UI.
Backbone.js + LMD
LMD: Lazy Module Declaration - powerful yet simple loader/builder. LMD is not yet another RequireJS - it is different.
Backbone.js + Socket.IO + Express.js + MongoDB
Realtime implementation by Ishuah Kariuki.
Ember.js + Persistence.js
Ember.js + RequireJS
The Ember code behind this application is almost an exact duplicate of the example without RequireJS. The code has been split into multiple files, using RequireJS to load them on demand.
A great discussion took place discussing the simplicity of the TodoMVC demo application and the current complexity of marrying an Ember.js application with RequireJS. To learn more about the reasoning behind keeping this implementation separate, a link is provided below.
ExtJS using widgets
Harmony + jQuery BBQ
Meteor with CoffeeScript
knockoutjs + classBindingProvider
React + Coffeescript
Heavily influenced by the TodoMVC official implementation using react.
Really simple and readable code, and as fast as React using JS.
GWT + GAE Channel
Using Google Web Toolkit + Google App Engine Channel API.
Real-time & collaborative.
Uses Command Pattern to distribute changes among clients and the server (only deltas, not whole objects are put on the wire). Based on this Google I/O talk (10 minutes).
FunScript (F#) + Ractive
Meteor with Iron Router