Files
plebeian-signer/docs/store/PUBLISHING_GUIDE.md
woikos 1f8d478cd7 Update repository URLs to GitHub
Change all references from git.mleku.dev/mleku/plebeian-signer to
github.com/PlebeianApp/plebeian-signer for the public release.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 13:45:23 +01:00

8.2 KiB

Extension Store Publishing Guide

This guide walks you through publishing Plebeian Signer to the Chrome Web Store and Firefox Add-ons.


Table of Contents

  1. Assets You Need to Create
  2. Chrome Web Store
  3. Firefox Add-ons
  4. Ongoing Maintenance

Assets You Need to Create

Before submitting to either store, prepare these assets:

Screenshots (Required for both stores)

Create 3-5 screenshots showing the extension in action:

  1. Main popup view - Show the identity card with profile info
  2. Permission prompt - Show a signing request popup
  3. Identity management - Show the identity list/switching
  4. Permissions page - Show the permissions management
  5. Settings page - Show vault settings and options

Specifications:

  • Chrome: 1280x800 or 640x400 pixels (PNG or JPEG)
  • Firefox: 1280x800 recommended (PNG or JPEG)

Tips:

  • Use a clean browser profile
  • Show realistic data (not "test" or placeholder text)
  • Capture the full popup or relevant UI area
  • Consider adding captions/annotations

Promotional Images (Chrome only)

Chrome Web Store uses promotional tiles:

Size Name Required
440x280 Small promo tile Optional but recommended
920x680 Large promo tile Optional
1400x560 Marquee promo tile Optional

Design tips:

  • Include the extension icon/logo
  • Add a tagline like "Secure Nostr Identity Manager"
  • Use brand colors
  • Keep text minimal and readable

Icon (Already exists)

You already have icons in the extension:

  • icon-48.png - 48x48
  • icon-128.png - 128x128

Chrome also wants a 128x128 icon for the store listing (can use the same one).

Privacy Policy URL

You need to host the privacy policy at a public URL. Options:

  1. GitHub/Gitea Pages - Host PRIVACY_POLICY.md as a webpage
  2. Simple webpage - Create a basic HTML page
  3. Gist - Create a public GitHub gist

Example URL format: https://github.com/PlebeianApp/plebeian-signer/blob/main/docs/store/PRIVACY_POLICY.md


Chrome Web Store

Step 1: Create Developer Account

  1. Go to https://chrome.google.com/webstore/devconsole
  2. Sign in with a Google account
  3. Pay the one-time $5 USD registration fee
  4. Accept the developer agreement

Step 2: Create New Item

  1. Click "New Item" button
  2. Upload releases/plebeian-signer-chrome-v1.0.5.zip
  3. Wait for the upload to process

Step 3: Fill Store Listing

Product Details:

  • Name: Plebeian Signer
  • Summary: Copy from STORE_DESCRIPTION.md (short description, 132 chars max)
  • Description: Copy from STORE_DESCRIPTION.md (full description)
  • Category: Productivity
  • Language: English

Graphic Assets:

  • Upload your screenshots (at least 1 required, up to 5)
  • Upload promotional tiles if you have them

Additional Fields:

  • Official URL: https://github.com/PlebeianApp/plebeian-signer
  • Support URL: https://github.com/PlebeianApp/plebeian-signer/issues

Step 4: Privacy Tab

  • Single Purpose: "Manage Nostr identities and sign cryptographic events for web applications"
  • Permission Justifications:
    • storage: "Store encrypted vault containing user's Nostr identities and extension settings"
    • activeTab: "Inject NIP-07 interface into the active tab when user visits Nostr applications"
    • scripting: "Enable communication between web pages and the extension for signing requests"
  • Data Usage: Check "I do not sell or transfer user data to third parties"
  • Privacy Policy URL: Your hosted privacy policy URL

Step 5: Distribution

  • Visibility: Public
  • Distribution: All regions (or select specific ones)

Step 6: Submit for Review

  1. Review all sections show green checkmarks
  2. Click "Submit for Review"
  3. Wait 1-3 business days (can take longer for first submission)

Chrome Review Notes

Google may ask about:

  • Why you need each permission
  • How you handle user data
  • Your identity/organization

Be prepared to respond to reviewer questions via the dashboard.


Firefox Add-ons

Step 1: Create Developer Account

  1. Go to https://addons.mozilla.org/developers/
  2. Sign in with a Firefox account (create one if needed)
  3. No fee required

Step 2: Submit New Add-on

  1. Click "Submit a New Add-on"
  2. Select "On this site" for hosting
  3. Upload releases/plebeian-signer-firefox-v1.0.5.zip
  4. Wait for automated validation

Step 3: Source Code Submission

Firefox may request source code because the extension uses bundled/minified JavaScript.

If prompted:

  1. Create a source code zip (exclude node_modules):
    cd /home/mleku/src/git.mleku.dev/mleku/plebeian-signer
    zip -r plebeian-signer-source.zip . -x "node_modules/*" -x "dist/*" -x ".git/*"
    
  2. Upload this zip when asked
  3. Include build instructions (point to CLAUDE.md or add a note):
    Build Instructions:
    1. npm ci
    2. npm run build:firefox
    3. Output is in dist/firefox/
    

Step 4: Fill Listing Details

Basic Information:

  • Name: Plebeian Signer
  • Add-on URL: plebeian-signer (creates addons.mozilla.org/addon/plebeian-signer)
  • Summary: Copy short description from STORE_DESCRIPTION.md
  • Description: Copy full description (supports some HTML/Markdown)
  • Categories: Privacy & Security

Additional Details:

  • Homepage: https://github.com/PlebeianApp/plebeian-signer
  • Support URL: https://github.com/PlebeianApp/plebeian-signer/issues
  • License: Select appropriate license
  • Privacy Policy: Paste URL to hosted privacy policy

Media:

  • Icon: Already in the extension manifest
  • Screenshots: Upload your screenshots

Step 5: Submit for Review

  1. Ensure all required fields are complete
  2. Click "Submit Version"
  3. Wait for review (usually hours to a few days)

Firefox Review Notes

Firefox reviewers are generally faster but thorough. They may:

  • Ask for source code (see Step 3)
  • Question specific code patterns
  • Request changes for policy compliance

Ongoing Maintenance

Updating the Extension

For new releases:

  1. Build new version: /release patch (or minor/major)
  2. Upload the new zip to each store
  3. Add release notes describing changes
  4. Submit for review

Chrome:

  • Go to Developer Dashboard → Your extension → Package → Upload new package

Firefox:

  • Go to Developer Hub → Your extension → Upload a New Version

Responding to Reviews

Both stores may contact you with:

  • Policy violation notices
  • User reports
  • Review questions

Monitor your developer email and respond promptly.

Version Numbering

Both stores extract the version from manifest.json. Your current setup with v1.0.5 in package.json feeds into the manifests correctly.


Checklist

Before First Submission

  • Create 3-5 screenshots
  • Create promotional images (Chrome, optional but recommended)
  • Host privacy policy at a public URL
  • Test the extension zip by loading it unpacked
  • Prepare source code zip for Firefox

Chrome Web Store

  • Register developer account ($5)
  • Upload extension zip
  • Fill all required listing fields
  • Add screenshots
  • Add privacy policy URL
  • Justify all permissions
  • Submit for review

Firefox Add-ons

  • Register developer account (free)
  • Upload extension zip
  • Upload source code if requested
  • Fill all required listing fields
  • Add screenshots
  • Add privacy policy URL
  • Submit for review


Estimated Timeline

Task Time
Create screenshots 30 min - 1 hour
Create promotional images 1-2 hours (optional)
Host privacy policy 15 min
Chrome submission 30 min
Chrome review 1-3 business days
Firefox submission 30 min
Firefox review Hours to 2 days

Total: You can have both submissions done in an afternoon, with approvals coming within a week.