Publishing Your Plugin
Learn how to publish your plugin to the Vandrite Plugin Registry
Publishing Your Plugin
Once your plugin is complete and tested, you can publish it to the official Vandrite Plugin Registry for other users to discover and install.
Overview
The vandrite-plugins repository serves as the central registry for all community plugins. To get your plugin listed, you'll need to submit a Pull Request with your plugin information.
You can now submit your plugin using our submission template.
Prerequisites
Before publishing, ensure your plugin:
- Is hosted in its own public GitHub repository
- Has a proper
manifest.jsonfile - Has at least one release with a downloadable
.zipfile - Includes a README with documentation
Step 1: Create a Release
-
Build your plugin:
npm run build -
Create a release ZIP containing:
manifest.jsonmain.js(compiled)- Any other required assets
-
Generate a SHA256 checksum:
# On Linux/Mac shasum -a 256 your-plugin.zip # On Windows (PowerShell) Get-FileHash -Algorithm SHA256 your-plugin.zip -
Create a GitHub release and upload the ZIP file
Automating Releases
You can automate the bundling process by creating a script.
-
Install
archiver:npm install --save-dev archiver -
Create a file
scripts/release.js:const fs = require("fs"); const path = require("path"); const archiver = require("archiver"); const manifest = require("../manifest.json"); const version = manifest.version; const pluginId = manifest.id; const releaseDir = path.join(__dirname, "..", "releases"); const zipName = `${pluginId}-${version}.zip`; const zipPath = path.join(releaseDir, zipName); if (!fs.existsSync(releaseDir)) { fs.mkdirSync(releaseDir, { recursive: true }); } const output = fs.createWriteStream(zipPath); const archive = archiver("zip", { zlib: { level: 9 } }); output.on("close", () => { console.log(`✅ Created ${zipName} (${archive.pointer()} bytes)`); console.log(`📦 Ready to upload to GitHub releases!`); }); archive.on("error", (err) => { throw err; }); archive.pipe(output); archive.file("manifest.json", { name: "manifest.json" }); archive.file("main.js", { name: "main.js" }); archive.file("README.md", { name: "README.md" }); archive.finalize(); -
Add a script to your
package.json:"scripts": { "release": "node scripts/release.js" } -
Run
npm run releaseto generate your zip file.
Step 2: Add to Registry
Fork the vandrite-plugins repository and add your plugin entry to manifest.json:
{
"guid": "unique-uuid-v4",
"id": "your-plugin-id",
"name": "Your Plugin Name",
"slug": "your-plugin-id",
"overview": "Short description (max 100 chars)",
"description": "Full description with features and usage",
"author": "Your Name",
"authorUrl": "https://github.com/yourusername",
"category": "Productivity",
"tags": ["tag1", "tag2"],
"imageUrl": "https://raw.githubusercontent.com/.../icon.png",
"repository": "https://github.com/yourusername/your-plugin",
"featured": false,
"verified": false,
"versions": [
{
"version": "1.0.0",
"changelog": "Initial release",
"minAppVersion": "0.1.0",
"downloadUrl": "https://github.com/.../releases/download/v1.0.0/plugin.zip",
"checksum": "sha256:abc123def456..."
}
]
}Registry Entry Fields
| Field | Required | Description |
|---|---|---|
guid | Yes | Unique UUID v4 for your plugin |
id | Yes | Plugin identifier (matches manifest.json) |
name | Yes | Display name |
slug | Yes | URL-friendly identifier |
overview | Yes | Short description (max 100 chars) |
description | Yes | Full description with features |
author | Yes | Author name |
authorUrl | No | Link to author profile |
category | Yes | Plugin category |
tags | No | Searchable tags |
imageUrl | No | Plugin icon/preview image |
repository | Yes | GitHub repository URL |
featured | No | Set by Vandrite team |
verified | No | Set after manual review |
versions | Yes | Array of version entries |
Categories
Choose the most appropriate category for your plugin:
- Productivity - Task management, time tracking, etc.
- Writing - Writing tools, templates, etc.
- Organization - File management, tagging, etc.
- Appearance - Themes, custom CSS, icons
- Integration - External services, APIs
- Developer - Developer tools, debugging
Step 3: Submit Pull Request
- Commit your changes to
manifest.json - Open a Pull Request to the main repository
- Wait for review from the Vandrite team
Verification
Plugins can be marked as verified: true after manual review from the Vandrite team. Verified plugins:
- Have been tested for quality and security
- Display a verified badge in the plugin browser
- Appear higher in search results
Include clear documentation, screenshots, and a well-organized repository to speed up the verification process.
Updating Your Plugin
When releasing updates:
- Build and release a new version
- Add a new entry to the
versionsarray in the registry - Submit a PR with the update
"versions": [
{
"version": "1.1.0",
"changelog": "Added new feature X",
"minAppVersion": "0.1.0",
"downloadUrl": "https://github.com/.../releases/download/v1.1.0/plugin.zip",
"checksum": "sha256:..."
},
{
"version": "1.0.0",
"changelog": "Initial release",
"minAppVersion": "0.1.0",
"downloadUrl": "https://github.com/.../releases/download/v1.0.0/plugin.zip",
"checksum": "sha256:..."
}
]