NPM support would be great, but may need to specify how this works -- do you need to 'build' the modules before hand, as they'll be xpi'd up, and FF itself won't run `npm install`, yeah?

Also, having looked into this in the past, to be able to query a subset of npm (like everything that has `"engines": { "jetpack": "*" }`) or something will require an external service to copy npm's couch db and make our own queries. Isaac has mentioned recently that there may be services to [having a subset of npm available](https://twitter.com/izs/status/358033512441446400), which would be cool to list FF specific extensions (like a lot of pathfinder modules), in addition to platform agnostic modules.

Would also require shimming some node modules (we already have fs, stream, etc.), which work pretty similarly to their node counterparts, and @gozala mentioned a way in the package json to specify which modules you want to use for node deps. For example, if I have an npm dep that wraps up `fs` functions as promises, and is essentially this code:

```
var fs = require('fs');
var defer = require('when').defer;
exports.readFile = function (file) {
  var deferred = defer();
  fs.readFile(file, function (err, data) {
    if (err) deferred.reject(err);
    else deferred.resolve(data);
  });
  return deferred.promise;
}
```
We would need to map `require('fs')` to our native `fs` module (an alias to `sdk/io/fs` or whatever we have), BUT also the ability to for example maybe use someone else's `fs` implementation, in the package.json

```
"sdk": {
  "fs": "node-custom-fs"
}
```

As a way to override modules. @Gozala can probably speak more about it, and this way provides multiple implementations of modules to exist, as we can't maintain an entire FF specific clone of node's API.