Add tracking to play/pause button, welcome banner, modal dismiss
buttons, exit screen return, and seek bar. Every user interaction
now sends a named event to Plausible.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Send 'click: pause', 'click: skip', etc. instead of a generic
'feature_click' so each feature gets its own Goal in Plausible.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Proxied Plausible scripts need explicit data-api to know where
to POST events. Without it, API host auto-detection fails.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Track feature clicks, subscriptions, micro-transactions, top-ups,
share receipt, and close app as Plausible custom events.
Cache-bust style.css and app.js using Last-Modified headers from
HEAD requests — no build step needed, caches break on file change.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Script and API calls route through /implausibly/ reverse proxy
to avoid ad blockers while keeping analytics privacy-friendly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New subscriptions: Like ($0.25, does nothing), HD Audio (removes
low-pass filter from synth), Recently Played (shows current song),
Cancellation Processing ($4.99 to unsubscribe).
Polish: welcome banner fades out smoothly, exit ad plays an
annoying jingle via Tone.js, 64kbps Suffering Quality badge
shown when HD Audio not purchased, favicon added.
Moved og-card.svg source to tools/ (not needed in public/).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Social crawlers need fully qualified URLs to fetch the image
from their servers. Relative paths only work in some clients.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add 1200x630 Open Graph card with visualizer bars and feature
price tags. Use summary_large_image for Twitter. Share receipt
now uses window.location.href instead of hardcoded URL.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reflect the split into index.html/style.css/app.js, document the
probe-songs.py workflow and songs.json auto-loading, remove outdated
instructions about editing SONGS array in index.html.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Paywalled music player where every feature costs money — pause,
resume, skip, volume, even closing the app. Built with React 18
and Tone.js via CDN, zero build step.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>