TrustBnBDocs

Releasing TrustBnB

Releases are built by GitHub Actions and uploaded to the stores by hand. No secrets or tokens needed.

Each release (about 5 minutes of your time)

  1. Set the version and start the release. Either:

    • bump version in package.json (e.g. 0.2.0) on main, then Actions → Release → Run workflow. It creates the v0.2.0 tag for you, or
    • from a terminal: npm version minor && git push --follow-tags.
  2. Wait for the Release workflow (Actions tab, about 15–30 minutes). It runs the tests, downloads fresh data from Inside Airbnb, builds, and lints the Firefox build with Mozilla's linter. Then it creates a GitHub Release with these files:

    • trustbnb-<version>-chrome.zip: Chrome Web Store and Edge Add-ons
    • trustbnb-<version>-firefox.zip: Firefox Add-ons
    • trustbnb-<version>-source.zip: source code for Mozilla's review
    • data-sources.json: the Inside Airbnb scrape date of each city (used by the monthly data refresh below)
  3. Upload to each store (details below). Reviews usually take from a few hours to a few days. Users get the update automatically once it's approved.

To change which cities are included, set a repository variable TRUSTBNB_CITIES (Settings → Secrets and variables → Actions → Variables), e.g. paris,london,lisbon. Slugs come from npm run data -- --list. The default list is in scripts/lib/cities.ts.

To build a release locally instead: npm run data && npm run release. The zips land in dist/.

Monthly data refresh (automatic)

The rating data ships inside the extension, so it only gets fresher with a new release. On the 2nd of every month the Release workflow does that by itself:

  1. It downloads the latest Inside Airbnb data and compares each city's scrape date with the latest release (its data-sources.json asset).
  2. No city has newer data: it stops. Nothing is published.
  3. Some city does: it publishes the same code with the new data as v<version>.<YYMM>, e.g. v0.2.0.2611 for November 2026. The release notes list the cities that changed. Browsers see it as newer than 0.2.0, and your next code release (0.3.0) as newer still.

To ship it, upload the new zips to the stores (same as step 3 above). That part stays manual. GitHub emails you when a workflow fails; watch the repo's releases (Watch → Custom → Releases) to get an email when a refresh is published.

  • Run one now: Actions → Release → Run workflow, tick Data refresh.
  • If a city fails to download, the refresh stops rather than ship without it. Re-run it.
  • GitHub pauses scheduled workflows in public repos after 60 days without commits. If that happens, the Actions tab shows a banner: click Enable workflow.

One-time store setup

Chrome Web Store (Chrome, Brave, Opera, Arc…)

  1. Register at the Chrome Web Store Developer Dashboard (one-time $5 fee, verified email).
  2. New item → upload trustbnb-<version>-chrome.zip.
  3. Fill in the listing (copy below), plus:
    • Category: Lifestyle → Travel
    • Icon: extension/icons/128.png
    • Small promo tile: store/promo-tile-440x280.png
    • Marquee promo tile: store/promo-marquee-1400x560.png
    • Screenshots: at least one, 1280×800 or 640×400, of TrustBnB on a real Airbnb page
  4. Privacy practices tab:
    • Single purpose: Shows honest, re-graded versions of Airbnb listing ratings while you browse Airbnb.
    • storage justification: Saves the user's settings (on/off, display mode, grading curve).
    • activeTab justification: When the user opens the popup, checks whether the current tab is an Airbnb page so the popup can say whether TrustBnB is working on it.
    • scripting justification: When the user opens the popup on an Airbnb tab where TrustBnB isn't running yet (a tab opened before installing, or an Airbnb country site not in the manifest), starts TrustBnB's own content script in that tab.
    • Host permission (Airbnb sites) justification: Reads the ratings shown on Airbnb pages to display TrustBnB's score next to them. Nothing is sent anywhere.
    • Remote code: No
    • Data usage: tick nothing (no data collected), then certify the three statements.
    • Privacy policy URL: https://trustbnb.vercel.app/privacy (the website, built from PRIVACY.md).
  5. Submit for review.

Updates: open the item → Package → Upload new package → submit.

Firefox Add-ons (addons.mozilla.org)

  1. Sign in at the Add-on Developer Hub (free).

  2. Submit a New Add-on → On this site → upload trustbnb-<version>-firefox.zip.

  3. When asked whether you need to submit source code, answer Yes (the code is bundled) and upload trustbnb-<version>-source.zip. Paste these build instructions for the reviewer:

    Requires Node 22 and npm 10. From the source folder: npm ci && npm run build. The output in dist/firefox matches the submitted add-on. The rating data the build bundles is in data/models.json (generated from Inside Airbnb by npm run data).

  4. Fill in the listing (copy below). Category: Shopping or Travel. Icon: extension/icons/128.png. Privacy policy: paste PRIVACY.md.

Updates: open the add-on → Upload New Version → same steps.

Microsoft Edge Add-ons

  1. Register at Partner Center (free).
  2. Create new extension → upload the chrome zip → fill in the same listing and privacy answers as for Chrome.

Listing copy

Name: TrustBnB

Summary (132 characters max):

Honest Airbnb ratings. Every listing re-graded on the full 1–5 scale, right on Airbnb. Private: runs on your device.

Description:

On Airbnb almost every listing is rated 4.8 or higher, and about two thirds are shown as 5 stars. When everything is "excellent", the stars stop telling you anything.

TrustBnB fixes that. It compares each listing's rating with every other listing in the same city, weighs how many reviews back it up, and re-grades it on the full 1–5 scale, the way ratings work on most other sites:

• ★ 4.97 on Airbnb → 4.8 Great • ★ 4.85 on Airbnb → 4.2 Fine • ★ 4.70 on Airbnb → 3.4 Meh

What you get: • Trust scores on search results, in place of Airbnb's stars (or next to them) • On listing pages, Airbnb's own rating numbers become Trust scores, plus a TrustBnB panel • A "check a rating" box in the toolbar popup • A Realistic grading curve (like TripAdvisor) or a Strict one (pure ranking)

Private by design: the rating data is built into the extension and everything runs on your device. TrustBnB sends nothing anywhere, has no tracking, and needs no account.

Ratings data: Inside Airbnb (insideairbnb.com), CC BY 4.0. TrustBnB is an independent project and is not affiliated with Airbnb.

Before the first submission

  • Try the extension on real Airbnb search and listing pages (load dist/chrome unpacked). If the popup says it found no ratings, Airbnb's markup has moved: see extension/src/scan.ts.
  • Take the store screenshots while you're there.