Winamp 2 reimplemented for the browser
The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:
Works in modern versions of Edge, Firefox, Safari and Chrome. IE is not supported.
Check out this Twitter thread for an illustrated list of features: https://twitter.com/captbaritone/status/961274714013319168
For examples of how to add Webamp to your projects, check out out [
See the usage documentation for more detailed information.
This repository contains a number of different things:
: The code for the Webamp NPM module
: The code for the demo site which lives at webamp.org, see the next section for more details
: A few small examples showing how to use the NPM module
: A few small projects that are either related to Webamp, or may some day be a part of Webamp
The demo site, webamp.org, uses the same interface as the NPM module but adds the following functionality by utilizing Webamp's public API
Additionally, it makes use of some private Webamp APIs to add the following functionality:
which can be used together with Puppeteer to automate the generation of Winamp skin screenshots
I do most development by starting the demo site in dev mode and iterating that way. The following commands will install all dependencies, run an initial development build and then start a local server. Every time you save a file, it will rebuild the bundle and automatically refresh the page.
# Clone the repo cd webamp # \_\_Note:\_\_ Please use yarn over npm, since yarn will respect our `yarn.lock` file yarn install yarn start
should automatically open in your browser.
# Run tests and lint checks yarn test
To do an optimized build of the demo site, you can run:
yarn run build
If you wish to test this build locally, run:
yarn run serve
Then open the local ip/port that is output to the console in your browser.
The NPM module is built separately from the demo site. To build it run:
yarn run build-library
This will write files to
This will run the tests the linter and the type checker.
To update snapshots run
yarn test -u
Netlify watches GitHub for new versions of master. When a new version is seen, it is automatically built using
npm run build
and pushed to the server. Additionally, Netlify will run a build on every pull request and include a link under the heading "Deploy preview ready!". This enables easy high level testing of pull requests.
In short, deploying should be as simple as pushing a commit to master.
Additionally, if you want to fork the project, deploying should be as simple as setting up a free Netlify account.
There are some "feature flags" which you can manipulate by passing a specially crafted URL hash. Simply supply a JSON blob after the
(object) Override the initial Redux state. Values from this object will be recursively merged into the actual default state.
Note: These are intended mostly as development tools and are subject to change at any time.
Join our community chat on Discord: https://discord.gg/fBTDMqR
There are a few related projects that have communites:
A list of public websites that are using Webamp:
NPM module name: Dave Eddy
Thank you to Justin Frankel and everyone at Nullsoft for Winamp which inspired so many of us.
While the Winamp name, interface, and, sample audio file are surely property of Nullsoft, the code within this project is released under the MIT License. That being said, if you do anything interesting with this code, please let me know. I'd love to see it.