ranger 484191a974 fix: trim manifest description to 124 chars (Chrome Web Store 132 cap)
The Chrome Web Store enforces a 132-character limit on the manifest
description field. The v0.3.0 description was 195 chars and got
rejected on upload. Trimmed to the same wording as the listing short
description in WEB_STORE_SUBMISSION.md §2.

The longer 1500-char marketing description still lives in §3 of the
submission notes and goes in the Dashboard's 'Detailed description'
field at listing time.
2026-06-09 00:53:55 +01:00

RangerHQ Tuner

Lightweight indie internet radio player for Chrome. Plays SomaFM in any browser tab. Manifest V3, vanilla JS, no telemetry.

Sibling to rangerhq-radio (the WordPress version).

Tier 1 — MVP (current)

  • Manifest V3 + Offscreen API audio
  • Loads all SomaFM channels from channels.json
  • Pick a station, click Play, audio runs in background
  • Volume + state persisted across popup open/close
  • Catalogue cached 6h in chrome.storage.local
  • Source-adapter pattern in place for future networks

Install (developer mode)

  1. Open chrome://extensions
  2. Toggle Developer mode on (top right)
  3. Click Load unpacked → pick this folder (rangerhq-tuner/)
  4. Pin the extension to your toolbar (puzzle icon → pin)
  5. Click the toolbar icon → pick a SomaFM station → ▶ Play

Project layout

rangerhq-tuner/
├── manifest.json
└── src/
    ├── background/service-worker.js   # message router, no audio here
    ├── offscreen/offscreen.{html,js}  # the <audio> element host (MV3 needs this)
    ├── popup/popup.{html,css,js}      # the toolbar UI
    ├── sources/                       # extensibility seam
    │   ├── base-source.js             # RadioSource interface (JSDoc)
    │   ├── somafm.js                  # first concrete adapter
    │   └── index.js                   # registry
    ├── lib/                           # shared utilities
    └── assets/icons/                  # 16/32/48/128 PNGs

License

GPL-2.0-or-later — matches the rest of the RangerHQ family.

S
Description
No description provided
Readme GPL-2.0 1.6 MiB
Languages
JavaScript 58.3%
CSS 31.4%
HTML 10.3%