Developers

Build apps for Pulsar

An app is your website plus a pack: one small JSON file that gives your site its own icon, window, login and settings in Pulsar. People install it from your site or from Pulsar’s Apps directory, with no warnings.

What an app is

The pack says which domains are the app, how it looks (icon, colours, its own window or a tab) and what Pulsar adds inside it: CSS and JS, a settings page, share targets and request headers. Your site stays your site; the pack only changes how Pulsar shows it.

  • It opens in App mode: its own window with a slim top bar in your colour, and its own icon on the home screen.
  • It has its own cookies, storage and login, apart from the browser and every other app.
  • Its settings are drawn by Pulsar, like an extension’s, in light and dark.
  • People can share a link or text from any Android app straight into it.
  • It updates the moment you publish a new pack. No app store release, nothing for people to download.

Why it installs with no warning

Pulsar decides what an app can do, not the pack. That is why the install sheet has no permission list: there is nothing to warn about.

  • Your CSS and JS run only on the app’s own domains, and only inside the app. A normal tab on the same site never sees them.
  • The app can’t see other sites or tabs. Links to other sites open in a normal Pulsar tab, without the app’s cookies.
  • It never draws its own screens over Pulsar. Its settings are a JSON description Pulsar draws.
  • It can’t install extensions or use Pulsar’s engines without the usual questions. Safe Browsing and HTTPS-only apply as in any tab.
  • Pulsar can switch any app off for everyone at once (the kill switch), also apps installed from other websites.
What people see“Install Example Kitchen? · From example.com” with a short note that apps only open their own site, then: Works only on example.com · Own cookies and login · Updates from example.com. Cancel or Install.

Apps or extensions?

AppExtension
ChangesYour own site onlyAny site, or every site
Made ofOne JSON pack (with CSS and JS inside)A WebExtension: manifest, scripts, pages
RunsOnly inside the app’s window or tabIn every tab where it is on
InstallsFrom your site or the Apps directory, no warningsFrom the Pulsar Store or a signed file, with its permissions shown
SigningNone (website) or Pulsar’s seal (directory)Mozilla signature, plus Pulsar’s seal on the Store
UpdatesAt once, when you publish a new packDaily, after review
Own window and iconYesNo
Pulsar API, background jobs, enginesNoYes
  • Pick an app when you own the site and want it to feel like an app on the phone: its own icon, window and login, a few settings, links shared to it.
  • Pick an extension when you want to change other people’s sites, work across sites, run in the background or use the Pulsar API.

Quick start in 6 steps

  1. Download the App starter

    A complete pack for a made-up recipe site, Example Kitchen: settings, CSS and JS that follow them, request headers, share targets, a build script and an install button. Download pulsar-app-starter.zip.

  2. Make it yours

    In pack.src.json, change the id, the name and every example.com to your own site. Write your CSS in app.css and your JS in app.js.

  3. Build and check

    The build puts the CSS and JS into pack.json and checks it with Pulsar’s strict rules.

    Terminal
    node build.mjs
  4. Test on a staging host

    Make a test copy for a host you own, upload it there with the install button and install it in Pulsar on your phone.

    Terminal
    node build.mjs --domain staging.example.com
  5. Offer it on your site

    Upload pack.json as /pulsar-app.json, add <link rel="pulsar-app"> and the button. See Publish an app.

  6. Ask for the directory

    Send us your pack’s address. A person checks it; listed apps carry Pulsar’s seal and show “Verified by Pulsar”.

Download

Needs Node 18 or newer for the build. Nothing to install; everything is free to use for your own apps.

The Apps docs