New — cover art as the play button & custom button radius in WaveformPlayer 1.22. What's new →

Products

Built on the core player.

Each one is an optional add-on to WaveformPlayer — drop in a script and a few data-* attributes. Same vanilla JS, same zero-config feel.

Bar

waveform-bar · v1.10.0

A persistent, Spotify-style bottom bar with a queue, volume, repeat, favorites, cart, DJ markers and cross-page session persistence. Drives inline players too.

Playlist

waveform-playlist · v1.7.1

Turn a list of tracks into an album, podcast or chaptered episode — list, minimal, hero and grid layouts, keyboard navigation, all driving one embedded player.

Analytics

waveform-tracker · v1.0.1

Privacy-first listen analytics — credits real media-time engagement, ignores seeks, sets no cookies, and POSTs compact JSON to any endpoint.

Generator

waveform-gen · v1.5.1

A Node CLI + library that decodes audio at build time and writes normalized peak JSON — players render instantly with no client-side decode. BPM + markers too.

Framework wrappers

Prefer components? Each framework gets typed wrappers over the same vanilla cores — Player, Bar and Playlist — SSR-safe, with every option as a prop.

React

  • Player v0.6.0
  • Bar v0.3.0
  • Playlist v0.3.0

Vue

  • Player v0.4.0
  • Bar v0.2.0
  • Playlist v0.3.0

Svelte

  • Player v0.4.0
  • Bar v0.2.0
  • Playlist v0.3.0

Astro

  • Player v0.6.0
  • Bar v0.3.0
  • Playlist v0.3.0

See every package — with gzipped sizes and live download counts — on the all packages page.

Start shipping beautiful audio.

Free, open-source and ~10KB — add a div and go.

Read the docs

API reference, guides and recipes for all nine packages.

Browse docs

Open the builder

Configure a player visually and copy the HTML, JS or React.

Try it

Star on GitHub

MIT-licensed, open source, zero dependencies.

View source