node package manager



metaserve makes web application prototyping quicker by compiling and serving assets built with meta-languages[1] such as CoffeeScript, Jade, or Styl (currently the full list).

Use as a command or as a module to handle requests such as http://localhost:8550/js/events.js by run-time-compiling the CoffeeScript source ./static/js/ into Javascript and serving it to the browser. Somewhat similar to but less robust/contrived than Rails Asset Pipeline.

As a command

Install with npm install -g metaserve

Use within a directory that has a bunch of .jade, .sass and .coffee. Run metaserve with optional arguments --host and --port. Defaults to

As a module

Install with npm install metaserve

Use by supplying a base directory, then hooking it in as Express/Connect middleware...

var metaserve = require('metaserve');
var express = require('express');
app = express();
app.get('/dogs', function(req, res) {
    return res.end('woof');

... or as a fallback in a standard http server:

var http = require('http');
var metaserve = require('metaserve')('./static');
var server = http.createServer(function(req, res) {
    if (req.url === '/dogs') {
        return res.end('woof');
    } else {
        return metaserve(req, res);

Supported Languages


  1. Not to be confused with the real definition of a Metalanguage.