Contributing
Rougher Stuff is a pnpm workspace orchestrated with Turbo. Changes should preserve focused package boundaries and the one-way dependency graph.
Local setup
sh
git clone https://github.com/I-LIKE-ROUGH/rougher-stuff.git
cd rougher-stuff
corepack enable
pnpm install --frozen-lockfileNode.js 22 is the version used in CI.
Common commands
| Command | Purpose |
|---|---|
pnpm dev | Start the product site and playground |
pnpm docs:dev | Start this documentation site |
pnpm build | Build every package and app |
pnpm test | Run package tests and app checks |
pnpm lint | Run Oxlint across the workspace |
pnpm format | Check formatting with Oxfmt |
pnpm test:visual | Run Playwright visual tests |
Run the narrowest relevant command while iterating, then run the same four checks as CI before opening a pull request:
sh
pnpm format
pnpm lint
pnpm test
pnpm buildRepository layout
text
apps/playground product site and interactive demos
apps/docs VitePress documentation
packages/* publishable libraries
scripts benchmark and maintenance scripts
visual-tests upstream Rough.js fixturesDocumentation changes
Edit Markdown under apps/docs and theme tokens under apps/docs/.vitepress/theme. Keep package-specific README files close to source when documenting low-level or compatibility APIs.
Benchmarks
Benchmarks are intentionally separate from CI because results depend on the machine. Run the focused suite and its comparison command under equivalent conditions when changing hot geometry or rendering paths.
