--- /dev/null
+[Jam][] is a package manager for front-end [JavaScript][]. While you
+want to use [[npm|Node]] for server-side stuff, Jam is the tool to use
+for JavaScript that you'll be sending to your users. Following the
+[docs][] (with my already-configured [[`~/.local` prefix|Node]]):
+
+ $ npm install -g jamjs
+
+Integrating with Django is a bit tricky, especially since Jam doesn't
+manage the CSS, images, … that are often associated with JavaScript
+libraries. If you need that, you probably want to look at [[Bower]]
+instead.
+
+Write a setup `package.json` defining your project's dependencies:
+
+ {
+ "name": "myproject",
+ "version": "0.0.1",
+ "description": "An example project"
+ "dependencies": {
+ // NPM dependencies go here…
+ "async": "0.1.22"
+ },
+ "jam": {
+ "packageDir": "apps/my-app/static/js/",
+ "baseUrl": "apps/beehive_common",
+ "dependencies": {
+ // Jam dependencies go here…
+ "jquery": "1.7.1",
+ "underscore": null
+ }
+ }
+ }
+
+Install your dependencies with:
+
+ $ jam install
+
+Upgrade with:
+
+ $ jam upgrade
+
+Compile just the bits you use into a single require-able replacement.
+
+ $ jam compile apps/my-app/static/js/require.js
+
+This last bit is really cool, and where a less JavaScript-oriented
+tool like [[Bower]] falls short. [Jam is using][jam-compile] the
+[RequireJS optimizer][optimizer] under the hood for the task, so if
+you don't use Jam you can always run the optimizer directly.
+
+[[!tag tags/programming]]
+[[!tag tags/tools]]
+[[!tag tags/web]]
+
+[Jam]: http://jamjs.org
+[JavaScript]: http://en.wikipedia.org/wiki/JavaScript
+[docs]: http://jamjs.org/docs
+[jam-compile]: https://github.com/caolan/jam/blob/master/lib/commands/compile.js#L8
+[optimizer]: http://requirejs.org/docs/optimization.html