How Riff is built

Your music should outlast the software that plays it. Riff is built on what WordPress already has, is tested on every change, and comes with written commitments about how it will be maintained.

Built on WordPress

Riff plays the Audio, Video and Playlist blocks that ship with WordPress, and reads track details from the Media Library. It adds no post types, no settings screen and no database tables. The only things it stores are a few fields on media items, such as a track's artwork and its video version. If you turn it off, your posts still play in the browser's own player.

It calls no outside services. There is no account, no tracking and no CDN, and the fonts ship inside the plugin. Your music and your listeners' visits stay on your server.

Tested on every change

Every pull request that changes code runs the full suite, and it can't merge until the suite passes. A scheduled run every Monday repeats it against the current WordPress release, so a change in core is caught even when Riff hasn't changed.

Documentation that matches the code

The developer reference is generated from the plugin's source. That covers every hook with the line it fires on, the JavaScript API, the REST routes, the CSS custom properties, and the browser features the player uses. A commit that changes the code without updating the reference is rejected, both before the commit and again in CI, so the reference always matches the release you download.

What we commit to

Every release

Releases are cut from the pull request titles, so every change appears in the changelog in the words it was merged with. Each version is a tagged release on GitHub with its zip attached.

Get help

Ask a question or report a bug in GitHub issues. Report a security problem privately, through the security advisory form.