How It Works
A narrative walkthrough of the Gumroad QA Kit. The visual is in ../diagrams/workflow-diagram.svg; the per-node detail is in WORKFLOW-EVENTS.md.
The four-lane architecture
┌─────────────────┐ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ 1 · Spec phase │→ │ 2 · Live data│→ │ 3 · Validate │→ │ 4 · Report │
│ Read GumRoad.md │ │ Gumroad API +│ │ Run every │ │ Slack pass / │
│ + sanity-check │ │ HEAD probes │ │ check, tag │ │ fail · Notion│
│ the spec itself │ │ on deployed │ │ each w/ spec │ │ audit log │
│ │ │ site │ │ section │ │ │
└─────────────────┘ └──────────────┘ └──────────────┘ └──────────────┘
Spec-driven design. Every check the runner performs maps to a section of spec/GumRoad.md. If the spec drifts (sections renamed/removed), the runner fails the spec-validation step loudly so you know to update either the spec or the runner. Both halves of the system stay in sync.
What the runner checks (mapped to GumRoad.md sections)
| Section | Checks |
|---|---|
spec |
GumRoad.md is reachable, has every required section, references every entry-point file the runner expects |
Phase 3 setup |
Product published; file uploaded; cover image; price > 0; price matches expected; description ≥ 200 chars |
Gotcha: Custom Receipt URL |
URL is set; URL points at the right thank-you page |
Phase 3 buy buttons |
Site landing page reachable; no Stripe REPLACE_WITH_LIVE_LINK placeholder; Buy button references Gumroad host; Buy button uses correct permalink |
Buyer entry-point checklist |
Every required root file (index.html, launchers, START-HERE.html, logo) returns HTTP 200; every required subfolder has its own index.html |
Why two runners
Python (runner/run-qa.py) — for one-off pre-launch checks, CI, or quick audits. No infrastructure required.
n8n (workflows/gumroad-qa-workflow.json) — for scheduled monitoring + Slack notifications + Notion audit log. Run it on a cron daily and you get an early warning when something drifts post-launch (link rot, expired license keys, broken cover images).
Both runners read the same spec/GumRoad.md and run the same checks. Use whichever fits your workflow.
Latency
- Python runner: ~10 seconds per product (15 HTTP requests, mostly parallel)
- n8n workflow: ~3-4 seconds per product end-to-end
Cost: $0 for both. Gumroad's API is free; HEAD probes are free.
"Meerkat LLC" and the Professor Meerkat mascot are marks of Meerkat LLC.
© 2026 Meerkat LLC · meerkat-llc.com · support@meerkat-llc.com · built with care in Anna, Texas