node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org ยป



Object-oriented web templating for the people. Thirsty people.

Contact Info

Reach out on irc or email. Log issues on GitHub!

irc: #oj

email: evan(at)

twitter: @evanmoran


Change Log:


  • CLI automatically detect --modules-dir /modules directory and apply --no-modules option to other directories
  • CLI can defaults --output to public for simplified usage (this mirrors Express middleware defaults as well)
  • Removing grunt support from OJ's yeoman scaffolding support, because it's unecessary with these CLI improvements


  • Fixes npm modules to specific versions. (latest considered harmful)
  • Fixes insert event being incorrectly called when multiple events are bound


  • Improved minification


  • oj.List.each can accept a ModelView. By default the ModelView will be a child of the <li> element. Optionally the instace have a isListItem=true property, that when set will cause the ModelView to take the place of the <li> instead.
  • OJ Core types like List, Table, CheckBox, now can be replaced by plugins. This is useful on certain "big framework" plugins -- more info coming soon!


  • Express is supported with separate module compiling middleware
  • Yeoman is supported. Install with npm install -g generator oj and then yo oj
  • CLI supports --modules, --js, --css and --html to allow unified or separate compiling in any combination


  • Added AMD support (for RequireJS)
  • Added Bower support (a client side package manager)
  • Fixing oj.toCSS to correctly accept minify option
  • Fixing oj.copyProperty to handle null definitions


  • Adding insert event to tag functions that is triggered when the element is inserted This very fast and does not use DOMNodeInserted.


  • Rewrote oj.js into JavaScript (from CoffeeScript)
  • Minified code is now 16% smaller
  • Performance is 10% faster
  • Removed id generation for root object elements
  • Remove and oj.guid methods since id generation isn't necessary
  • Removed typeOf method as it was slow and for the most part unused
  • Remove several internal helper functions


  • Fixes npm package management


  • Minor fix to npm package to ensure it works without coffee-script installed globally.


  • Plugins now include themselves once required in node or included with a <script> tag client-side
  • Hacker News initial release.


  • Everything works. Time to make it great.