A curated drawer of project and monorepo tooling, grouped by job: managing repos, scaffolding new projects, automating scripts, publishing releases, and keeping dependencies sane.

Monorepo managers

ResourceWhy it is useful
awesome-monorepoCurated list of monorepo tools and resources.
manypkgLinter and fixer for monorepo package.json consistency.
syncpackKeep dependency versions in sync across workspace packages.

Task runners

Parallel/cached runners for monorepo scripts.

ResourceWhy it is useful
lageCached task pipeline runner for JS monorepos.
ultra-runnerFast parallel script runner with build ordering.
wsrunRun a command across workspace packages with dependency ordering.

Project config & MRM presets

MRM applies codemod-style tasks to bring a project's config files up to date. Presets and tasks below.

ResourceWhy it is useful
presetterReusable project config presets.
smarthead/mrm-presetMRM preset example.
solid-soda/scriptsShared scripts/config preset.
mrm-preset-michaeldanilovMRM preset; includes a yaspeller spell-check task.
koober-sas/project-configGitLab-hosted MRM preset (package.json).
adonisjs/mrm-presetAdonisJS MRM preset.
tachiba/mrm-tasksCollection of MRM tasks.
moonwalker/mrm-presetsMRM presets.
mrm-task-avatsMRM task that sets up AVA testing.
mrm-task-git-config-gitlab-deploymentsMRM task for GitLab deployment git config.
commitlint-config taskMRM task pattern: clear file, add contents, install.
TayloredTechnology/mrm-presetMRM task using a template directory.
npm/lint setup.jsExample of setting up npm scripts manually.
kcd-scriptsConsolidate project scripts into one shared CLI.
Shopify/web-configsPreset/shared-config examples.

MRM task examples

Reference implementations for writing your own MRM tasks.

ResourceWhy it is useful
mrm-task-npm-awsAWS deploy scripts task.
mrm-task-webpackWebpack setup task.
mrm-task-typescript-vscodeTypeScript + VSCode setup task.
mrm-preset-thorough prettierPrettier setup task.
yaspeller taskSpell-checker setup with yaspeller.
macaw init commandExample of creating an email template in an init command.

Scripting

Write shell-style scripts in JavaScript.

ResourceWhy it is useful
fsxxFilesystem-focused scripting helpers.
zxGoogle's tool for writing shell scripts in JS.
kit test scriptScript Kit template script example.

Generators & scaffolding

ResourceWhy it is useful
projenDefine and synthesize project config from code.
PlopMicro-generator framework for consistent files.
gogenGenerator tool.
tabstopsSnippet/tabstop parsing example.
copy-template-dirCopy a template directory with variable substitution.

Templating & GitHub template download

ResourceWhy it is useful
package-syncDownload/sync GitHub templates into a project.
npm-templatesExample of downloading templates.
Hygen blog templatesHygen prompt example for new content.
Cypress hygen scriptspackage.json hygen script example.
hygen-andoshin11-templatesExample of running Hygen from home-dir templates.

Run Hygen from templates shipped inside node_modules:

"new:post": "cross-env HYGEN_TMPLS=node_modules/@64robots/nuxt-content-blog/src/_templates hygen post new",
"new:author": "cross-env HYGEN_TMPLS=node_modules/@64robots/nuxt-content-blog/src/_templates hygen author new",
"new:category": "cross-env HYGEN_TMPLS=node_modules/@64robots/nuxt-content-blog/src/_templates hygen category new"

Run Hygen from templates in a home directory:

HYGEN_TMPLS=$HOME/dev/hygen-andoshin11-templates/_templates hygen

Publishing & release

ResourceWhy it is useful
releaseVercel's release notes generator.
autoAutomated versioning and publishing from PR labels.
npBetter npm publish workflow.
changesetsVersioning and changelogs for monorepos.
changesets package.json exampleChangesets script wiring.
formik release-notes.jsCustom release notes script.

Dependency tools

ResourceWhy it is useful
npm-checkInteractive check for outdated/unused deps.
npm-check-updatesUpgrade package.json dependency ranges.
tazeModern dependency updater.
davidTells you when npm dependencies are out of date.
depcheckFind unused dependencies.
unimportedFind unused files and dependencies.
dependency-cruiserValidate and draw a map of dependencies.
sharecInstall/share config across projects (example).
yalcLocal package publishing for testing.
types-syncSync @types/* definitions to installed deps.
install-pkgProgrammatically install a package.
ci (install-pkg fast)Fast clean dependency install in CI.
check-enginesVerify installed versions match engines.
npkillFind and remove old node_modules directories.
nlsList scripts and why deps are installed.
cost-of-modulesCheck the size of dependencies in use.
madgeDraw a module dependency graph.
LernaMonorepo dependency and publish management.
patch-packagePersist fixes to dependencies via patches.

CI helpers

ResourceWhy it is useful
npm org-wide workflowExample org-wide GitHub Actions workflow.

Codemods

ResourceWhy it is useful
shepherdRun codemods across many repos at once.

Changelog & markdown

ResourceWhy it is useful
cclog-parserChangelog parser.
collect-changelogCollect changelog changes across a monorepo.

Linting & secrets

ResourceWhy it is useful
secretlintLint for committed secrets; pair with a pre-commit hook.

Git helpers

ResourceWhy it is useful
gittarDownload and extract git repos.
git-accountSwitch between GitHub accounts.
Git-User-SwitchGUI to switch git users.

Multi-repo & GitHub admin

ResourceWhy it is useful
korefileGitHub filesystem for multi-repo updates (funding.yml updater, asocial-bookmark).
delete-github-branchesBulk-delete branches.
github-label-setupSet up standard GitHub labels.
security-alertGitHub security alert CLI.
gitexporterExport private subdirectories to public repos.