entrypoints/holds the browser extension entrypoints, includingbackground.tsand the sidepanel UI underentrypoints/sidepanel/.utils/contains export logic, shared helpers, and Supabase integration. Extractors live inutils/extractors/and are split by content type.docs/includes architecture notes; start withdocs/EXPORT_ARCHITECTURE.mdwhen extending export formats.public/andassets/store static assets (icons, SVGs).testdata/includes sample inputs for manual checks.
pnpm installinstalls dependencies (repo usespnpm).pnpm devruns the WXT dev server for the default browser.pnpm dev:edge/pnpm dev:firefoxrun browser-specific dev builds.pnpm buildproduces a production extension build.pnpm zipgenerates a distributable zip.pnpm compileruns a TypeScript type check (tsc --noEmit).
- TypeScript + React with ESM (
"type": "module"). Use 2-space indentation, semicolons, and single quotes to match existing files. - React components use PascalCase filenames (e.g.,
Dashboard.tsx); utilities use kebab-case or descriptive names inutils/. - For any export feature work, read
docs/EXPORT_ARCHITECTURE.mdfirst to align with the export pipeline design and avoid introducing inconsistent extractor/dispatch patterns. - Whenever new features or improvements are shipped in a new version, read
docs/WHATS_NEW_POPUP.mdand update the version-gated "What's New" mapping flow (WHATS_NEW_VERSION+WHATS_NEW_FEATURES_BY_VERSION) inentrypoints/sidepanel/components/Dashboard.tsx. - Keep locale files lean for "What's New": remove
whatsNew.feature.*keys that are no longer referenced byWHATS_NEW_FEATURES_BY_VERSION(apply removals across all locale catalogs). - Export logic is organized by content type; add new extractors in
utils/extractors/and route viautils/export-dispatch.ts. - After adding a new export feature, update related marketing/docs pages in
docs/site/(including the landing page, Terms, and Privacy Policy when affected) and refresh the feature documentation inREADME.md. - Add the AGPL copyright header to any new source files.
- When doing any UI design work, always review
docs/DESIGN_SYSTEM.mdfirst and follow its guidance. - Ensure new UI elements use i18n message keys and update all locale catalogs accordingly.
- No automated test framework is configured yet.
- Use
pnpm compilefor type safety and verify export behavior manually (for example withtestdata/mindmap.html). - If you add tests, document the runner and commands here.
- Commit messages follow Conventional Commits (
feat:,fix:,refactor:). Keep scopes concise and action-oriented. - PRs should include: summary of changes, manual verification steps, and linked issues if applicable. Attach screenshots for UI changes in
entrypoints/sidepanel/. - Update architecture docs (for example
docs/EXPORT_ARCHITECTURE.md) when export pipeline design or supported formats change.
- Configuration is loaded from
.env; keep secrets out of the repo and update.env.examplewhen adding new variables.