Skip to main content

Prerequisites

Before publishing, make sure your plugin:
  • ✅ Exports valid meta (with id, name, version) and setup
  • ✅ Exports teardown() for cleanup (removing CSS, clearing intervals, etc.)
  • ✅ Uses plugin-scoped storage (getForPlugin/setForPlugin)
  • ✅ Has no external dependencies (vanilla JS only)
  • ✅ Works in modern browsers
  • ✅ Handles the plugin:unload event or exports teardown()

Step 1: Host Your Plugin

Upload plugin.js somewhere publicly accessible. GitHub raw URLs are recommended:
The URL must be directly accessible — not behind a login or download page. The core fetches the file directly via fetch().

Step 2: Fork the Community Repo

Fork Empty_Plugins on GitHub.

Step 3: Add Your Entry

Edit plugins.json and add:

Step 4: Open a Pull Request

  1. Commit your changes
  2. Push to your fork
  3. Open a PR against main
  4. Use the title: add: your-plugin-name

Plugin Checklist

  • Self-contained — use the event bus, not imports
  • Clean up — export teardown() that removes CSS, clears intervals, removes event listeners
  • Scoped storage — use getForPlugin/setForPlugin
  • Mobile-friendly — test on smaller screens
  • Valid meta — includes id, name, version
  • No eval() — security risk
  • No undisclosed API calls — respect privacy
  • CORS-compatible — your hosting must allow cross-origin fetches

Example Template

After Approval

Your plugin will appear in the Community Store tab of the Plugin Manager for all Blank Board users.