giuseppe-trisciuoglio/developer-kit/turborepo-monorepo
- community
Checking that the SKILL.md file is still in the repository.
Provides comprehensive Turborepo monorepo management guidance for TypeScript/JavaScript projects. Use when creating Turborepo workspaces, configuring turbo.json tasks, setting up Next.js/NestJS apps, managing test pipelines (Vitest/Jest), configuring CI/CD, implementing remote caching, or optimizing build performance in monorepos
Install
npx vskill@latest install giuseppe-trisciuoglio/developer-kit/turborepo-monorepoSKILL.md
Turborepo Monorepo
Overview
Provides guidance for Turborepo monorepo management: workspace creation, turbo.json task configuration, Next.js/NestJS integration, testing pipelines (Vitest/Jest), CI/CD setup, and build performance optimization.
When to Use
- Create or initialize Turborepo workspaces
- Configure
turbo.jsontasks with dependencies and outputs - Set up Next.js/NestJS apps in monorepo structure
- Configure Vitest/Jest test pipelines
- Build CI/CD workflows (GitHub Actions, GitLab CI)
- Implement remote caching with Vercel Remote Cache
- Optimize build times and cache hit ratios
- Debug task dependency or cache issues
- Migrate from other monorepo tools to Turborepo
Instructions
Workspace Creation
- Create a new workspace:
``bash pnpm create turbo@latest my-workspace cd my-workspace ``
- Initialize in existing project:
``bash pnpm add -D -w turbo ``
- Create turbo.json in root (minimal config):
``json { "$schema": "https://turborepo.dev/schema.json", "pipeline": { "build": { "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**"] }, "lint": { "outputs": [] }, "test": { "dependsOn": ["build"], "outputs": ["coverage/**"] } } } ``
- Add scripts to root package.json:
``json { "scripts": { "build": "turbo run build", "dev": "turbo run dev", "lint": "turbo run lint", "test": "turbo run test", "clean": "turbo run clean" } } ``
- Validate task graph before CI:
``bash turbo run build --dry-run --filter=... # Verify task execution order ``
Task Configuration
- Configure tasks in
turbo.json:
``json { "pipeline": { "build": { "dependsOn": ["^build"], "outputs": ["dist/**"] }, "test": { "dependsOn": ["build"], "outputs": ["coverage/**"] }, "lint": { "outputs": [] } } } ``
- Run tasks:
``bash turbo run build # All packages turbo run lint test build # Multiple tasks turbo run build --filter=web # Specific package ``
- Parallel type checking (use transit nodes to avoid cache issues):
``json { "pipeline": { "transit": { "dependsOn": ["^transit"] }, "typecheck": { "dependsOn": ["transit"] } } } ``
- Validate before committing:
``bash turbo run build --dry-run # Check task order and affected packages ``
Framework Integration
Next.js: outputs ".next/**" and env ["NEXT_PUBLIC_*"] - See references/nextjs-config.md
NestJS: outputs "dist/**", dev tasks with cache: false, persistent: true - See references/nestjs-config.md
Testing Setup
- Vitest configuration:
``json { "pipeline": { "test": { "outputs": [], "inputs": ["$TURBO_DEFAULT$", "vitest.config.ts"] }, "test:watch": { "cache": false, "persistent": true } } } ``
- Run affected tests:
``bash turbo run test --filter=[HEAD^] `` See references/testing-config.md for complete testing setup.
Package Configurations
- Create package-specific turbo.json:
``json { "extends": ["//"], "tasks": { "build": { "outputs": ["$TURBO_EXTENDS$", ".next/**"] } } } `` See references/package-configs.md for detailed package configuration patterns.
CI/CD Setup
- GitHub Actions with validation checkpoints:
```yaml
- name: Install dependencies
run: pnpm install
- name: Validate affected packages (dry-run)
run: pnpm turbo run build --filter=[HEAD^] --dry-run # VALIDATE: Review output to confirm only expected packages will build
- name: Run tests
run: pnpm run test --filter=[HEAD^]
- name: Build affected packages
run: pnpm run build --filter=[HEAD^]
- name: Verify cache hits
run: pnpm turbo run build --filter=[HEAD^] --dry-run | grep "Cache" # VALIDATE: Confirm cache hits for unchanged packages ```
- Remote cache setup:
```bash # Login to Vercel npx turbo login
# Link repository npx turbo link ``` See references/ci-cd.md for complete CI/CD setup examples.
Task Properties Reference
| Property | Description | Example | |
|---|---|---|---|
dependsOn | Tasks that must complete first | ["^build"] - dependencies first | |
outputs | Files/folders to cache | ["dist/**"] | |
inputs | Files for cache hash | ["src/**/*.ts"] | |
env | Environment variables affecting hash | ["DATABASE_URL"] | |
cache | Enable/disable caching | true or false | |
persistent | Long-running task | true for dev servers | |
outputLogs | Log verbosity | "full", "new-only", "errors-only" |
Dependency Patterns
^task- Run task in dependencies first (topological order)task- Run task in same package firstpackage#task- Run specific package's task
Filter Syntax
| Filter | Description | |
|---|---|---|
web | Only web package | |
web... | web + all dependencies | |
...web | web + all dependents | |
...web... | web + deps + dependents | |
[HEAD^] | Packages changed since last commit | |
./apps/* | All packages in apps/ |
Best Practices
Performance Optimization
- Use specific outputs - Only cache what's needed
- Fine-tune inputs - Exclude files that don't affect output
- Transit nodes - Enable parallel type checking
- Remote cache - Share cache across team/CI
- Package configurations - Customize per-package behavior
Caching Strategy
Task Organization
- Independent tasks - No
dependsOn: lint, format, spellcheck - Build tasks -
dependsOn: ["^build"]: build, compile - Test tasks -
dependsOn: ["build"]: test, e2e - Dev tasks -
cache: false, persistent: true: dev, watch
Common Issues
Tasks not running in order
Problem: Tasks execute in wrong order
Solution: Check dependsOn configuration
Cache misses on unchanged files
Problem: Cache invalidating unexpectedly
Solution: Review globalDependencies and inputs
Type errors after cache hit
Problem: TypeScript errors not caught due to cache
Solution: Use transit nodes for type checking
Examples
Example 1: Create New Workspace
Input: "Create a Turborepo with Next.js and NestJS"
Example 2: Configure Testing Pipeline
Input: "Set up Vitest for all packages"
Example 3: Run Affected Tests in CI
Input: "Only test changed packages in CI"
Example 4: Debug Cache Issues
Input: "Why is my cache missing?"
Constraints and Warnings
- Node.js 18+ is required for Turborepo
- Package manager field required in root
package.json - Outputs must be specified for caching to work
- Persistent tasks cannot have dependents
- Windows: WSL or Git Bash recommended
- Remote cache requires Vercel account or self-hosted solution
- Large monorepos may need increased
concurrencysettings
Reference Files
For detailed guidance on specific topics, consult:
| Topic | Reference File | |
|---|---|---|
| turbo.json template | references/turbo.json | |
| Next.js integration | references/nextjs-config.md | |
| NestJS integration | references/nestjs-config.md | |
| Vitest/Jest/Playwright | references/testing-config.md | |
| GitHub/CircleCI/GitLab CI | references/ci-cd.md | |
| Package configurations | references/package-configs.md |
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/developer-kit-typescript/skills/turborepo-monorepo/SKILL.md
Popularity
- Repository stars
- 249
- Repository forks
- 27
- 7-day trend score
- 28
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 20 May 2026, 5 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/giuseppe-trisciuoglio/developer-kit/turborepo-monorepo)