• 1. foam-framework/foam


""Build fully featured high performance apps in less time using FOAM.

  • Application Efficiency
  • Developer Efficiency

“Fast apps Fast”

Feature Oriented Active Modeller

FOAM is a full-stack Reactive MVC Meta-Programming framework.

While it is written in Javascript, it can be used to generate code for any language or platform.

There is nothing to build. Just load any of the various .html demos.

  • Documentation: Wiki
  • Developer Discussion: foam-framework-discuss@googlegroups.com
  • Website
  • Demos


FOAM has automated tests that can be run with npm test. This depends only on a working Node.js and npm.

There is also a pre-commit hook in hooks/pre-commit; it can be installed by running hooks/install.sh one time. Then the tests will run before any git commit and block the commit if they’re failing.

Regression tests whose output has legitimately changed can be conveniently updated using the test page. That works as follows:

node --harmony tests/server.js
and then navigate to http://localhost:8888/tests/FOAMTests.html.

Any failed regression test will highlight its results with red borders, and the “Update Master” button will write the test’s latest results into the master. This edits tests/FUNTests.xml, which you should then check in. Be careful to make sure the new output of the test is actually valid!

UI Testing

A small subset of tests require human oversight. These can be run using the server (see above) and then navigating to http://localhost:8888/tests/FOAMTests.html?ui=1 to see just the UI tests.

The ?ui=1 parameter shows only tests with the ‘ui’ tag.

Bundled Javascript Files

FOAM can bootstrap itself at runtime using core/bootFOAM.js and friends.

However, we have a Grunt script that will build a combined foam.js and minified foam.min.js, which make for easier deployment.

To get started with Grunt, you’ll need npm. Then you can run:

sudo npm install -g grunt-cli
npm install

Currently these files are bloated by rarely-used optional features like Canvas views, Google protobuffer support, and others. We plan to cut these out into separate files eventually."

• 2. feross/standard

JavaScript Standard Style

One Style to Rule Them All

"No decisions to make. No .eslintrc, .jshintrc, or .jscsrc files to manage. It just works.

This module saves you (and others!) time in two ways:

  • No configuration. The easiest way to enforce consistent style in your module/project. Just drop it in.
  • Catch style errors before they’re submitted in PRs. Saves precious code review time by eliminating back-and-forth between maintainer and contributor.


npm install standard


  • 2 spaces – for indentation
  • Single quotes for strings – except to avoid escaping
  • No unused variables – this one catches tons of bugs!
  • No semicolons – It’s fine. Really!
  • Never start a line with ( or [
    • This is the only gotcha with omitting semicolons – automatically checked for you!
    • More details
  • Space after keywords if (condition) { ... }
  • Space after function name function name (arg) { ... }
  • Name the context variable self – var self = this
    • Accidental window.self usage is dissallowed (happens when var self = this is omitted)
  • Always use === instead of == – but obj == null is allowed to check null || undefined.
  • Always handle the node.js err function parameter
  • Always prefix browser globals with window – except document and navigator are okay
  • Prevents accidental use of poorly-named browser globals like open, length, event, and name.
  • And more goodness – give standard a try today!

To get a better idea, take a look at a sample file written in JavaScript Standard Style, or check out some of the repositories that use standard."

• 3. typicode/fetchival


Makes writing JSON requests with fetch easier

Fetchival supports all major browsers (IE9+) and Node.

It’s also Promise based and weighs only 0.5kb min/gz."

• 4. facebook/flux


An application architecture for React utilizing a unidirectional data flow.



Please read the blog post announcing Flux: "An Application Architecture for React".

Then read more about the Flux architecture and dive into our TodoMVC tutorial.

Going further, please take a look at our in-depth examination of action creators and the dispatcher."

• 5. sstate/cargo-bay


A base store for flux applications

Demo source live demo


npm install cargo-bay


“This is the base store for the storages in your flux application. It will provide the base events you will merge into your store, so you can have a standard interface to listening to those storage updates. This will let you know that the state in your store has changed, and you can call render (or whatever you want) in your view.”

• 6. mozilla/pdf.js


PDF.js is a Portable Document Format (PDF) viewer that is built with HTML5.

“PDF.js is community-driven and supported by Mozilla Labs. Our goal is to create a general-purpose, web standards-based platform for parsing and rendering PDFs.”


7. localForage

"localForage is a fast and simple storage library for JavaScript. localForage improves the offline experience of your web app by using asynchronous storage (IndexedDB or WebSQL) with a simple, localStorage-like API.

localForage uses localStorage in browsers with no IndexedDB or WebSQL support. See the wiki for detailed compatibility info.

To use localForage, just drop a single JavaScript file into your page:

<script src="localforage.js"></script>
<script>localforage.getItem('something', myCallback);</script>

Download the latest localForage from GitHub, or install with npm:

npm install localforage

or bower:

bower install localforage

localForage is compatible with browserify."

• 8. moose-team/friends

• 9. Rich-Harris/ramjet

• 10. coocood/freecache

• 11. adamwulf/app-launch-guide