Skip to content

Lightweight usage analytics: GitHub downloads + anonymous launch ping #405

@idofrizler

Description

@idofrizler

Goal

Track Cooper usage/installs without invasive analytics. Only collect:

  • How many people are using it
  • Which versions are running
  • OS distribution

No PII, no behavioral tracking.


Implementation Plan

Part 1: GitHub Releases Download Counts (Zero Implementation)

GitHub already tracks download counts per release asset. Query via API:

gh api repos/OWNER/cooper/releases --jq '.[].assets[] | {name, download_count}'

Provides: Total downloads per version/platform
Limitation: Doesn't track active installs or version distribution of running apps


Part 2: Anonymous Launch Ping (Lightweight)

On app launch, send a single anonymous request to a lightweight endpoint (Cloudflare Worker / Vercel Edge Function / GitHub Gist).

Payload:

{
  "version": "1.2.3",
  "os": "darwin" | "win32" | "linux",
  "machineIdHash": "sha256-of-machine-id"
}

Privacy considerations:

  • Machine ID is hashed (SHA-256) — not reversible, only used for unique counts
  • No user data, no tracking, no PII
  • Could add an opt-out toggle in settings (default: enabled, with clear disclosure)

Backend options (pick one):

  • Cloudflare Worker + KV storage (~$0)
  • Vercel Edge Function + KV
  • Simple GitHub Gist counter (hacky but free)

Exposes:

  • Unique active user count
  • Version distribution
  • OS breakdown

Out of Scope

  • Behavioral analytics
  • Feature usage tracking
  • Crash reporting
  • Any PII collection

Labels

enhancement, good first issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions