node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »



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