The Web Monetization browser extension is an open source implementation of the Web Monetization draft specification - learn more here. The extension is built with React and TypeScript.
- NVM (Linux, macOS), NVM Windows (Windows) - or another Node Version Manager
# Install Node 20
# For Linux/macOS
nvm install lts/iron
nvm use lts/iron
# For Windows
nvm install lts
nvm use lts
# Install correct version of pnpm using Corepack (Corepack comes with Node)
corepack enable
To install dependencies, execute:
pnpm i
All commands are run from the root of the project, from a terminal:
-
pnpm dev [TARGET]
- Builds the extension for development, with live reloading on code changes.
TARGET
: Specifychrome
orfirefox
orsafari
. Defaults tochrome
if not specified.
- Output:
dev/${TARGET}
folder.
- Builds the extension for development, with live reloading on code changes.
-
pnpm build [TARGET] --channel=CHANNEL
- Creates a production-ready build of the extension.
TARGET
: Specifychrome
orfirefox
orsafari
. Builds for all targets if not specified.CHANNEL
: Choosenightly
,preview
, orstable
. Defaults tonightly
if not specified.
- Output:
dist/${TARGET}
folder. Also creates a.zip
file in thedist
folder.
- Creates a production-ready build of the extension.
Learn how to install the extension from source by reading the installation instructions.
-
pnpm test
- Runs jest for unit testing and integration testing.
- Use
pnpm test:watch
to run tests in watch mode.
-
pnpm test:e2e:chromium
- Runs all end-to-end tests using Chromium & Playwright.
- Add
--ui
to run in interactive UI mode. - Read our documentation on testing for details.
-
pnpm format
- Runs Biome and Prettier on the codebase to find formatting issues.
- Use
pnpm format:fix
to automatically fix some of the issues.
-
pnpm lint
- Runs Biome on the codebase to find linting issues.
- Use
pnpm lint:fix
to automatically fix some of the issues.
Read the developer's guide to understand the codebase.
Please familiarize yourself with the contribution guidelines before submitting contributions. All contributions must adhere to our code of conduct.
See the open issues for a full list of proposed features (and known issues).
If you encounter any issues or have feedback, please open an issue on the GitHub repository. We appreciate your feedback and contributions!
This project is licensed under the Apache License 2.0 - see the LICENSE file for details