Submit a widget
Once your widget is ready, submit it to the Gallery.
Requirements
Before submitting, make sure your widget meets these requirements:
- Public GitHub repo ending with
.widget(branch must bemain) - config.json with name, description, email
- index.jsx (your widget code)
- screenshot.png (preview image for the gallery)
- README.md (docs for users)
Security Notice ⚠️
Do not include sensitive keys, tokens, passwords, or other private credentials in your widget code. Widget code may be visible to other users, stored, or executed in ways outside your control.
By submitting a widget, you acknowledge that any sensitive data included in the code is your responsibility. We are not responsible for any exposure, misuse, or loss resulting from sensitive information included in submitted widget code.
Also your production widget branch should be always
main.How to submit
- Go to the Submit page
- Paste your GitHub repo URL
- The app validates your widget automatically
- Once approved, your widget appears in the gallery
Repo URL format
Your repo URL must follow one of these patterns:
Standard repo:
https://github.com/owner/MyWidget.widget
Monorepo (widget as subdirectory):
https://github.com/owner/repo/tree/main/MyWidget.widget
Validation checklist
The backend validates your widget against these checks:
| Check | Requirement |
|---|---|
| repo | Repository exists, is public, and either ends with .widget or contains a .widget subdirectory |
| manifest | config.json exists with valid name, description, email (email must contain @) |
| index | index.jsx file exists in the widget directory |
| screenshot | screenshot.png file exists in the widget directory |
| readme | README.md file exists in the widget directory |
| repo-new | Widget not already published and no pending request for this repo |
The validation pins the latest commit at submit time and fetches files from
raw.githubusercontent.com at that pinned commit SHA. The same SHA is re-validated at publish time and used for installs — pushes after submit do not change the reviewed code. Make sure your repo is public and the files are committed.