There are three kinds of add-ons for your Backdrop site: Modules, Themes, and Layout templates.
Each type of add-on can fall into one of three categories:
- Core - included with the Backdrop CMS.
- Contributed - downloaded from backdropcms.org (or by using the Project Installer module)
- Custom - code that you have written yourself.
A module is software (code) that extends Backdrop functionality.
Creating custom modules requires a thorough understanding of PHP programming, and Backdrop's APIs (some HTML & CSS knowledge is also helpful). Find out more about creating modules at https://api.backdropcms.org/developing-modules.
A theme sets the design for the website.
Themes are usually responsible for the typography, color scheme, page width, etc, and most heavily influence the the look & feel of your website. Think of a theme as a skin for your Backdrop site: the theme can be changed at any time, but the rest of your site should remain intact.
Creating custom themes requires a thorough understanding of HTML, CSS, and Backdrop's theme layer (some PHP knowledge is also helpful). Find out more about creating themes at https://api.backdropcms.org/developing-themes.
Layout templates can be used in layouts, to determine how (and when) different items are arranged on different pages of your site. Layout templates provide "regions", in which blocks can be placed (read more on that in the Build with Blocks and Layouts section). For example, a single two-column layout template can be used for every single page on your site, or a special three-column layout template could be used on only the home page. If you need a different arrangement for pages than for posts, or a different menu added into the sidebar, then layout templates will help you set this up.
Creating custom layouts requires a thorough understanding of HTML, CSS, and Backdrop's theme layer (some PHP knowledge is also helpful). Find out more about creating custom layouts at https://api.backdropcms.org/developing-layouts. Since Backdrop 1.14, we have added support for creating custom layout templates via the admin user interface. The layout templates are called "flexible", and they allow you to specify any number of rows; within these rows you can add any number of regions, specifying the widths of these regions.