Directory structure

Grow sites are encapsulated into directories that follow a specific structure. These directories are called "pods". Grow uses the configuration files and the structure of files in each pod to declaratively build your site.

Pods contain source files, but for deployment, Grow builds only what's needed to serve your site. Sources and other "internal" files are never built to the output directory.

Example structure

  • Items marked with * are inbuilt, and their names cannot change.
  • Other items aren't required by Grow, but are often found by convention.
├──  /build                        # Default location for builds.
├──  /content*                     # All your content.
|    ├──  /pages                   # A content collection.
|         ├──  /_blueprint.yaml*   # A blueprint.
|         ├──  /about.md           # A content document.
|         ├──  /contact.md
|         └──  /index.md
|    └──  /posts
|         ├──  /_blueprint.yaml*
|         ├──  /my-first-post.md
|         └──  /hello-grow.md
├──  /dist                         # Compiled files like minified js and css.
|    ├──  /css                     # Used for static serving of minified files.
|         └──  /composite
|              ├──  global.min.css
|              └──  main.min.css
|    └──  /js
|         └──  /composite
|              ├──  global.min.js
|              └──  main.min.js
├──  /source                       # Frontend source files.
|    ├──  /js
|         └──  /composite
|              ├──  /global.js
|              └──  /main.js
|    ├──  /sass
|         └──  /composite
|              ├──  /global.sass
|              └──  /main.sass
|    └──  /static                  # Static files.
|         └──  /images
|              └──  /favicon.png
├──  /translations*                # All your translation data.
|    ├──  /messages.pot            # Message catalog template.
|    └──  /de
|         └──  /messages.po        # A message catalog.
|    └──  /fr
|         └──  /messages.po
|    └──  /it
|         └──  /messages.po
├──  /views*                       # Jinja templates.
├──  /partials*                    # Partial templates.
|    └──  /hero
|         ├──  /hero.html
|         ├──  /hero.js
|         └──  /hero.sass
|    └──  /base.html               # Base template for rendering partials.
|    └──  /pages.html
|    └──  /posts.html
├──  /package.json                 # JS dependencies.
└──  /podspec.yaml*                # Pod specification.