Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time



LEO is a library for creating Content Based Site Generators with a common GraphQL data layer. Typically, one would use a LEO generator to build static sites from Single Page Applications. This is a different approach to generators such as Jekyll and Hugo which use template languages. See the Comparison to Other Generators.

You may want to choose a pre-built generator such as React/Apollo from the Quick Start section.

Why Leo?

LEO can turn a Universal application into a Progressive Web App. This means you can reuse your Single Page Application skills to build advanced static sites. LEO's data processing is coordinated by webpack and exposed via GraphQL, which offers rich introspection capability. An example of this is using Apollo Dev Tools or GraphiQL to explore the data used to build a static site, then copying queries out into application code when satisfied. Finally, LEO doesn't restrict your ability to use the latest and greatest UI tooling. From Babel to TypeScript, React to Inferno, PostCSS to Glamor, and Apollo to Relay, LEO lets you use the tooling that makes you most productive through reusable plugins.

Optional Modern Client-Side JS

Leo builds a client-side bundle using Relay which you can optionally include when rendering .html files. Once the inital JS is downloaded, every page can be rendered by fetching a JSON file from the same static server. The JSON files contain the minimal set of content required to render each URL. It is also cached, which means each request happens only once.


Quick Start

Leo has a number of starter projects designed to get you started quickly.

git clone
cd leo-blog-starter && npm i

List of Starters

  • leo-blog-starter
  • leo-documentation-starter
  • leo-filepath-starter
    • Shows how Leo can be used to emulate the url-from-location-on-disk feature of other generators


LEO renders to a static folder of files and can be deployed to GitHub Pages, Netlify, or any other hosting service.


Highly Extensible, Declarative Static Site Generator







No packages published

Contributors 4