Manual subscriptions and plan assignment foundation
Added admin manual subscription/plan assignment table and page to prepare for PayFast recurring billing, trial tracking and plan status workflows.

A public changelog grouped by frontend website, artist apps, label tools, listener apps and platform/admin work.
Public-facing website pages, public campaigns, charts, QR pages, transparency and onboarding.
Added admin manual subscription/plan assignment table and page to prepare for PayFast recurring billing, trial tracking and plan status workflows.
Rebranded public homepage language to Signal Sabotage, including underground transit hero copy, live telemetry labels, sabotage protocol feature pillars, tip transparency framing and onboarding copy.
Reduced the Signal Sabotage hero headline size, shortened the hero message, and rebuilt the homepage transparency section with cleaner ledger framing and updated Signal fee wording.
Restored the preferred Signal Sabotage hero line about the digital middleman and underground transit system, with reduced font sizing so it fits the homepage better.
Updated artist, listener, label, pricing, beta, campaign, charts, FAQ, contact and about pages to match the Signal Sabotage brand voice and underground transit positioning.
Changed public-facing terminology from campaigns to signals across the frontend navigation and public pages while keeping backend/admin table names stable.
Updated visible admin/app branding to Signal Sabotage, changed public homepage Live Test Channels to Live Signal Channels, and began shifting admin menu labels from Campaigns/Campaign Manager to Signals/Signal Manager.
Fixed public Signal Charts so top artists and top tracks count distinct download rows, prioritise the actual track artist over the signal/bridge artist, and resolve older downloads where track_id is missing but track_name matches a track file/title.
Fixed admin dashboard Content Breakdown so top songs and top artists count distinct verified bp3_downloads rows and resolve artist from the actual track first instead of signal bridge assignments.
Rebuilt public top tracks/top artists to use the same row-by-row distinct verified download aggregation as the corrected admin dashboard, eliminating unstable artist/name swapping with identical totals.
Updated public Signal Charts labels to make it clear rankings are by verified plays, while listener counts are unique listeners and not the ranking metric.
Rebuilt the pricing page with beta-friendly listener, artist, label and QR activation plan ideas plus subscription roadmap and transparent donation fee model.
Added public orientation pages for artists, listeners, labels, pricing, about and contact.
Added dynamic public campaign directory, top artists, most played tracks and liked songs.
Added public campaign landing pages with QR code, share links and most-played campaign track tables.
Frontend player buttons route desktop to download.php and mobile to mobile_player.php. Homepage hero shows the most recently played or a random public track.
Fixed admin FAQ/changelog 500 errors and made the admin seeder populate all existing frontend FAQ categories and changelog groups into the database.
Added public donation transparency showing gross, gateway fees, BuzzPromo fees, artist payout and wallet credited.
Homepage now updates public stats and now-playing panel with AJAX without refresh.
Added admin-managed FAQ and changelog pages, plus public frontend pages that can read database-managed content.
Reorganised the frontend navigation into primary links plus More dropdown with cleaner styling, and added admin-managed pricing plans used by the public pricing page.
Added public beta signup page, thank-you page, admin beta signup manager, beta CTA blocks and beta signup database table.
Added listener-facing public stats to the For Listeners page, including verified plays, unique listeners, liked songs, public playlists, most listened tracks, favourite songs and top countries.
Added drag-and-drop FAQ ordering in admin and changed changelog display to date-descending order. Confirmed frontend FAQ/changelog pages read admin-managed DB content.
Removed the music note overlay from live homepage artwork and changed frontend live stats/now-playing AJAX refresh to initial load plus every 60 seconds.