explaingit

captbaritone/webamp

11,083TypeScriptAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A faithful browser recreation of the classic Winamp 2 music player built with HTML5 and JavaScript, supports original skins, equalizer, and a Milkdrop visual renderer.

Mindmap

mindmap
  root((Webamp))
    What it does
      Winamp 2 in browser
      Classic skin support
      Milkdrop visuals
    Real uses
      Internet Archive
      Spotify client skin
    Developer features
      npm package
      Monorepo structure
      Skin format parsers
    Tech stack
      TypeScript and React
      HTML5 audio
      pnpm and Turborepo
    Audience
      Web developers
      Nostalgia projects
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Embed a Winamp-style music player into a website for nostalgia-themed or retro projects.

USE CASE 2

Use the npm package to add Winamp skin previews to a site that archives classic Winamp skins, as the Internet Archive does.

USE CASE 3

Build a browser-based music player with equalizer and Milkdrop visualizer using Webamp as the starting point.

Tech stack

TypeScriptJavaScriptHTML5ReactpnpmTurborepo

Getting it running

Difficulty · moderate Time to first run · 30min

Development setup requires pnpm and Turborepo, embedding via the npm package is straightforward with minimal config.

MIT license, free to use, embed, and modify. The Winamp name and original interface design belong to Nullsoft, not to this project.

In plain English

Webamp is a faithful recreation of Winamp 2, the beloved music player from the late 1990s, rebuilt to run entirely inside a web browser using HTML5 and JavaScript. If you remember dragging Winamp around your Windows desktop, adjusting the equalizer, and loading custom skins, this project brings that exact experience back without installing anything. It supports the full range of classic Winamp skins and works in modern versions of Chrome, Firefox, Safari, and Edge. The project has been covered by tech publications including TechCrunch, Gizmodo, and Motherboard, and appeared on Hacker News multiple times. Beyond nostalgia, it has been integrated into real products: the Internet Archive uses it for skin previews and audio playback, and a site called Winampify.io uses it to build a Spotify client with the Winamp interface. For developers, Webamp is available as an npm package that can be embedded into any website. The repository is organized as a monorepo, meaning it contains multiple related packages in one place: the main Webamp module, a demo site, a documentation site, a skin database browser, and a few smaller standalone utilities for parsing Winamp file formats. A Milkdrop-style visual renderer is also integrated, recreating the animated graphics that Winamp players used to display while music played. Setting up the project for development requires installing dependencies with pnpm and using Turborepo, a tool for managing multi-package repositories efficiently. The build system handles the order in which packages compile and caches results to speed up repeated builds. The code is released under the MIT license. The Winamp name and original interface design remain the property of Nullsoft, the company that made Winamp, but the JavaScript implementation in this repository is open source and free to use.

Copy-paste prompts

Prompt 1
I want to embed the Webamp music player into my website using the npm package. Show me the minimal HTML and JavaScript to get it rendering with a track loaded.
Prompt 2
Help me set up the Webamp monorepo locally for development, I need to install dependencies with pnpm and get the demo site running.
Prompt 3
How do I load a custom Winamp skin file into a Webamp instance on my page? Show me the JavaScript API call.
Prompt 4
I want to add Webamp to a React app. Walk me through importing the package and rendering it with a playlist of songs.
Open on GitHub → Explain another repo

← captbaritone on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.