webamp/packages/webamp-demo
Jordan Eldredge 56e9a2a7bf Document the live reloading dev flow in both readmes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-06-07 14:28:08 -07:00
..
css Split demo site into its own package 2026-06-07 14:09:25 -07:00
docs Split demo site into its own package 2026-06-07 14:09:25 -07:00
images Split demo site into its own package 2026-06-07 14:09:25 -07:00
js Split demo site into its own package 2026-06-07 14:09:25 -07:00
mp3 Split demo site into its own package 2026-06-07 14:09:25 -07:00
skins Split demo site into its own package 2026-06-07 14:09:25 -07:00
index.html Split demo site into its own package 2026-06-07 14:09:25 -07:00
package.json Split demo site into its own package 2026-06-07 14:09:25 -07:00
readme.md Document the live reloading dev flow in both readmes 2026-06-07 14:28:08 -07:00
tsconfig.json Split demo site into its own package 2026-06-07 14:09:25 -07:00
vite.config.ts Split demo site into its own package 2026-06-07 14:09:25 -07:00

Webamp.org

Note: This package is the source for the webamp.org demo site. It is not a good reference for how to use Webamp in your own project — it relies on private internal APIs and imports library source directly. For examples of how to use Webamp as a consumer, see the examples directory or the documentation site.

The demo site 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:

  • Butterchurn integration to render MilkDrop visualizations. We intend to make this part of the public API soon.
  • "Screenshot" mode https://webamp.org/?screenshot=1 which can be used together with Puppeteer to automate the generation of Winamp skin screenshots

Development

pnpm start

This starts a Vite dev server that imports the webamp library source directly via relative paths. Any edits to files in packages/webamp/js/ are immediately reflected in the browser without a rebuild step.

Production Builds

To do an optimized build of the demo site:

pnpm run build

To test the production build locally:

pnpm run serve

Deploying

Netlify watches GitHub for new versions of master. When a new version is seen, it is automatically built 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!".

In short, deploying should be as simple as pushing a commit to master.

Advanced Usage

There are some "feature flags" which you can manipulate by passing a specially crafted URL hash. Simply supply a JSON blob after the # of the URL to change these settings:

  • skinUrl (string) Url of the default skin to use. Note, this file must be served with the correct Allows Origin header.
  • audioUrl (string) Url of the default audio file to use. Note, this file must be served with the correct Allows Origin header.
  • initialState (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.