From 542d6e9ef9b75a987f3b1258ed6d1746e47caa71 Mon Sep 17 00:00:00 2001 From: abdulsaheel Date: Sun, 26 Jul 2026 13:31:18 +0530 Subject: [PATCH 1/2] docs: make the donation ask findable, add contributors and a star chart MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The addresses were technically present and practically invisible — a line at the very bottom of the README pointing at DONATE.md. Anyone who wanted to support the project had to go looking for how. Now: a donate badge in the header row, and a centred block directly under Install, which is where people are when they've just decided they like it. Same block on the landing page, boxed in the accent colour, with a Donate link in the site nav. Same content, just findable. Adds a contributors section (contrib.rocks) that credits the people who made it better — mostly by wearing it on a real wrist and reporting what came out wrong, which is worth saying out loud given there is one person's physiology in the test data. Star chart is SELF-HOSTED, and that is deliberate rather than not-invented-here: * star-history.com refuses these repos outright — it answers "GitHub restricted starred-data access for openstrap/edge". * starchart.cc rate-limits anonymous callers, so the image renders as a broken graphic some of the time. * Both would have every visitor's browser call a third party. GitHub proxies README images through camo, so that would not leak there, but the landing page has no such protection, and a page arguing your data stays on your device should not be quietly making outside requests. So tool/gen_star_history.py pulls the stargazer timestamps and emits a plain SVG — no script, no external reference, theme-aware for light and dark — and a weekly workflow regenerates it and commits only when it changed. The chart shows all three repos and makes the Hackaday/Adafruit spike obvious, which is a more honest picture of where this actually stands than a star count on its own. Also added downloads and stars badges. There is no such thing as a GitHub trending badge — GitHub exposes no API for it — so those plus the chart are the closest honest equivalent. Note the star-history workflow needs `contents: write` to commit the regenerated file. That is a deliberate exception to the read-only default on the test workflow, scoped to this one job. --- .github/workflows/star-history.yml | 49 +++++++++ README.md | 65 +++++++++++- docs/index.html | 52 ++++++--- docs/star-history.svg | 28 +++++ docs/style.css | 54 ++++++++++ tool/gen_star_history.py | 165 +++++++++++++++++++++++++++++ 6 files changed, 396 insertions(+), 17 deletions(-) create mode 100644 .github/workflows/star-history.yml create mode 100644 docs/star-history.svg create mode 100644 tool/gen_star_history.py diff --git a/.github/workflows/star-history.yml b/.github/workflows/star-history.yml new file mode 100644 index 00000000..2e976c3a --- /dev/null +++ b/.github/workflows/star-history.yml @@ -0,0 +1,49 @@ +name: refresh star history + +# Regenerates docs/star-history.svg from the GitHub API and commits it when it +# has actually changed. +# +# We self-host this chart rather than embedding star-history.com or +# starchart.cc: the former refuses these repos outright ("GitHub restricted +# starred-data access for openstrap/edge") and the latter rate-limits anonymous +# callers, so both render as broken images some of the time. Self-hosting also +# means the landing page makes no third-party request, which matters for a +# project whose pitch is that your data stays on your device. + +on: + schedule: + - cron: '17 4 * * 1' # Mondays, 04:17 UTC — off the hour to dodge the rush + workflow_dispatch: + +# Unlike the test workflow, this one has to write: it commits the regenerated +# SVG. Nothing else in it needs elevated access. +permissions: + contents: write + +concurrency: + group: star-history + cancel-in-progress: false + +jobs: + refresh: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Regenerate the chart + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: python3 tool/gen_star_history.py + + - name: Commit if it changed + run: | + set -euo pipefail + if git diff --quiet -- docs/star-history.svg; then + echo "No change in star history — nothing to commit." + exit 0 + fi + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add docs/star-history.svg + git commit -m "chore: refresh star history chart" + git push diff --git a/README.md b/README.md index b0a61526..5a64c2d4 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,9 @@ An app that makes a WHOOP 4.0 useful without a WHOOP subscription. Connects to t [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![TestFlight](https://img.shields.io/badge/iOS-TestFlight-0D96F6?logo=apple&logoColor=white)](https://testflight.apple.com/join/2BVSwq65) [![APK](https://img.shields.io/github/v/release/OpenStrap/edge?label=Android%20APK&logo=android&logoColor=white)](https://github.com/OpenStrap/edge/releases/latest) +[![downloads](https://img.shields.io/github/downloads/OpenStrap/edge/total?label=downloads&color=6aa9e0)](https://github.com/OpenStrap/edge/releases) +[![stars](https://img.shields.io/github/stars/OpenStrap/edge?style=flat&color=e2825f)](https://github.com/OpenStrap/edge/stargazers) +[![Donate](https://img.shields.io/badge/donate-BTC%20%2F%20ETH-f7931a)](DONATE.md) > Not affiliated with WHOOP. Not a clone of their app or their scores — see below. @@ -24,6 +27,33 @@ band at a time. Prefer to sideload the unsigned IPA instead of using TestFlight? That still works — see [`guides/IOS_SIDELOAD.md`](guides/IOS_SIDELOAD.md). +--- + +
+ +### ☕ Like it? Help keep it going. + +**No subscription, no paywall, no company behind this.**
+If OpenStrap gave your band a second life, a small tip genuinely helps. + +**Bitcoin** + +`bc1qvtcch38dcwp967ar764uu6eetw7tf907844wfq` + +**EVM** — Ethereum · Base · Arbitrum · Optimism · Polygon + +`0x8310C89393366b7eBCD47ABa82e1dfB5ECeFFbD9` + +[**What donations actually pay for →**](DONATE.md) + +*Nothing is gated behind paying, and nothing ever will be.
+Bug reports from real bands are worth more than money — there's only one +person's physiology in the test data otherwise.* + +
+ +--- + ## What made me build this app My subscription lapsed and a perfectly good sensor turned into a bracelet. The hardware @@ -197,9 +227,36 @@ implementing. Security problems shouldn't go in a public issue — see [SECURITY.md](SECURITY.md) for private reporting. +## Contributors + +Every one of these people made the app better — mostly by using it on a real +wrist and reporting what came out wrong. + + + Contributors to OpenStrap/edge + + +The most useful contribution isn't necessarily code. There's one person's +physiology in the test data, so a bug report from a different body on a +different band is worth a great deal — see +[`CONTRIBUTING.md`](CONTRIBUTING.md). + +## Star history + +Star history for edge, protocol and analytics + +That cliff in mid-July is [Hackaday](https://hackaday.com/2026/07/15/making-a-locked-down-wearable-work-without-a-subscription/) +and [Adafruit](https://blog.adafruit.com/2026/07/15/openstrap-edge-makes-a-whoop-4-0-band-useful-without-a-subscription) +covering it on the same day. + +Generated from the GitHub API and refreshed weekly +([workflow](.github/workflows/star-history.yml)) rather than embedded from +star-history.com or starchart.cc — the first refuses these repos outright, the +second rate-limits, and neither should be making a request from a page about +keeping your data to yourself. + ## Support the work -Free, MIT, no company behind it. If it gave your band a second life: -[**DONATE.md**](DONATE.md) has BTC and EVM addresses. Bug reports from real bands are -worth more than money, though — there's only one person's physiology in the test data -otherwise. +Free, MIT, no company behind it. If it gave your band a second life, +[**DONATE.md**](DONATE.md) has the BTC and EVM addresses and explains what they +actually pay for. Bug reports from real bands are worth more than money, though. diff --git a/docs/index.html b/docs/index.html index 29c1fb39..831a443f 100644 --- a/docs/index.html +++ b/docs/index.html @@ -19,6 +19,7 @@ Edge @@ -147,22 +148,47 @@

How it’s put together

-
-

Support the work

-

- Free, MIT licensed, no company behind it. Bug reports from real bands are worth - more than money — but if you’d like to chip in: -

-
-
BTC
-
bc1qvtcch38dcwp967ar764uu6eetw7tf907844wfq
-
EVM
-
0x8310C89393366b7eBCD47ABa82e1dfB5ECeFFbD9
-
+
+

Where it’s got to

+ Star history for edge, protocol and analytics

- Nothing is gated behind paying, and nothing ever will be. + The cliff in mid-July is Hackaday and Adafruit covering it on the same day. + Chart generated from the GitHub API and served from this site, rather than + embedded from star-history.com or starchart.cc — there is no analytics or + third-party service on this page. (The screenshots above load from GitHub, which + also hosts it.)

+ +
+ +