Awesome Monorepo Tools
Below is a running list of additional monorepo tools that you may find useful in your turborepo.
💯 = stuff we use or have used in Turborepo's own monorepo
Versioning, Publishing, and Changelog Generation
For the foreseeable future, turbo
is not going to deal with package publishing. Versioning/Publishing is an extremely opinionated topic with a lot of existing solutions. Our advice is to avoid versioning packages altogether unless you actually need to publish them to npm for external consumption. If you have to version your packages, we really like the workflow of Changesets (especially for open source projects).
- changesets/changesets - 🦋 A way to manage your versioning and changelogs with a focus on monorepos
- microsoft/beachball - The Sunniest Semantic Version Bumper
- lerna/lerna - A tool for managing JavaScript projects with multiple packages.
- lerna/lerna-changelog - PR-based changelog generator with monorepo support
- intuit/auto - Generate releases based on semantic version labels on pull requests.
Codebase Linting
- typicode/husky - Modern native Git hooks made easy!
- okonet/lint-staged - Run linters on git staged files
- danger/danger-js - ⚠️ Stop saying "you forgot to …" in code review
e2e Testing
- cypress-io/cypress - Fast, easy and reliable testing for anything that runs in a browser.
- cypress-io/github-action - Run Cypress in GitHub Actions
- microsoft/playwright - Build a cross-browser end-to-end test suite with Playwright.
- microsoft/playwright-github-action - Run Playwright tests on GitHub Actions
Automation
- Kodiak - Automate your GitHub Pull Request merge behavior 💯
- preactjs/compressed-size-action - GitHub Action that adds compressed size changes to your PRs.
Codemods and Code Generation
We are planning to officially add code generation to turbo
sometime in the future. In the meantime, we suggest using plopjs/plop.
- sapegin/mrm - Codemods for your project config files
- plopjs/plop - Codegen CLI
- facebook/jscodeshift - A JavaScript codemod toolkit.
- codemod-js/codemod - Rewrites JavaScript and TypeScript using babel plugins.
- airbnb/ts-migrate - A tool to help migrate JavaScript code quickly and conveniently to TypeScript
- dotansimha/graphql-code-generator - A tool for generating code based on a GraphQL schema and GraphQL operations (query/mutation/subscription), with flexible support for custom plugins. 💯
- swagger-api/swagger-codegen - swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
Infrastructure as Code
One of the cool things we discovered when building Turborepo is how beautifully it works with infrastructure-as-code solutions.
- pulumi/pulumi - Modern Infrastructure as Code. Any cloud, any language
- aws/aws-cdk - The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code
Miscellaneous
- volta-cli/volta - JS Toolchains as Code (A better NVM)
- ds300/patch-package - Fix broken node modules instantly (without forking) 💯 💯 💯
- atlassian/yarn-deduplicate - Deduplication tool for yarn.lock files
- wclr/yalc - Work with yarn/npm packages locally like a boss. (It's like
yarn link
that actually works) - verdaccio/verdaccio - 📦🔐A lightweight private proxy registry build in Node.js