Application scaffolding tool for creating Hub Exchange Apps
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Fuel Throttle

Fuel Throttle is an application scaffolding / acceleration project focused on helping developers do what they do best...WRITE APP CODE!

The primary use case for Fuel Throttle (Node) is centered around the following tech:

  • ExactTarget's HubApps (IMH, Interactive Marketing Hub)
  • Using the Stackato (Fuel Platform's PaaS) infrastructure
  • Node.js (Server-side JavaScript Event-driven engine)
  • Require.js (Well performing dependency management and code optimization tool)
  • Backbone.js (JavaScript library which loosly defines client-side MVC)

This tool will reduce your need to write boilerplate code.

The overriding design goal for Fuel Throttle is to reduce the development cycles required to get application code into the Fuel Platform ecosystem.

The secondary goal of Fuel Throttle is to reduce the cost of admission for development of apps by resolving common issues.



Technological Dependencies

Fuel Throttle (Node) integrates the following technologies for you:

  • Code@ - ExactTarget's Developer Community
  • Fuel API Family - ExactTarget's RESTful based API ecosystem
  • App Center - ExactTarget's Application Management Interface
  • Fuel UX - The Fuel Platform control library built on Twitter's Bootstrap
  • Stackato - ActiveState's PaaS implemented at ExactTarget
  • Twitter Bootstrap - great UI boilerplate for modern web apps
  • node.js - evented I/O for the backend
  • Express - fast node.js network app framework @tjholowaychuk
  • Backbone.js - Loosly defined client-side MVC structuring library
  • jQuery - duh
  • Require.js - JavaScript file/module loader and optimization tool
  • Grunt.js - JavaScript task runner

System Requirements

Fuel Throttle has the following dependencies on your local system in order to operate properly:


  • npm install -g grunt grunt-cli grunt-init
  • mkdir ~/.grunt-init
  • git clone ~/.grunt-init/et-hub-app
  • Test that the template is available: grunt-init --help (look in the templates section you should see et-hub-app)
  • mkdir <path/to/your/apps/><yourNewAppName> (directory name will be the name of the new app by default, but can be changed)
  • cd <path/to/your/apps/yourNewAppName>
  • git init // initialize git in the directory
  • grunt-init et-hub-app
  • Answer questions, and start coding your app! (or follow directions for running your app in:

**Optional Quick Start Instructions** - `npm install` --> Install all dependencies - `grunt build` --> Package the code for PaaS deployment (or running locally in optimized mode) - `node ` -- Start your app

Running Locally

  • Run the app in non-optimized (non-minified/uglified) mode

    $ node app

  • To run the app locally in optimized mode, use an editor and open: /config/default.js file

    change "endpoints.uiBaseDir" value to "optimized"
    write, close /config.default.js
    $ node app

##Running on Stackato Micro Cloud

  • Make sure you've installed the Stackato Micro Cloud and the Stackato client
  • Start the Stackato Micro Cloud VM
  • Make sure you're targeting the correct Stackato environment (our Micro Cloud URL)
  • stackato login
  • stackato push (from within the app's directory)
  • Answer prompts from Stackato where applicable
  • Visit your app's new URL in a browser

##Testing Tests are ran automatically when using grunt-build, grunt-package commands. To test ONLY, use grunt test at the prompt.

While grunt can run the included unit tests via PhantomJS, this isn't a substitute for the real thing. Please be sure to test the tests/*.html unit test file(s) in real browsers as well.
[More about Installing grunt and PhantomJS] installGruntPhantom

Project Roadmap

Fuel Throttle goals will be outlined in the project's milestones on Github.

Known Issues

There are several known issues as this is an organic project, please check the issue list for a complete current state of the project.

Contributing to Fuel Throttle

Contributions are welcomed, to contribute to Fuel Throttle:

  1. Before writing code, we suggest you search for issues or create a new one to confirm where your contribution fits into our roadmap.
  2. Fork the Fuel Throttle repo GitHub help
  3. Make your changes, being sure to add unit tests for new or changed functionality
  4. Run grunt package to lint, test, and package up the library
  5. Update your fork with the latest code from Fuel Throttle, merging as necessary
  6. Commit your changes (using git commit --amend to the original as you progress)
  7. Push to your GitHub repo, using --force if you have rebased
  8. Submit a pull request GitHub help



Free Software, Currently only recommended for internal ExactTarget usage!

Author(s): _ Benjamin Dean

Reference and Contributor(s):