ranger baaa5e527d docs: add LICENSE (GPL v2), PRIVACY.md, and WEB_STORE_SUBMISSION.md
Prep for Chrome Web Store first submission. No code changes — v0.3.0
behaviour unchanged.

- LICENSE — full GPL v2 text, matches RangerHQ WP family.
- PRIVACY.md — canonical privacy policy. "Collects nothing, stores
  everything locally" using Google's data-category vocabulary so the
  Dashboard Privacy Practices tab can be ticked uniformly "does not
  collect" across all 9 categories.
- WEB_STORE_SUBMISSION.md — paste-ready Dashboard copy: single-purpose
  statement, 132-char short + 1500-char detailed description, permission
  justifications for offscreen + storage + somafm.com host, build ZIP
  command, screenshot brief, post-approval update workflow.

The public version of the privacy policy will live at
davidtkeane.com/rangerhq-tuner/privacy (HTML mirror of PRIVACY.md).
2026-06-09 00:32:44 +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%