This user guide, like Wyam itself, is under very active development. Some parts of Wyam2 aren't documented as completely as they need to be, but we glady accept your contributions.

We need your help to improve the documentation for Wyam2, so if there is something that you would like to add then you can edit the content directly on GitHub.


The primary concepts in Wyam are documents, metadata, modules, pipelines, recipes, and themes. While not strictly neccesary if you're just planning on using a recipe, understanding these concepts will go a long way towards making sense of how your generation works and how best to customize it to your needs.

Documents A document is a combination of content and metadata and is what conveys information through the framework.
Metadata Metadata is the primary means of passing information between modules and pipelines.
Modules A module is a small single-purpose component that acts on documents.
Shortcodes Shortcodes are small but powerful macros that can generate content in your documents.
Pipelines A pipeline is a series of modules executed in sequence.
Recipes A recipe is a pre-configured series of modules and pipelines.
Themes Each theme contains a set of content such as CSS files, layouts, etc. that apply to a specific recipe.
I/O Explains Wyam's powerful I/O abstraction.


How to obtain, configure, and execute Wyam.

Obtaining How to download and install Wyam2.
Command Line Describes how to run Wyam from the command line and the available options.
Configuration Describes the format of the configuration file.
Settings How to set global settings and a list of all general settings metadata.
Embedding Wyam can be embedded into your own application.
Executing In A Unit Test How to call Wyam from within a unit test.
Examples Where to find usage examples.


One of the many benefits of static generation is that the end result is a collection of final files. By default, Wyam places the result of your build in the output folder. You can manually deploy your site by simply uploading these files to your host. There are also other ways to build and deploy your content described below.

AppVeyor for Continuous Integration How to use GitHub Pages and AppVeyor to enable a free continuous integration environment for your site.
Azure How to deploy your static site to Azure.
Netlify How to deploy your static site to Netlify.
Serving From A Subdirectory How to support hosts that place your site under a subdirectory.
SSL and HTTPS Making your Wyam site work over HTTPS.
Using Cake Instrument your build and deployment steps with Cake.


Wyam is extremely extensible and these topics discuss the ways in which you can extend it.

Creating A Theme Explains how to create and distribute your own theme.
Customizing Recipe Pipelines Tips for customizing recipes by modifying their pipelines and modules.
Customizing Themes Tips for customizing recipes by modifying their themes.
Writing a Module How to write a module for Wyam.


Discussions of more advanced topics and how to bend Wyam to your will.

Custom Document Types Use custom document types to add new document behavior.
Document Content Streams How content for documents is stored and how to customize that behavior.
Migrating to 0.12.x How to migrate existing sites to the new IO abstraction in 0.12.x.
Setting The Culture
What To Exclude From Source Control Files and folders that Wyam generates and should not be included in source control.


Additional resource about Wyam and about static generation in general.

Some Background A little background on the name and intent of this project.
Built With Wyam These people know how to party!
Blog Posts Blog posts about Wyam from around the web.
Tools A list of JavaScript components, hosted services, and other resources that can help improve your static sites.
Hosts A list of hosts specializing in static sites.