Skip to content
Jo is a thin (~12K) candy shell for PhoneGap apps. It's an HTML5 mobile app framework which provides UI widgets, a flexible event model, a wrapper for sound, and a light data layer. Apps are skinnable with CSS3, and work everywhere PhoneGap does... and then some, including Adobe Air and OSX (desktop and dashboard).
Find file
Pull request Compare This branch is 47 commits behind davebalmer:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Jo is a JavaScript framework for HTML5 capable browsers and devices. It was originally designed to work on mobile platforms as a GUI and light data layer on top of PhoneGap. Since its creation, Jo has also been tested successfully as a lightweight framework for mobile browsers, newer desktop browsers, and even Dashboard widgets.


It's pretty easy to build on your own, but to get the most out of it you'll want to get a minifier like jsmin or the YUI Compressor. Minified and gzipped, Jo weighs in around 12K with no other JavaScript library dependancies.

Mac OSX, Linux & BSD

cd jo


cd jo

If you're not up for building the library yourself, there's nothing wrong with downloading the latest stable release, all built and ready to plug in from: GitHub Downloads

Directory Map

Important files in the directory tree are:

  • js/jo_min.js

    This is the jo library bundled and minified, ready to drop into your project. You will need to build the library to make this file (as well as the un-minified version jo.js which is useful for debugging).

  • css/aluminum

    This is a CSS3 bundle ready to ship your app with. Also serves as a good example of modern HTML5 styling capabilities. Looks pretty bad in IE up through version 8.

  • css/jo.css

    This is a newer base CSS theme for Jo, preferred over Aluminum for now. Built with Less CSS compiler.

  • docs/*.mdown

    These are supplimental doc files which are used by joDoc to build out the developer guide portions of the documentation.

Something went wrong with that request. Please try again.