Feature-Oriented Active Modeller
JavaScript HTML Java CSS Shell Swift
Clone or download
Failed to load latest commit information.
apps Improve build of gmail app to cut down on size some more. Oct 20, 2016
core Fixed translation placeholder capitalization Jul 31, 2017
demos Fixed preso3 link in DemoCat. Aug 12, 2016
docs Add a Markdown doc for the query format supported by FOAM's default p… Sep 11, 2015
hooks Add git pre-commit hook to run the tests. Sep 23, 2014
java Add missing super.onSaveInstanceState() call Dec 1, 2017
js App Builder fixes for local debug running. May 11, 2018
lib/gmail Removed sylvester Jul 17, 2015
node/demos Migrated Properties from model_: to type:. Jan 10, 2016
orphanage U2: Ported remaining ues of id to el(). Jan 12, 2016
polymer Polymer: Add the foam-storage component and ArrayAdapter to support it Dec 18, 2015
resources/svg Resolved #394: Embedded DAO syncs with local IDB when developing, but… Oct 6, 2015
swift Add pipe implementations for java and swift and add a small test for … Dec 21, 2016
tests Renamed extendsModel to extends. Oct 15, 2015
third_party/js/com Minified QRGenerator Oct 27, 2015
tools Fix nodejs tools that import "process" Mar 18, 2016
.gitignore Add .swp and .DS_Store to gitignore Apr 5, 2016
COPYING Added README and COPYING. Jul 30, 2012
COPYRIGHT Saturn mail work plus lots of cleanup, bug fixes, and performance imp… Oct 11, 2013
Gruntfile.js IE polyfill, but BrowserFileDAO still will not work without document.… Sep 11, 2015
README.md Update README.md to reflect modern FOAM properly Nov 10, 2015
WORKFLOW.md Tests: Document the testing workflow Sep 23, 2014
fonts.css index*.html: Pull inlined fonts out, into fonts.css. Dec 7, 2015
get-polymer.sh PCalc: Proper build process for Polymer calculator as Chrome app (req… Feb 9, 2015
index.html Support flags in index.html generic bootloader. May 11, 2016
index.js Support flags in index.html generic bootloader. May 11, 2016
indexDebug.html index*.html: Pull inlined fonts out, into fonts.css. Dec 7, 2015
package.json Update the NPM version to 0.5.0 Nov 10, 2015



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

  • Application Speed
  • Application Size
  • Developer Efficiency

"Fast apps Fast"


Feature Oriented Active Modeller

FOAM is a full-stack reactive MVC metaprogramming 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.

Bundled Javascript Files

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

However, we have a script that will build a combined and minified foam.js and foam.html, which make for easy and efficient deployment.

The simplest case of running the build tool is to run

nodejs tools/foam.js foam.build.BuildApp controller=my.controller.Model targetPath=.

But there are many more options you can configure. See BuildApp.js for the complete set of options and flags, and the various build.sh scripts in the repo for examples of real usage.


Before contributing code to FOAM, you must complete the Google Individual Contributor License Agreement.