Developer Guide

Extensibility is one of the most important features of any software. Automad can be extended through two main types of packages: themes and extensions. Automad's template language makes it accessible for beginners to develop custom themes, while PHP can be used to create extensions of any complexity.

Starter Kit

The Starter Kit theme GitHub template repository is built to get you up and running with custom theme development right away. It comes complete with a well-organized file structure, foundational templates, ready-to-use UI components, and a modern build setup powered by esbuild.

Create your own repository

You can use this template to create your own repository directly on GitHub. Check out the repository readme file for more details on getting started.

In This Guide

In the following chapters, you'll learn how to develop custom themes, build extensions, set up your editor, and deploy your packages to a live site.

Themes
Themes are an essential part of any content management system. They define how your content is presented to your website's visitors. Automad's flexible and intuitive template language makes it easy for inexperienced developers and beginners to create themes and templates. If you're an experienced PHP developer who needs more advanced features, you can also develop templates using plain PHP.
Extensions
Extensions provide a convenient way of extending Automad's core functionality with custom PHP code, while still offering the clean syntax of the template language. Extensions are distributed as packages and can be used across all themes of a site. There are two types of extensions: generic extensions and custom filters.
Packages
All themes and extensions are distributed as packages. A package is simply a directory inside the packages directory of an Automad installation that contains a composer.json file. A single package can contain one or more themes, extensions, block templates and snippets at the same time. Automad uses Composer as dependency manager. Therefore releasing a package basically works the same as for any other Composer package.
Editor Support
Automad templates use their own syntax that is mixed with HTML and PHP. In order to make the development of themes more efficient, it is recommended to install an Automad plugin for your preferred code editor. Such plugins add syntax highlighting for the template language and, depending on the editor, snippets for autocompletion. The following editors are officially supported.
Recipes
The recipes below provide a collection of ready-to-use code snippets for common tasks. They can be used as a quick reference while developing themes and extensions.
Page Versioning Themes