monorepo-and-tooling

Configure pnpm and Turborepo monorepos with shared configs and cacheable builds.

3|Updated Apr 12, 2026
One-click install
npx skills add https://github.com/mauriciodelrio/delriodev-skills --skill monorepo-and-tooling
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: monorepo-and-tooling
Source: https://github.com/mauriciodelrio/delriodev-skills/tree/main/es-skills/software/frontend/monorepo-and-tooling
Command: npx skills add https://github.com/mauriciodelrio/delriodev-skills --skill monorepo-and-tooling

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Provides a clear, repeatable blueprint to organize and operate JavaScript/TypeScript monorepos so teams avoid inconsistent builds, duplicated configs, and slow or non-cacheable pipelines.

Core Features & Use Cases

  • Monorepo layout: Standard apps/ and packages/ structure with naming conventions for internal packages.
  • Workspace dependency management: Guidance on pnpm workspaces and using workspace:* to reference internal packages reliably.
  • Turborepo pipelines & caching: Configure dependsOn, inputs, and outputs to enable cacheable builds and correct cross-package ordering.
  • Shared configs & tooling: Centralize TypeScript, ESLint, and Tailwind configs into packages/config-* for reuse.
  • Targeted commands & deploys: Use pnpm --filter for per-app dev/build and Vercel-friendly per-app deploy strategies.
  • Gotchas & best practices: Avoid relative imports across packages, align dependency versions, prevent circular dependencies, and always run tasks through Turbo.

Quick Start

Use the monorepo-and-tooling skill to set up a Turborepo + pnpm workspace with apps and packages, shared config packages, and a cacheable build pipeline.

Frequently Asked Questions about monorepo-and-tooling

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure Turborepo pipelines for cacheable builds in a pnpm monorepo?

Configure Turborepo pipelines by defining dependsOn, inputs, and outputs in turbo.json to establish task graphs and enable predictable cross-package caching in pnpm workspaces. This structure ensures correct build ordering and stores cached outputs for faster subsequent runs.

What is the best way to share ESLint and TypeScript configs across packages in a monorepo?

The best way to share configs is centralizing them into dedicated packages/* directories, allowing apps to reference them as internal workspace dependencies. This avoids duplicated configuration files and ensures consistent linting and type checking across the monorepo.

Why do I need to use workspace:* for internal dependencies in pnpm workspaces?

Using workspace:* ensures reliable internal package resolution within pnpm workspaces, linking local packages correctly instead of fetching published versions. This prevents version mismatches and maintains accurate dependency graphs across monorepo apps and shared packages.

What are common monorepo gotchas with circular dependencies and relative imports?

Common monorepo gotchas include using relative imports across packages, misaligned dependency versions, and circular dependencies. Avoid these by referencing internal packages via workspace:* and always running tasks through Turbo to maintain correct boundaries and build orders.

Does this monorepo tooling setup work for both JavaScript and TypeScript Next.js apps?

This setup applies to both JavaScript and TypeScript monorepos using pnpm workspaces and Turborepo. It supports Next.js apps, shared internal packages, and per-app deployment workflows while standardizing shared TypeScript, ESLint, and Tailwind configurations.