Thanks for taking the time to contribute! write0 is a 100% client-side app (no backend, no API routes). Please keep changes small, reviewable, and focused.
npm install
npm run devRun these before opening a PR:
npm run typecheck
npm run lint
npm run format- No secrets in the client: anything shipped to the browser is public.
- Prefer boring code: readable > clever.
- Preserve behavior unless fixing a bug or improving safety.
- Accessibility matters: keep keyboard navigation and labels in mind.
- A short description of the problem and the solution.
- Screenshots/GIFs for UI changes.
- Notes on edge cases (storage full, popup blocked for PDF export, etc.).
- TypeScript + React function components.
- Keep props/state minimal; avoid derived-state anti-patterns.
- Use
useMemo/useCallbackonly when it improves clarity or prevents real re-renders.
Please use the Bug Report template and include:
- Browser + OS
- Steps to reproduce
- Expected vs actual behavior
- Console errors (if any)