This repository contains the source catalog for Orchard Core modules and themes published to the Orchard Core extensions gallery. Entries in this repository are automatically published to https://gallery.orchardcore.net.
Catalog entries are grouped by owner so contributors can maintain the modules and themes they manage:
modules/
CrestApps/
CrestApps.OrchardCore.AI.md
Etch/
Etch.OrchardCore.Fields.md
Lombiq/
Lombiq.Walkthroughs.md
OrchardCore/
OrchardCore.ContentFields.md
OrchardCoreContrib/
OrchardCoreContrib.Contents.md
themes/
Etch/
Etch.OrchardCore.AdminTheme.md
OrchardCore/
TheAdmin.md
Use the existing owner folder when one already exists. Create a new owner folder only when submitting a package from a new maintainer or organization. File names must match the slug value exactly.
- Add one Markdown file under
modules/<Owner>/orthemes/<Owner>/. - Include YAML frontmatter with the required metadata.
- Include
documentationUrlwhen documentation exists for the package. Use the package documentation site, not necessarily a page for a specific feature. - For modules, include a
featureslist. Add one feature for single-feature modules and one entry per feature for modules that expose multiple Orchard Core features. - Add a short Markdown body describing what the package does and link to documentation, samples, or source when useful.
- Open a pull request. The validation workflow checks folder grouping, duplicate slugs/package IDs, required metadata, URLs, line endings, version compatibility fields, and module feature definitions.
---
title: Example Module
slug: Example.OrchardCore.Module
description:
Adds example functionality to Orchard Core.
projectUrl: https://github.com/example/Example.OrchardCore.Module
documentationUrl: https://example.com/docs
nuGetPackageId: Example.OrchardCore.Module
tags: ["example"]
author:
name: Example
url: https://github.com/example
imageUrl: https://avatars.githubusercontent.com/u/000000
licenses: [MIT]
dependencies: ["OrchardCore.Contents"]
versions:
- 2.x
- 1.8.4
pubDatetime: 2026-08-12T12:00:00Z
features:
- id: Example.OrchardCore.Module
name: Example Module
description:
Adds example functionality to Orchard Core.
category: Content Management
dependencies:
- OrchardCore.Contents
---
Describe the package here.Themes use the same metadata but do not need a features list.
The required top-level fields are title, slug, description, projectUrl, nuGetPackageId, and pubDatetime. documentationUrl is optional, but when present it must be an absolute http or https URL.
For first-party Orchard Core modules, set documentationUrl to https://docs.orchardcore.net. For CrestApps modules, set it to https://orchardcore.crestapps.com. OrchardCoreContrib package titles should use the Name (Contrib) format, such as Content Localization (Contrib).
Declare which Orchard Core versions a package supports with one of the following optional fields. Use compatibleWithAllVersions or versions, but never both.
-
Set
compatibleWithAllVersions: truewhen the package supports every Orchard Core version. Listings that use it appear on the All versions page and on every specific version page. This is used for modules and themes maintained by The Orchard Core Team. -
Otherwise, list the supported Orchard Core versions under
versionsas an array of strings. Each value may be an exact version (2.0.0) or a wildcard (2.0,2.0.x, or2.x) that matches every version under it:versions: - 2.x - 3.x
versions: - 2.0.0 - 1.8.4
Each versions entry must be a plain string. The legacy object form (- orchard: 2.0.0) is no longer accepted in this catalog. The validator rejects object entries, invalid version strings, an empty versions list, and compatibleWithAllVersions: true combined with versions.
Feature IDs must match the Orchard Core manifest IDs, not just the assembly or package name. If one package provides several features, document each feature separately with enough detail for gallery search results to explain what the feature does and what problem it solves. Feature descriptions should be full paragraphs; the validator requires at least 180 characters.
For Orchard Core built-in modules and themes, use the official Orchard Core documentation at https://docs.orchardcore.net/ and the module manifests as the source of truth. CrestApps Orchard Core documentation is available at https://orchardcore.crestapps.com/ for CrestApps modules and related extensions.
Run the same check locally before opening a pull request:
python3 scripts/validate-catalog.pyThe PR workflow runs this validator automatically to prevent malformed frontmatter or invalid catalog structure from causing Astro build issues.