Paths
app/— Next.js routes (editor lives ateditor/[id]/page.tsx)components/editor/— Editor UI and contextcomponents/ui/— Reusable UI primitiveshooks/— Custom hooks (e.g.,use-local-storage)lib/— Types and utilitiesstyles/— Global styles
Branch & Commit Conventions
- Branch names:
feat/<short-desc>,fix/<short-desc>,chore/<short-desc> - Commits: conventional style
- feat: add inspector theme toggle
- fix: prevent number inputs from defaulting to 0
- chore: upgrade deps
Development Guidelines
- TypeScript required; keep strict types where practical
- Prefer small, focused PRs (I don’t always have that much time)
- Keep UI state colocated; shared editor state goes in
EditorProvidercomponents/editor/editor-context.tsx) - Styling - tailwind CSS (utility-first). Use existing tokens/classes when possible
- Accessibility - label controls
<Label htmlFor=...>),aria-*on interactive elements - Dark mode - verify both light/dark themes (uses
next-themes) - Persistence - editor auto-saves to
localStorageviauseLocalStorage
Pull Request Checklist
- Linked issue (if applicable)
- Clear description of changes and rationale
- Screenshots/GIFs for visual changes
- Verified build:
bun build - Verified run:
bun devand exercised the changed areas - No console errors; no type errors
How to Submit a PR
- Fork the repo and create a branch
- Make changes, commit, and push
-
Open a PR against
mainwith a descriptive title/body - Address review comments; squash if asked
