The official community registry for RJ CMS themes and plugins.
This repository is a directory, not a hosting service. Every package lives in its own GitHub repository, and RJ CMS reads this registry to discover what is available.
- Overview
- Repository Structure
- How to Submit
- Registry Format
- How Updates Work
- Manifest Requirements
- Release Asset Requirements
- Verification Levels
- Removal Policy
- License
- Links
RJ CMS uses this registry to power the Add New Theme and Add New Plugin admin pages. When a user clicks Browse Community, RJ CMS does the following:
- Fetches
registry.jsonfrom this repository. - Reads each entry's GitHub repository.
- Queries
releases/latestthrough the GitHub API. - Displays the name, version, description, author and an install button.
No packages are stored here. The registry only contains a list of approved repositories.
.
├── registry.json Master list of themes and plugins
├── schema/ JSON validation schemas
├── CONTRIBUTING.md How to submit your theme or plugin
└── .github/workflows/ Automatic validation on pull requests
The full instructions are in CONTRIBUTING.md. The short version:
- Fork this repository.
- Add your entry to
registry.json. - Open a pull request.
- Wait for a maintainer review.
Your package must:
- Live in a public GitHub repository.
- Include a valid
theme.jsonorplugin.jsonat the repository root. - Publish at least one GitHub Release with a ZIP asset.
- Use an open-source license such as MIT, GPL or Apache.
{
"version": "1.0",
"updated_at": "2026-10-17T00:00:00Z",
"themes": [
{
"repo": "owner/repo",
"verified": true,
"featured": false,
"category": "general",
"tags": ["minimal", "blog"]
}
],
"plugins": [
{
"repo": "owner/repo",
"verified": true,
"featured": false,
"category": "seo",
"tags": ["seo", "analytics"]
}
]
}| Field | Type | Required | Description |
|---|---|---|---|
repo |
string | Yes | GitHub repository in owner/repo format |
verified |
boolean | Yes | Set by maintainers after review |
featured |
boolean | No | Shown on the browse page (maintainers only) |
category |
string | No | Primary category, see the list below |
tags |
array | No | Search keywords |
Themes: general, blog, magazine, portfolio, shop, business, landing, photography
Plugins: seo, analytics, forms, ecommerce, social, security, performance, marketing, utilities
Once your package is listed, you do not need to touch this repository when you ship a new version.
- Publish a new release on GitHub.
- RJ CMS queries
releases/latestautomatically. - Users see Update available in their admin panel.
The registry only changes when:
- A package is added or removed.
- A package's
verifiedorfeaturedstatus changes. - Its category or tags are updated.
{
"name": "Theme Name",
"slug": "theme-slug",
"version": "1.0.0",
"author": "Your Name",
"description": "Short description",
"requires": {
"rj_cms": ">=1.0.0",
"php": ">=8.2"
}
}{
"name": "Plugin Name",
"slug": "plugin-slug",
"version": "1.0.0",
"author": "Your Name",
"description": "Short description",
"requires": {
"rj_cms": ">=1.0.0",
"php": ">=8.2"
}
}Each GitHub Release must include a ZIP file containing your theme or plugin.
- Theme ZIP: must contain
theme.jsonat the root, or one level deep. - Plugin ZIP: must contain
plugin.jsonat the root, or one level deep. - Maximum size: 50 MB.
RJ CMS downloads the first ZIP asset it finds in the release.
| Level | Meaning |
|---|---|
| Verified | Manifest is valid, repository is public, at least one release exists, and the code was reviewed. |
| Community | Manifest is valid and repository is public, but the code has not been reviewed yet. |
| Unverified | Listed but not reviewed. This is a temporary status. |
Only maintainers can set verified: true.
A package may be removed from the registry if:
- Its repository is deleted or made private.
- It violates the license requirement.
- It contains malicious code.
- The author requests removal.
This registry is licensed under the MIT License. Individual packages are covered by their own licenses.