node package manager



no compromises static website builder

Build Static Pages

Elmo builds pages based on templates. Elmo uses several hooks in your templates to build each page.

The flow looks like this:

  • elmo setup

    This command sets up the directory structure for elmo

  • elmo create page

    You'll answer a series of prompts based on what's needed in the template. That will generate an initial state file that will be used to generate the assets.

  • elmo build

    This will build your distribution to a particular directory

  • elmo deploy

    Build all your pages in parallel and deploy to S3

What does the build do?

  1. Reads all the pages and turns them into a vinyl tree (async) (supports md, yaml & json)

  1. Reads the layouts & templates from each of the pages
  2. Gathers the dependencies and build the template state for each page
  3. Render the CSS (*.css => hook => *.css)
  4. Render the JS (*.js => hook => *.js)
  5. Render the HTML using the layout, the template, css object and state
  6. Write to the appropriate paths
  7. Deploy to S3 or Surge

Open Questions

  1. How do you do fast reloads on server with CLI hooks? (separate commands for each process?)


The development of this project is dependent on your generousity. If you or your company use Elmo everyday, please consider supporting it to keep the project alive and healthy.