Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Eskimo helps you to rapidly build Node powered API's, online stores, and apps in general (known as "igloos").
JavaScript CSS HTML Shell

Merge pull request #110 from santiagobasulto/fix-109-config-for-testing

Fixes #109: Added info on to include config when running eskim...
latest commit 255da93726
@niftylettuce authored
Failed to load latest commit information.
app disable robots/googlebot indexing for non-prod envs
assets Fixed font-awesome building
bin remove a typo
boot move liveReload to local.js config
etc/init move liveReload to local.js config
examples Update launching-soon-page/ w/ snowflake
routes Added API endpoint for email signup
templates Added link to the wiki
test Adds nodemon to `gulp watch`, & API tests
.bowerrc Released gulp build for production
.gitignore update .gitignore
.jshintrc Added Google, Facebook, and Email API endpoints for authentication, r…
.travis.yml added user controller, user tests, fixed local config, added email te…
LICENSE fresh commit Fixes #109: Added info on to include config when running es…
Vagrantfile added vagrantfile
app.js Fixed phase initialization of static server and error handlers added vagrantfile
bower.json Upgraded deps per gemnasium
cluster.js Improving code readability.
eskimo.png fresh commit
eskimo.svg fresh commit
gitignore added vagrantfile
gulpfile.js add gulp-autoprefixer
package.json update package.json for config
routes.js Optimized route loading for API endpoints, Fixed static server orderi…


NPM version Build Status NPM downloads Test Coverage Static Analysis MIT License Gitter


Eskimo helps you to rapidly build Node powered API's, online stores, and apps in general (known as "igloos"). Requires Node >= 0.10.x, Redis for sessions, and your choice of either Knex/Bookshelf (SQL) or Mongoose (MongoDB) for data.





npm install -g eskimo


The wiki is the main source for additional documentation.


TODO: Basic screencast here


Bundled with the CLI are simple commands and options.

eskimo --help
Usage: eskimo [options] [command]


  create <dirname>       create a new igloo
  model <name>           create a new model
  view <name>            create a new view
  controller <name>      create a new controller
  mvc <name>             create a new model, view, and controller


  -h, --help                output usage information
  -V, --version             output the version number
  -N, --no-update-notifier  disable update notifier
  -T, --no-tracking         disable anonymous tracking

Once you've created an igloo, see the generated file.

Usage samples:

# To create a new igloo in `./awesome`:
eskimo create awesome

# To create a new model, views, and controller (with routes and tests) for "tags", in `./app/views/tags/*.jade`, `./app/models/tag.js`, `./app/controllers/tags.js`, `./app/routes/tags.js`, and `./test/99-tags.test.js`:
eskimo mvc tag
# Note: You could write "tags" as well (no quotes necessary if there are no spaces)

# To create a new controller (with routes and tests) in `./app/controllers/user-settings.js`, `./app/routes/user-settings.js`, and `./test/99-user-settings.test.js`
eskimo controller 'user settings'
# Note: You could write "user-settings" as well (no quotes necessary if there are no spaces)

Please read Igloo's documentation for more information. or your created igloo's


Free Stickers

Want a free Eskimo snow shoes sticker? Just submit this form.


To run tests you'll need to have configuration set up. Config lives under /boot/config.js (as stated before). To quickly and dirty set your configuration you can run something like:

var _ = require('underscore');
var _str = require('underscore.string');
var path = require('path');
var fs = require('fs');
var templates = path.join(__dirname, 'templates');
var Chance = require('chance');

var dirname = './';

var configPath = path.resolve(path.join(dirname, 'boot', 'config.js'));

fs.readFile(path.join(templates, 'boot', 'config.js'), 'utf8', function(err, data) {

  if (err) {

  data = _.template(data)({
    name: path.basename(dirname),
    chance: new Chance()

  fs.writeFile(configPath, data);


Running that in the root of the project will generate a base config.js which you can then tune.

npm install -d
npm test


Assets refer to static files (scripts, stylesheets and other assets) placed in assets/public. To build a production version of your app:

gulp build

Note: This will minify all assets and create a /dist folder optimized and ready for deployment.

List of tasks executed during gulp build:

  • Automatic LESS processing
  • Automatic install of Bower packages
  • Automatic images minification
  • Automatic usemin implementation (concat, rev, ...)

Below is an example of a JADE file using usemin blocks:

//- #layout
//- build:js /js/app.js
block scripts
    if settings.facebook.enabled
//- endbuild

After, running gulp build the file will be optimized:

//- #layout


See nifty-conventions for code guidelines, general project requirements, and git workflow.





Something went wrong with that request. Please try again.