Why vanilla PHP in 2024
Because frameworks are someone else's opinions about how your code should be structured, packaged with a dependency tree that will rot in three years.
PHP has shipped with Apache since roughly the beginning of time. It runs on every host. It has no build step. It doesn't require Node. It doesn't need a container.
For a music site that needs to be fast, indexable, and maintainable by one person indefinitely, vanilla PHP is the correct choice. Every time.
The architecture
`
index.php → front controller / router
config.php → all settings, one file
includes/ → header, footer, nav, meta, blog engine
pages/ → one file per page
api/soundcloud.php → SC oEmbed fetch with file-based cache
assets/css+js/ → four CSS files, four JS files
`
No database. Blog posts are Markdown files. Playlist data comes from SoundCloud's oEmbed API and is cached as JSON files. The whole thing deploys with an FTP client.
The player
The persistent player at the bottom uses the SoundCloud Widget API, a legitimate, event-driven JavaScript API that gives you real play/pause/seek/volume control over embedded SC tracks.
The alternative (Web Audio API + hosted MP3s) gives more control but requires hosting gigabytes of audio. For 30 years of music, oEmbed is the pragmatic call.
SEO with a single-page carousel
The trick: every URL server-side renders its own complete , unique title, description, og:image, canonical, and JSON-LD structured data. The carousel is a JS enhancement on top of real HTML pages, not a replacement for them.
Google gets static HTML. Users get a smooth fullscreen carousel. Both happy.