JavaScriptMVC (JMVC) is a MIT licensed, client-side, JavaScript framework that builds maintainable, error-free, lightweight applications as quick as possible. It packs best-of-breed libraries and tools that are guaranteed to work together. It supports every browser that jQuery supports.

If you are new to the framework, this page followed by the tutorials is the best place to start.

JMVC’s goodies are broken down into four sub-projects:

  • jQueryMX – jQuery MVC and DOM extensions
  • StealJS – JavaScript and CSS dependency management and build tools
  • FuncUnit – Functional and unit testing framework
  • DocumentJS – Documentation engine

JavaScriptMVC is extremely modular. Use each sub-project together or separately (via thedownload builder). Start small, using only $.Controller and add in parts of the framework as necessary.

The remainder of this page highlights each sub-project. Click the the project links on the left for a more in-depth overview of the sub-project.


jQueryMX is a collection of useful jQuery libraries that provide the missing functionality necessary to implement and organize large-scale jQuery applications. For example, it includes things like:

  • Special events like drag-drop and resize
  • Language helpers like toJSON and an observable system
  • DOM extensions for things like text ranges and cookies
  • Browser history routing.
  • A class-like system

jQueryMX also puts the MVC in JavaScript with $.Model, $.View, and $.Controller. Modelsconnect to your server over a RESTful JSON interface. Views are super-charged client side templates. Controllers prevent memory leaks with declarative event handling.

jQueryMX is very lightweight. It’s MVC libraries combined (including their $.Class dependency) are 7kb minified and gzipped. Furthermore, you can use every part of jQueryMX independently of JavaScriptMVC and even independently of other parts of jQueryMX. For example, you can use $.Controller without $.Model.


StealJS is a “code manager” that keeps code beautiful and organized while developing and FAST for users in production. It’s a collection of command-line and browser-based utilities enabling you to:

  • load JS, CSS, LESS, and CoffeeScript files and build them into a single production file.
  • generate an application file/folder structure, complete with test, build and documentation scripts.
  • install 3rd party dependencies.
  • clean and JSLint your code.
  • make your Ajax app crawlable.
  • log messages in development that get removed in production builds.

StealJS is a stand-alone tool that can be used without the rest of JavaScriptMVC.


FuncUnit is a web application testing framework that provides automated unit and functional testing. Tests are written and debugged in the browser with FuncUnit’s short, terse, jQuery-like API. The same tests can be instantly automated, run by Envjs or Selenium.

FuncUnit also supports extremely accurate event simulation on practically every browser and system.


DocumentJS provides powerful JavaScript documenting capabilities. This whole website is built with it! DocumentJS can document practically anything. It’s extensible. And with Markdown support, it’s easy to document your code.