eyeballs.js, Artisan JS, Markup.io

2010-10-08 00:00:00 +0100 by Alex R. Young


eyeballs.js (MIT License) by Paul Campbell is an MVC framework that works with a library like jQuery
or Prototype, yet provides a layer of features for organising your code.

eyeballs.js can sit on top of an already implemented web app with a well thought out object model. It can also be used to build standalone javascript apps, backed by HTML5 local storage or something like CouchDB.

Models are defined like this:

o_O('Post', function(post) {});

o_O('Post', function(post) {

var post = Post.initialize({ title: 'All work and no play makes Alex...' });

Now you can see where the library gets its name from. I'm not sure if
I'll get tired of typing o_O, admittedly it made me laugh.

Routing and controllers work using the URL hash, much like many similar
frameworks out there. The framework ships with tests and a little
Sinatra app so REST can be tested.

Artisan JS

Artisan JS (GPL/MIT) by David Brooks is another Canvas library. It targets Canvas specifically, so it doesn't work with
IE. You might be wondering why you'd bother with such a library when
Raphael is cross-browser and very popular; well, it may suit projects when you really do only need to work with
Canvas but you're frustrated with the Canvas API.

Brooks has included support for layered data -- graphics can be layered
and flattened when rendered, but the data remains. This means the data
can continue to be manipulated after it is rendered -- read more in
Layers in Artisan JS.

The Artisan site has some good documentation, and there's also a GitHub
repository at davidbrooks /


I don't usually feature commercial projects here -- this site is more of
an open source kind of place. But I was impressed by
Markup.io, it's a web annotation service built using Node, Express and

Whenever I work with new technology my boss at the time (or client) asks
"so what commercial projects are built with this?" I'm going to add Markup.io to my growing list of JavaScript server-side app bookmarks.
Please send yours in as well, whether they're Node, Rhino, Ringo,
Narwhal... or something else!