Tooling
Shared tooling packages used across the entire monorepo
Introduction
The tooling/ directory contains shared configuration packages used across the entire monorepo. These packages ensure consistency in code style, type checking, formatting, spellcheck, and other development workflows.
All tooling packages are scoped under @repo/* and are consumed by apps and packages via workspace dependencies.
Package overview
Development workflow
Adding a new tooling package
Generate the package using turbo gen:
pnpm turbo gen initEnter the package name (e.g., my-tool). This creates it in packages/.
Move the package to the tooling/ directory:
mv packages/my-tool tooling/my-toolUpdate the package if needed. Tooling packages typically:
- Export configuration files (not code)
- May not need a
src/directory - Should have appropriate
exportsinpackage.json
Run pnpm install to link the workspace package.
Checks
After modifying any tooling package, run the relevant checks:
- ESLint changes:
pnpm lint - Prettier changes:
pnpm format - TypeScript changes:
pnpm typecheck - Spellcheck changes:
pnpm check:spelling - Tailwind changes: Test in the docs app, verify theme tokens, and check PostCSS processing
Best practices
- Keep tooling packages focused: Each package should have a single responsibility
- Version compatibility: Tooling packages should work together harmoniously
- Documentation: Update this page when adding new tooling or changing behavior
- Breaking changes: Coordinate breaking changes across the monorepo
- Testing: Always test tooling changes in consuming apps before committing
Troubleshooting
Last updated on