Browser extension
What the bundled Manifest V3 extension does, the app URL you must change before using it, how to load it for testing, and what to fix before publishing it.
2 min readUpdated Oct 17, 2026Applies to Subsweep 0.1.0
The extension/ folder holds a small Manifest V3 browser extension. When someone browses a known SaaS vendor's site, it offers a one-click way to log that tool in Subsweep. It never changes the page and never sends anything in the background.
What it does
The extension has three files: manifest.json, content.js and popup.html.
- On sites from a built-in list of 20 vendors (Notion, Slack, Figma, Zoom, Canva, GitHub, Linear, Monday, Asana, HubSpot, Mailchimp, Shopify, QuickBooks, Xero, Adobe, Dropbox, Calendly, Stripe, OpenAI and Cursor), it adds a small card in the bottom-right corner: Log Notion in Subsweep.
- It reads the first price it can see on the page (a
$,₹,£or€amount in the first 4,000 characters of text). - Open Subsweep opens the app's Add subscription form in a new tab, with the vendor and that price already filled in. The person reviews it and saves. They need to be signed in to Subsweep in the same browser: if they are signed out, they are sent to the sign-in page and the prefilled vendor and price are lost.
- The toolbar popup has a single Open Subsweep link.
It matches on the site's domain, so the card appears on any page of those sites, not only on checkout or pricing pages. The card has no close button.
Set your app URL first
The extension ships pointing at a development address, http://localhost:3002. Replace it with your public URL in three places:
| File | What to change |
|---|---|
extension/content.js |
The a.href line that builds .../add/manual?vendor=... |
extension/popup.html |
The Open Subsweep link |
extension/manifest.json |
The http://localhost:3002/* entry in host_permissions |
a.href =
- "http://localhost:3002/add/manual?vendor=" +
+ "https://subs.example.com/add/manual?vendor=" +Load it for testing
Chrome, Edge and other Chromium browsers:
- Open
chrome://extensionsand turn on Developer mode. - Choose Load unpacked and select the
extensionfolder. - Visit one of the 20 sites, for example notion.so, and look for the card.
Firefox: the manifest includes a Gecko ID (extension@subsweep.app), so you can load it from about:debugging → This Firefox → Load Temporary Add-on, choosing manifest.json. Change the ID to your own before publishing.
Before you publish it
The extension is not in any store. To publish it in the Chrome Web Store you need a developer account with Google; see Chrome Web Store publishing. Before submitting:
- Narrow the permissions. The content script is registered for every
httpandhttpspage and only checks the domain afterwards. Store reviewers ask you to justify broad host access, so list the 20 vendor domains incontent_scripts.matchesinstead, and removehttps://*/*fromhost_permissions(the extension makes no network requests). - Add icons. The manifest has none, so the browser shows a generic one.
- Rename it in
manifest.json,content.jsandpopup.htmlif you rebrand the app. - Add vendors by extending the
catalogslist at the top ofcontent.js. Each entry is a domain and a display name; the name should match the vendor's name in the app so the add form picks up its logo and category.
Note
Subscriptions logged through the extension are ordinary hand-added subscriptions with a Manual badge. There is no separate "Extension" source in this version.