How to
Welcome to the Orchard Core Gallery.
This site lists modules and themes made for Orchard Core.
If you own an Orchard Core module or theme, you can submit it.
How to submit a module or theme
- Fork the OrchardCMS/OrchardCore.Extensions repository.
- Add one Markdown
.mdfile for your listing:- Modules go under
modules/{author}. - Themes go under
themes/{author}.
- Modules go under
- Use the frontmatter format below.
- Submit a Pull Request to the main repository.
The {author} folder is the GitHub account — user or organization — that publishes the module or theme. Write it exactly as it appears on GitHub.
| GitHub account | Module path | Theme path |
|---|---|---|
CrestApps | modules/CrestApps/my-module.md | themes/CrestApps/my-theme.md |
Lombiq | modules/Lombiq/my-module.md | themes/Lombiq/my-theme.md |
OrchardCoreContrib | modules/OrchardCoreContrib/my-module.md | themes/OrchardCoreContrib/my-theme.md |
If you already have listings in the repository, reuse the folder you used before instead of creating a second one for the same owner.
The folder name is independent from author.name. author.name is the display name shown on the site, so it may contain spaces and differ from the GitHub account. For example, the Lombiq folder holds listings whose author.name is Lombiq Technologies.
For example, a module listing can look like this:
---
title: CookieConsent # Title
description: A cookie consent module for Orchard Core. # Short description displayed in lists
dependencies: ["OrchardCore.ContentFields"] # Optional. Direct Orchard Core/package dependencies
projectUrl: https://github.com/agriffard/CookieConsent.OrchardCore # Optional. Project URL, such as a GitHub repository
documentationUrl: https://docs.orchardcore.net/ # Optional. Documentation site URL for the module or theme
nuGetPackageId: CookieConsent.OrchardCore # Optional. NuGet package ID
tags:
- cookies
- privacy
author:
name: Antoine Griffard # Required. Author, company, team, or GitHub username
url: https://github.com/agriffard # Optional. Company, team, or GitHub profile URL
imageUrl: https://avatars.githubusercontent.com/u/703248 # Required. Author avatar/logo URL
licenses: [MIT] # Optional. List of available licenses
compatibleWithAllVersions: true # Optional. Marks a listing as compatible with every Orchard Core version (use for core modules/themes)
versions: # Optional. Supported Orchard Core versions
- 2.0.x # Accepts an exact version (2.0.0) or a wildcard (2.0 / 2.0.x / 2.x) that covers every matching patch
- 1.8.4
pubDatetime: 2024-09-15T12:00:00Z # Required. Publication date
canonicalURL: https://example.com/cookieconsent # Optional. Canonical URL override
---
A cookie consent module using [cookieconsent](https://github.com/brainsum/cookieconsent).
Supported properties
| Property | Required | Description |
|---|---|---|
title | Yes | Display name of the module or theme. |
description | Yes | Short summary shown on listing cards and search results. |
dependencies | No | Array of direct package or Orchard Core feature dependencies. |
projectUrl | No | Project URL, such as a GitHub repository or documentation site. |
documentationUrl | No | Documentation site URL. Shown as the Documentation link on the detail page. For example, https://orchardcore.crestapps.com/ for CrestApps modules or https://docs.orchardcore.net/ for Orchard Core modules. |
nuGetPackageId | No | NuGet package ID. The gallery uses it to link to NuGet and show the install command. |
tags | No | Array of tags. Defaults to ["others"] when omitted. |
author.name | Yes | Author, company, team, or GitHub username. |
author.url | No | Company, team, or GitHub profile URL. When present, it is shown as the Company link. |
author.imageUrl | Yes | Avatar or logo URL. Do not include query-string sizing parameters. |
licenses | No | Array of license names, such as [MIT]. |
compatibleWithAllVersions | No | Set to true to mark the listing as compatible with every Orchard Core version. Useful for core modules and themes. Such listings appear on the All versions page and on every specific version page. |
versions | No | Array of supported Orchard Core version strings, such as ["2.0.0", "1.8.4"]. Each value may be exact (2.0.0) or a wildcard (2.0, 2.0.x, or 2.x) that matches every version under it when filtering. The legacy object form (- orchard: 2.0.0) is still accepted for backward compatibility. |
pubDatetime | Yes | Publication date in ISO format, such as 2024-09-15T12:00:00Z. |
canonicalURL | No | Canonical URL override for SEO. |
The Markdown body below the frontmatter is the long description shown on the detail page.
Author pages and URL paths
The gallery automatically creates author pages from author.name. You do not need to add an author path manually in the Markdown file.
Choose one author name and reuse it for all modules and themes from the same owner:
- If the module or theme belongs to a company or team, use that company or team name, such as
CrestApps,Lombiq Technologies, orEtchUK. - If it is not published by a company or team, use your GitHub username or personal author name.
Using the same author.name is important because the gallery groups all matching modules and themes under the same author page.
The author URL path is created from author.name by lowercasing it and replacing spaces with dashes. Words are never split apart, so CrestApps becomes crestapps. This applies to the generated URL only — it does not change the folder name you use in the repository, which stays the GitHub account name.
For example:
author:
name: CrestApps
generates this author page:
/authors/crestapps/
More examples:
author.name | Generated path |
|---|---|
CrestApps | /authors/crestapps/ |
The Orchard Core Team | /authors/the-orchard-core-team/ |
Lombiq Technologies | /authors/lombiq-technologies/ |
For example, every CrestApps module and theme should use:
author:
name: CrestApps
so they all appear together at /authors/crestapps/.
After adding your file, submit a Pull Request. The PR will be reviewed before it appears on the site.