Developers

Quick start

From the starter zip to a review request in about half an hour. You need a computer, an Android phone with Pulsar, and a free Mozilla account for test signing.

1. Get the starter

Download pulsar-starter.zip and unzip it. It is Easy Read: bigger text and roomier lines on the sites you pick. Every Pulsar API path is in it, with comments.

starter/
manifest.json     the manifest, with the "pulsar" key
pulsar.js         Pulsar's client (load it first, don't change it)
background.js     drawer, settings page, status line, site access
content.js        changes the page; stops on sites switched off in Pulsar
options.html      options page built with the UI kit
page.html         a full page built with the UI kit
store.js          the state both pages share (storage.local)
ui/               pulsar-ui.css, pulsar-ui.js, pulsar-icons.svg
icons/icon.svg    your icon
README.md         these steps

2. Make it yours

  1. Pick an id you own: browser_specific_settings.gecko.id, like readbetter@yourname.dev. It never changes after you publish. Ids ending in @pulsarbrowser.com are kept for Pulsar.
  2. Change name, description and author.
  3. Set pulsar.tint (your tile colour, #RRGGBB) and pulsar.icon (a Pulsar icon), or remove icon to show your own.
  4. Remove permissions you don’t use. Every permission is a line people read before they install.
manifest.json
{
  "manifest_version": 3,
  "name": "Read Better",
  "version": "1.0.0",
  "browser_specific_settings": { "gecko": { "id": "readbetter@yourname.dev" } },
  "permissions": ["storage"],
  "host_permissions": ["https://*/*"],
  "background": { "scripts": ["pulsar.js", "background.js"] },
  "pulsar": { "api": 1, "tint": "#0E6670", "icon": "file" }
}

3. Try the pages on your computer

The HTML pages run in any browser with sample data, so you can work on their look first. Serve the folder (ES modules don’t load from file://):

Terminal
cd starter
python3 -m http.server 8000     # or: npx serve .
# open http://localhost:8000/options.html and /page.html

Use your browser’s device view at 360–430 px, and switch your computer to dark mode to check both themes.

The drawer and settings page are drawn by Pulsar, so they only show on the phone. The Native UI page shows how each spec item looks.

4. Test on your phone

Pulsar only installs extensions that Mozilla has signed. For testing, you sign your own copy on Mozilla’s unlisted channel. It’s free, takes about a minute, and the copy is never listed anywhere.

  1. Get API keys

    At addons.mozilla.org, open Developer Hub › Manage API Keys and make a key pair.

  2. Sign the folder

    Raise version each time you sign. The signed .xpi lands in web-ext-artifacts/.

    Terminal
    npx web-ext sign --channel=unlisted --api-key="$AMO_JWT_ISSUER" --api-secret="$AMO_JWT_SECRET"
  3. Turn on Developer mode

    In Pulsar: Settings › About, tap the version 7 times. Developer mode now shows in Settings.

  4. Load it

    Settings › Developer mode › Load an extension: paste an https link to your .xpi, scan a QR code of that link, or pick the file. Pulsar shows the usual “from outside the store” sheet; your extension gets a DEV badge.

  5. Change, sign, reload

    After a change, sign again and tap Reload next to the extension in Developer mode.

Tools while you test

ToolWhereWhat it does
Pulsar API logDeveloper modeEvery call your extension makes, newest first, with the error code when one fails.
Remote debuggingDeveloper modeInspect your background page and content scripts from desktop Firefox over USB (about:debugging).
Page consoleDeveloper modePuts page console messages in the log.
View source, user agentDeveloper mode › More toolsCheck what a site sends to Pulsar.
No signing at all?If your extension only changes pages (scripts and styles, no background), make it a Lite extension: an unsigned zip that installs straight from a file.

5. Check it works

  • Tap the extension on a web page: the drawer opens with this site’s switch, the size chips, your week and the button.
  • Flip the site switch: the page changes at once, and the drawer’s subtitle says On for the site.
  • Open Settings › Extensions › Easy Read: Pulsar draws the settings page from settings.set.
  • In Manage extensions, choose Disable on this site: the page goes back to normal (that’s site.access).
  • Open the drawer on Home: there’s no site switch (host is null).
  • Turn on dark mode: the drawer, settings and your pages all follow.

6. Package

Zip the contents of the folder, so manifest.json is at the top of the zip. Leave out test files and web-ext-artifacts/.

Terminal
cd starter
zip -r ../read-better-1.0.0.zip . -x "*.DS_Store" -x "web-ext-artifacts/*"

The store takes files up to about 3 MB. No minifier tricks: reviewers must be able to read your code (minified is fine, obfuscated is not).

7. Submit

  1. Sign in at pulsarbrowser.com/account/developer and set up your developer profile once.
  2. Choose Submit an extension and drop your .zip (or an .xpi). You don’t need to sign it.
  3. Pulsar checks the file at once and shows what it will be able to do. Fix anything marked as blocking.
  4. Agree to the store rules and send it. A person reviews it, usually in 1–2 days. Mozilla signs it and Pulsar adds its seal.
  5. You get an email when it is live, or what to change.

Read the review checklist first. It’s short.