Skip to content

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-lockfile

Node.js 22 is the version used in CI.

Common commands

CommandPurpose
pnpm devStart the product site and playground
pnpm docs:devStart this documentation site
pnpm buildBuild every package and app
pnpm testRun package tests and app checks
pnpm lintRun Oxlint across the workspace
pnpm formatCheck formatting with Oxfmt
pnpm test:visualRun 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 build

Repository 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 fixtures

Documentation 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.

Released under the MIT License.