node package manager


When app cache works right, this wont be neccessary any more.


Tired of appcache being broken? Still need to work with offline or packaged apps? I'm here to help.

build status


Create a bootloader.js entry point to tell sterno what your app's origin is and what files you want it to manage:

var sterno = require('sterno');
sterno('', ['/app.js']);

And create a gulpjs file like:

var gulp = require('gulp'),
  browserify = require('gulp-browserify'),
  githubPages = require('gulp-github-pages'),
  manifest = require('gulp-sterno-manifest');
gulp.task('manifest', function(){
      version: '0.0.1'
gulp.task('build', function(){
    .pipe(browserify({debug : false}))
gulp.task('publish', function(){
gulp.task('deploy', ['build', 'manifest', 'publish']);

And a barebones index.html:

<!DOCTYPE html>
    <title>Sterno Demo</title>
    <script src="bootstrap.js"></script> 

When you run gulp deploy you got yourself a stew goin':

  • browserify will build your app.js and bootloader.js into ./.build
  • copy index.html into build
  • generate the manifest file for sterno to use
  • deploy everything to your github pages

When you open your app in chrome, sterno will:

  • phone home for your manifest file
  • download everything in the manifest if it's your first time to the app
  • only download assets that have changed in the manifest
  • if an asset hasn't changed, it will just be served locally

@todo: Actually check-in this example.


See project on travisci or just run locally if you have phantomjs installed:

npm test