Contributing
Form Rescue is open source. Contributions are welcome, code, tests, docs, translations and compatibility reports.
Prerequisites
- Node.js 24 LTS (see
.nvmrc) - pnpm 12 (
packageManagerinpackage.json) - For browser tests: Playwright’s Chromium (
npx playwright install chromium), and optionally installed Microsoft Edge and Firefox
Build and test
pnpm install --frozen-lockfile
pnpm build # extension (Chrome/Edge + Firefox) and website
pnpm test # unit tests with coverage
pnpm test:integration # IndexedDB repository tests
pnpm test:e2e:chrome # real-extension tests in Chromium
pnpm test:firefox # real Firefox smoke test (installed Firefox)
pnpm test:a11y # axe checks for the extension and website
pnpm lint && pnpm typecheck
pnpm fixtures serves the synthetic test pages at http://127.0.0.1:4173/.
Rules that keep users safe
- Synthetic data only. Never put real drafts, real URLs, credentials or browser profiles in fixtures, screenshots, recordings or issues.
- Read metadata before values. Eligibility must be decided without reading a field’s value.
- No network code in the extension. No analytics or remote code of any kind.
- Render draft text as text. Never as HTML.
The full guide, including how to add support for a new kind of field safely, is CONTRIBUTING.md in the repository.
Sign-off
Contributions use the Developer Certificate of Origin: add Signed-off-by to each commit with git commit -s. There is no CLA.
License
Form Rescue’s code, documentation and original artwork are released under the MIT License. Third-party components keep their own licenses; see docs/third-party-notices.md. The license doesn’t grant rights to third-party trademarks.