From a6720eab69f4b25bb1361d028224f74f95f48254 Mon Sep 17 00:00:00 2001 From: rxm Date: Sun, 14 Jun 2026 03:15:54 +0200 Subject: [PATCH 01/10] docs(readme): refresh content and polish presentation Content refresh: - Tech stack: Electron 40 -> 42 (matches package.json). - New feature bullets: Discord / webhook notifications and engine transparency (status rail, claim-retry countdown, session-expired banner with re-login). Tightened the "Alerts" bullet to the desktop-notification events. - "Releases & updates": macOS artifacts -> a macOS .dmg (matches the lean release assets). Presentation glow-up: - Centered header with logo, tagline, and badges (build, latest release, total downloads, platforms, license). - Overview screenshot promoted to a hero image; the other three move to a three-up Screenshots table. - Added a table of contents; moved the tech stack down to reference position. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 80 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 59 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 9e20041..8b3ddaa 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,45 @@ -# DropPilot +
-> **Download:** Grab the latest Windows installer from -> [GitHub Releases](https://github.com/rxm96/droppilot/releases). +DropPilot -DropPilot is a desktop app that automates Twitch Drops — quietly, in the -background, while staying transparent about what it's doing. It tracks your drop +

DropPilot

+ +

Automate Twitch Drops — quietly in the background, transparent about what it's doing.

+ +

+Build +Latest release +Total downloads +Platforms +License: MIT +

+ +

⬇  Download the latest Windows installer

+ +
+ +--- + +DropPilot is a desktop app that automates Twitch Drops. It tracks your drop inventory, picks and watches an eligible stream, switches when that stream goes -down, and (optionally) claims drops for you. +down, and (optionally) claims drops for you — all in the background, while +staying transparent about what it's doing. + +[![Overview](docs/screenshots/overview.png)](docs/screenshots/overview.png) + +## Contents + +- [Features](#features) +- [Screenshots](#screenshots) +- [Quick start](#quick-start) +- [How it works](#how-it-works) +- [Releases & updates](#releases--updates) +- [Configuration & data](#configuration--data) +- [Debug tools](#debug-tools) +- [Troubleshooting](#troubleshooting) +- [Tech stack](#tech-stack) +- [Acknowledgements](#acknowledgements) +- [License](#license) ## Features @@ -18,24 +51,25 @@ down, and (optionally) claims drops for you. - **Auto-claim** (optional) — claims completed drops and keeps an activity audit. - **Warmup mode** (optional) — briefly watches a stream to discover drops when no priority game is currently active. -- **Alerts** — new drops, auto-claim, drop ending soon, watch errors. +- **Engine transparency** — a live engine-status rail (Standby → Scanning → + Watching → Recovering → Hold), a claim-retry countdown, and a session-expired + banner with one-click re-login instead of a silent logout. +- **Alerts** — desktop notifications for new drops, auto-claim, auto-switch, + "drop ending soon," and watch errors. +- **Discord / webhook notifications** — push those same alerts to a Discord + webhook (or any compatible endpoint), independent of desktop notifications. + HTTPS-only with an SSRF guard, plus a one-click test send. - **Browser-based login** — no credentials are stored by the app. - **Demo mode** — explore the full UI without a live Twitch account. - **Debug tools** — live logs, a state snapshot, and perf/CPU sampling (off by default). ## Screenshots -> Dark theme with demo data. +> Dark theme with demo data. (Overview is shown above.) -| Overview | Stats | -| --- | --- | -| [![Overview](docs/screenshots/overview.png)](docs/screenshots/overview.png) | [![Stats](docs/screenshots/stats.png)](docs/screenshots/stats.png) | -| **Inventory** | **Control** | -| [![Inventory](docs/screenshots/inventory.png)](docs/screenshots/inventory.png) | [![Control](docs/screenshots/control.png)](docs/screenshots/control.png) | - -## Tech stack - -Electron 40 · React 19 · Vite 7 · TypeScript · Tailwind CSS v4 · Vitest +| Stats | Inventory | Control | +| --- | --- | --- | +| [![Stats](docs/screenshots/stats.png)](docs/screenshots/stats.png) | [![Inventory](docs/screenshots/inventory.png)](docs/screenshots/inventory.png) | [![Control](docs/screenshots/control.png)](docs/screenshots/control.png) | ## Quick start @@ -78,10 +112,11 @@ in [`docs/watch-flow.puml`](docs/watch-flow.puml). ## Releases & updates -Releases are published to GitHub Releases (Windows `.exe` + macOS artifacts) and +Releases are published to GitHub Releases (Windows `.exe` + a macOS `.dmg`) and built by CI when a `v*` tag is pushed. The app auto-updates on Windows and offers two channels — **stable** and **preview** — selectable in Settings → Updates, which -also shows the in-app release history. See `CONTRIBUTING.md` for how to cut a release. +also shows the in-app release history. See [`CONTRIBUTING.md`](CONTRIBUTING.md) for +how to cut a release. ## Configuration & data @@ -100,6 +135,10 @@ CPU snapshots appear in the Debug snapshot. - **App feels slow** → disable the Debug tab and restart. - **Need verbose logs** → enable Debug tools in Settings. +## Tech stack + +Electron 42 · React 19 · Vite 7 · TypeScript · Tailwind CSS v4 · Vitest + ## Acknowledgements DropPilot's drop-mining approach is heavily informed by @@ -114,5 +153,4 @@ reproduced in [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). ## License -MIT - +MIT — see [`LICENSE`](LICENSE). From a4d374c038202b03b8f2886b38e07a5f67ea8955 Mon Sep 17 00:00:00 2001 From: rxm Date: Sun, 14 Jun 2026 03:21:13 +0200 Subject: [PATCH 02/10] docs(readme): drop the downloads badge (mostly auto-updater noise) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit github/downloads/total counts every asset download across all releases. ~80% of it (2002 of 2514) is just latest.yml fetches from the auto-updater's update checks, not installs — a misleading vanity number. Keep the four honest badges (build, latest release, platforms, license). Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 8b3ddaa..8f0411a 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,6 @@

Build Latest release -Total downloads Platforms License: MIT

From 20f736604afe566559b1ffb8352dee63b7f4cb46 Mon Sep 17 00:00:00 2001 From: rxm Date: Sun, 14 Jun 2026 03:35:19 +0200 Subject: [PATCH 03/10] docs(readme): reword the engine-transparency feature as a user benefit The old bullet described the feature by the flaw it removes ('instead of a silent logout') and leaned on internal jargon ('engine-status rail', the state arrows). Reframe it around what the user gets: a live status readout, claim-retry countdowns, and a one-click re-login when the Twitch session expires. Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8f0411a..8b40864 100644 --- a/README.md +++ b/README.md @@ -50,9 +50,9 @@ staying transparent about what it's doing. - **Auto-claim** (optional) — claims completed drops and keeps an activity audit. - **Warmup mode** (optional) — briefly watches a stream to discover drops when no priority game is currently active. -- **Engine transparency** — a live engine-status rail (Standby → Scanning → - Watching → Recovering → Hold), a claim-retry countdown, and a session-expired - banner with one-click re-login instead of a silent logout. +- **Stays transparent** — a live status readout (scanning, watching, + recovering…), claim-retry countdowns, and a one-click prompt to sign back in + when your Twitch session expires. - **Alerts** — desktop notifications for new drops, auto-claim, auto-switch, "drop ending soon," and watch errors. - **Discord / webhook notifications** — push those same alerts to a Discord From f56f32913694efa04f8f82c76d2ffd0a0bf9510c Mon Sep 17 00:00:00 2001 From: rxm Date: Sun, 14 Jun 2026 03:39:18 +0200 Subject: [PATCH 04/10] docs(readme): tone-pass the feature list, benefit-led and jargon-free Rewrites every feature bullet around user benefit instead of mechanics: 'most important actionable game' -> plain wording, 'activity audit' -> 'keeps a record', drops the 'SSRF guard'/'HTTPS-only' implementation jargon from the webhook bullet, and frames browser login as a security benefit. Also removes the Warmup mode bullet (feature is slated for deprecation). Co-Authored-By: Claude Opus 4.8 (1M context) --- README.md | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 8b40864..f00d13c 100644 --- a/README.md +++ b/README.md @@ -42,25 +42,29 @@ staying transparent about what it's doing. ## Features -- **Live inventory** — drop progress, claim status, and per-drop ETA in real time. -- **Target + priority** — build a priority list of games; the app focuses on the - most important actionable game and rotates through the list. -- **Auto-watch** — auto-selects a stream, auto-switches when the current one - disappears, and recovers from stalls (no watch-time progress) on its own. -- **Auto-claim** (optional) — claims completed drops and keeps an activity audit. -- **Warmup mode** (optional) — briefly watches a stream to discover drops when no - priority game is currently active. +- **Live inventory** — every drop's progress, claim status, and time remaining, + all in real time. +- **Priority list** — rank the games you care about; DropPilot works down the + list, focusing on the highest one it can actually make progress on right now. +- **Hands-off watching** — it picks an eligible stream, switches automatically + when one goes offline, and recovers on its own when progress stalls — no + babysitting. +- **Auto-claim** (optional) — claims finished drops for you and keeps a record + of everything it's done. - **Stays transparent** — a live status readout (scanning, watching, recovering…), claim-retry countdowns, and a one-click prompt to sign back in when your Twitch session expires. -- **Alerts** — desktop notifications for new drops, auto-claim, auto-switch, - "drop ending soon," and watch errors. -- **Discord / webhook notifications** — push those same alerts to a Discord - webhook (or any compatible endpoint), independent of desktop notifications. - HTTPS-only with an SSRF guard, plus a one-click test send. -- **Browser-based login** — no credentials are stored by the app. -- **Demo mode** — explore the full UI without a live Twitch account. -- **Debug tools** — live logs, a state snapshot, and perf/CPU sampling (off by default). +- **Alerts** — desktop notifications for new drops, auto-claims, stream + switches, drops about to end, and watch errors. +- **Discord / webhook notifications** — get those same alerts in Discord (or any + compatible webhook), separate from desktop notifications, with a one-click + test send. +- **Browser-based login** — sign in through Twitch's own page; DropPilot never + stores your credentials. +- **Demo mode** — explore the whole interface with sample data, no Twitch + account needed. +- **Debug tools** (off by default) — live logs, a state snapshot, and + performance/CPU sampling for when you need to dig in. ## Screenshots From 6ac5bee721920b348a26308ca15b039854aec70a Mon Sep 17 00:00:00 2001 From: rxm Date: Mon, 15 Jun 2026 01:31:23 +0200 Subject: [PATCH 05/10] docs(spec): README overhaul + brand assets design Co-Authored-By: Claude Opus 4.8 (1M context) --- ...2026-06-15-readme-overhaul-brand-design.md | 146 ++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 docs/superpowers/specs/2026-06-15-readme-overhaul-brand-design.md diff --git a/docs/superpowers/specs/2026-06-15-readme-overhaul-brand-design.md b/docs/superpowers/specs/2026-06-15-readme-overhaul-brand-design.md new file mode 100644 index 0000000..99389e5 --- /dev/null +++ b/docs/superpowers/specs/2026-06-15-readme-overhaul-brand-design.md @@ -0,0 +1,146 @@ +# README overhaul + brand assets — design + +**Date:** 2026-06-15 +**Branch:** `docs/readme-overhaul` +**Status:** approved (brainstorm), pending implementation plan + +## Goal + +Give DropPilot a "stable" logo and a fresher, cooler-looking README. "Stable" +means resolution-independent: one SVG source the mark is drawn from, so it stays +crisp from a 16px tray icon to a 1024px app icon to the README header, and stays +visually consistent everywhere. The README gets a full hero, a download CTA, and +a feature grid, with the copy tightened. + +App-icon (`icon.png`) and tray-icon regeneration are **explicitly out of scope** +for this pass — handled later as its own step. This pass produces the vector +sources so that follow-up is a pure raster step. + +## The mark + +A water **droplet** (the "Drop") with a white **navigation arrow** inside it (the +"Pilot" / heading). Filled execution — the most robust at tiny sizes and on any +background, including a transparent tray. + +Canonical geometry (24×24 viewBox), reused verbatim everywhere: + +``` +droplet: M12 2 C12 2 5 9 5 14 a7 7 0 1 0 14 0 C19 9 12 2 12 2 Z +arrow: M12 9 L15.5 18.5 L12 16 L8.5 18.5 Z +``` + +Colors (from the app's `--dp-*` tokens): + +| Use | Dark | Light | +| ------------ | ------------------------------ | ------------------------------- | +| Droplet fill | `#a78bfa` (`--dp-accent` dark) | `#7c5fe6` (`--dp-accent` light) | +| Arrow fill | `#ffffff` | `#ffffff` | + +The arrow is a solid white fill on top of the droplet in both themes (white reads +on both violets). No gradients, no filters — flat fills only, so it rasterizes +cleanly later. + +## Wordmark + +"Drop" + "Pilot" as a two-tone wordmark: + +- "Drop" → `#e6edf3` (dark) / `#1a1c1f` (light) +- "Pilot" → `#a78bfa` (dark) / `#7c5fe6` (light) +- Weight 500, slight negative letter-spacing (~-0.5px). Font: the SVG bakes in a + generic sans (`font-family` system stack) since GitHub won't load a webfont + into an ``-referenced SVG. + +## New asset files + +- `icons/logo.svg` — the mark only (droplet + arrow), dark-theme colors, square + viewBox. Single source of truth; the future app-icon/tray raster derives from + this. +- `docs/brand/banner-dark.svg` and `docs/brand/banner-light.svg` — the hero + lockup: mark above the "DropPilot" wordmark, centered (matches the approved + mockup). One file per theme. `alt="DropPilot"`. +- `docs/brand/feat-*.svg` — eight monoline feature icons (24×24, stroke + `#a78bfa`, `stroke-width` 2, round caps, no fill — a mid-tone violet line reads + on both GitHub themes). One file per feature (see grid below). Tabler-outline + shapes are the visual reference. + +## README structure + +Centered hero (HTML `
`, the only HTML GitHub reliably +renders): + +1. **Banner** via `` so GitHub swaps dark/light automatically: + ```html + + + DropPilot + + ``` +2. **Tagline** (markdown text, stays selectable/SEO): "Automate Twitch Drops — + quietly in the background, transparent about what it's doing." +3. **Badges** — keep the existing shields (build, latest release, platforms, + license). +4. **Download CTA** — a shields `for-the-badge` styled link to the latest + release, e.g. `https://img.shields.io/badge/⬇_Download_for_Windows-7c5fe6?style=for-the-badge` linking to `/releases/latest`. Looks like a button, no CSS needed. +5. **Screenshot** — the existing `docs/screenshots/overview.png`. + +Then the body sections. + +### Features — table + mini-icons + +A 2-column markdown table; each cell = `` mini-icon + **bold +title** + one line. Markdown tables and per-cell `` both render on GitHub; +the icons carry their own styling internally (so no stripped CSS). Eight +features, 4 rows × 2: + +| # | Title | One-liner | Icon ref | +| --- | ------------------- | ---------------------------------------------------------------- | ------------- | +| 1 | Live inventory | Every drop's progress, claim status and time left, in real time. | list-check | +| 2 | Priority list | Rank your games; it works the highest one it can progress now. | arrows-sort | +| 3 | Hands-off watching | Picks a stream, switches on offline, recovers on stall. | player-play | +| 4 | Auto-claim | Claims finished drops and keeps a record of everything. | circle-check | +| 5 | Desktop alerts | New drops, auto-claims, switches, drops ending, errors. | bell | +| 6 | Discord / webhook | The same alerts in Discord or any compatible webhook. | brand-discord | +| 7 | Browser-based login | Sign in on Twitch's own page; credentials never stored. | browser | +| 8 | Demo mode | Explore the whole UI with sample data, no account needed. | flask | + +"Stays transparent", "Debug tools", and Windows auto-update remain as prose / +their existing sections (transparency is already carried by the tagline + +intro). Warmup mode stays gone. + +### Remaining sections + +Keep the current set (Quick start, How it works, Releases & updates, +Configuration & data, Debug tools, Troubleshooting, Tech stack, +Acknowledgements, License). Light copy pass only: tighten wording, kill +redundancy, verify facts (Electron 42 / React 19 / Vite 7 are already correct). +The "Contents" TOC is updated if anchors change. + +## GitHub rendering constraints (the load-bearing decisions) + +- GitHub **strips `style` attributes, `class`, and `