Skip to content
This repository has been archived by the owner on Dec 26, 2018. It is now read-only.
/ ecstatic Public archive
forked from listrophy/ecstatic

a static site generator with an emphasis on simplicity


Notifications You must be signed in to change notification settings



Folders and files

Last commit message
Last commit date

Latest commit



40 Commits

Repository files navigation


As of December 2018, Ecstatic is deprecated. Please find a suitable replacement static site generator.

Ecstatic is a static site generator focused on simplicity. It uses just enough of the right tools, leaving as much power in your hands while still providing plenty of value. Ecstatic is opinionated in favor of HAML, SASS, and CoffeeScript.

Ecstatic provides a straight-forward directory structure for your site. It also provides a mechanism to push either the master or gh-pages branch to GitHub.

Ecstatic does not provide an automatic mechanism for blogging. If you want to use Ecstatic for blogging, you will have to curate your own site structure. Not ideal, but it's not a core feature. Perhaps someone will write a plugin that provides automatic blogging functionality (hint, hint).

Ecstatic is not meant to create ridiculously optimized sites. It will instead make fairly optimized sites. Perhaps, in the future, there can be a plugin ecosystem that takes Ecstatic output and performs further optimization (e.g., pre-gzip, JS Google closure tools advanced compilation, etc.)


You will need Ruby 2.0. It should also run fine on Ruby 1.9.3. Either RVM or rbenv should work. You will also need a way to compile CoffeeScript. Simply having node.js on your machine should suffice.

Creating a static site for GitHub Pages

Starting from scratch:

$ mkdir my_site
$ cd my_site
$ echo 'ruby-2.0.0' > .ruby-version
$ echo 'my_site' > .ruby-gemset
$ cd . # load the gemset when using RVM
$ gem install bundler
$ (echo "source ''"; echo "gem 'ecstatic'") > Gemfile
$ bundle
$ ecstatic init

If your site is a Github Pages page rather than a user or organization home page, then your last step is different:

$ ecstatic init --ghpages

Getting started

After installation and initialization, you should have the following directory tree:

├── Gemfile
├── Gemfile.lock
├── config.rb
├── gh-pages
└── site
    ├── assets
    │   ├── scripts
    │   └── stylesheets
    └── pages

When writing your website, you will focus almost exclusively on the site directory. While you're working on your site, you'll want to run ecstatic server and view its contents at localhost:4567.

Ecstatic will automatically compile HAML files in site/pages/ and SCSS files in site/assets/stylesheets. CoffeeScript and JavaScript files live in site/assets/scripts -- CoffeeScript will get compiled, while JavaScript files are merely copied into place.

Deploying to GitHub Pages

Assuming everything worked and you set up your git remotes right, you should be able to deploy with:

ecstatic deploy


  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push -u origin my-new-feature)
  5. Create new Pull Request


a static site generator with an emphasis on simplicity







No packages published


  • Ruby 100.0%