This is a pnpm workspaces monorepo containing the browser extension (apps/extension) and the landing page website (apps/website).
- Node.js (see .nvmrc for the version)
- pnpm
walletchan/
├── apps/
│ ├── extension/ # Browser extension (Vite + React + Chakra UI)
│ └── website/ # Landing page (Next.js + Chakra UI)
├── packages/
│ └── shared/ # Shared design tokens and assets
└── package.json # Root workspace
- Install dependencies:
pnpm install - Build the extension:
pnpm build:extension - The built extension will be in
apps/extension/build/
- Install dependencies:
pnpm install - Build the extension:
pnpm build:extension - Load the extension in your browser:
- Chrome/Brave/Arc: Go to
chrome://extensions, enable Developer mode, click "Load unpacked", selectapps/extension/build/ - Or use the scripts:
- Chrome:
pnpm --filter @walletchan/extension chrome:run - Firefox:
pnpm --filter @walletchan/extension firefox:run
- Chrome:
- Chrome/Brave/Arc: Go to
pnpm dev:websiteThis starts the Next.js dev server at http://localhost:3000.
From the root directory:
| Command | Description |
|---|---|
pnpm install |
Install all dependencies |
pnpm build:extension |
Build the browser extension |
pnpm build:website |
Build the website |
pnpm build |
Build both extension and website |
pnpm dev:extension |
Run extension in dev mode |
pnpm dev:website |
Run website in dev mode |
pnpm zip |
Create extension zip for distribution (keeps all manifest fields) |
pnpm zip:cws |
Create CWS-ready zip (strips key + update_url) |
pnpm lint |
Lint the extension code |
See PUBLISHING.md for the full release workflow, Chrome Web Store upload process, and self-hosted auto-update system.
Quick reference:
pnpm release:patch # 0.2.0 → 0.2.1 (bug fixes)
pnpm release:minor # 0.2.0 → 0.3.0 (new features)
pnpm release:major # 0.2.0 → 1.0.0 (breaking changes)