A module is a component that performs a specific action, usually by creating, processing, or manipulating documents.

A module is a small single-purpose component that takes documents as input, does something based on those documents (possibly transforming them), and outputs documents as a result of whatever operation was performed. Modules are typically chained in a sequence called a pipeline.


Some modules process documents in parallel while others process them sequentially. Modules that process documents in parallel can often be forced to process documents sequentially by using the WithParallelExecution(false) extension method. This might be useful when the documents being processed or a configuration setting aren't thread-safe.

Child Pages

Module Patterns

Different modules treat inputs and outputs in different ways and this is a non-exhaustive list of some processing patterns that might help you understand the way modules work.

Writing Modules

Modules are the basic building blocks of Statiq functionality. If the out-of-the-box modules don’t satisfy your use case, it’s easy to customize generation by creating new modules.