A beautifully simple static site generator.
Last updated 7 years ago by pthrasher .
Repository · Original npm · Tarball · package.json
$ cnpm install gabby 
SYNC missed versions from official npm registry.


A beautifully simple static site generator for node.js.

  • Instant preview of file changes.
  • Use markdown or JSON object for page content.
  • Asset packaging and minification.
  • Templates with Jade, Plates, and Haml support.
  • CoffeeScript, Stylus, LESS, and SASS support.
  • HTTP server with preconfigured routes, clean URLs, and caching.
  • CLI tool and static web server.


npm install -g gabby

Once installed you can use the CLI. For available commands use the --help option.

Get started

Create project

gabby init website

That will create the following directory structure:


Start the HTTP server

gabby listen website

Then open http://localhost:3001 in your web browser.

Instant preview

Start the server in --debug mode for changes to be reflected immediately.

Page content and templates

Page content is defined by files in the content directory. The file names and directory structure will determine your URL structure. Content files may either be markdown or JSON.


JSON content files are parsed into a data object used to render the template. Some properties are reserved for use by Gabby, such as the template property, which specifies the template file to use with this data.

  "title": "My first article",
  "date": "2013-01-01 16:20",
  "author": "First Last <>",
  "template": "article.jade" // Optional. Overrides layout template.

If no template is specified, the default layout template will be used.


Markdown files must have metadata at the top of the file:

Title: My first post
Date: 2013-01-01 16:20
Author: First Last <>
Template: article.jade

This metadata is added as properties to the data object used to render the template. The rest of the file will be converted to HTML and stored in data.content. If no template is specified, the default layout template will be used.

Directory structure

generated is where all of your HTML and other static files are output.
content defines your URL structure and contains markdown articles or json content.
public is for images and other public files.
scripts is for JavaScript or CoffeeScript.
styles is for CSS, SASS, LESS, or Stylus.
templates is for HTML, Haml, Jade, EJS, or Handlebars templates.

Template variables

content page content.
author page author.
date page date.
title page title.

JavaScript API


Create a new Gabby project from given path.


path String. Project path.


Returns gabby instance.


Create project directory skeleton if it doesn't exist.

Build static files and update generated folder.


If you like using Gabby, tip me some bits @ 1MUaP1e5DcuWrup7nLwK1rBfLR7YCcjnqS

Current Tags

  • 0.4.3                                ...           latest (7 years ago)

9 Versions

  • 0.4.3                                ...           7 years ago
  • 0.4.2                                ...           7 years ago
  • 0.4.1                                ...           7 years ago
  • 0.3.0                                ...           7 years ago
  • 0.2.4                                ...           7 years ago
  • 0.2.3                                ...           7 years ago
  • 0.2.2                                ...           7 years ago
  • 0.2.1                                ...           7 years ago
  • 0.2.0                                ...           7 years ago
Maintainers (1)
Today 0
This Week 0
This Month 1
Last Day 0
Last Week 0
Last Month 2
Dependencies (18)
Dev Dependencies (0)
Dependents (2)

Copyright 2014 - 2016 © |