> turborepo
Assists with managing JavaScript/TypeScript monorepos using Turborepo. Use when configuring build pipelines, setting up caching, pruning workspaces for Docker, or optimizing CI/CD for monorepo projects. Trigger words: turborepo, turbo, monorepo, pipeline, workspace, remote cache, turbo.json.
curl "https://skillshub.wtf/TerminalSkills/skills/turborepo?format=md"Turborepo
Overview
Turborepo is a high-performance build system for JavaScript/TypeScript monorepos that intelligently caches task outputs, parallelizes execution across CPU cores, and ensures teams only rebuild what has changed. It integrates with npm, yarn, and pnpm workspaces.
Instructions
- When setting up a monorepo, define tasks in
turbo.jsonwithdependsOnfor ordering, use^prefix for topological dependencies (e.g.,"dependsOn": ["^build"]), and specifyoutputsfor cacheable artifacts. - When configuring caching, define
outputsarrays for each task (["dist/**", ".next/**"]), list all build-affecting environment variables inenvorglobalEnv, and set up Remote Cache for cross-developer sharing. - When filtering workspaces, use
--filter=@app/webto target specific packages,--filter=...[HEAD~1]for changed packages, andturbo run build --graphto visualize the dependency graph. - When optimizing Docker builds, use
turbo prune --scope=@app/webto generate a minimal Docker context containing only the targeted package and its dependencies. - When setting up CI/CD, enable Remote Cache for cross-PR cache sharing, use
--dry-run=jsonfor pipeline analysis, and leverage incremental builds that only rebuild packages affected by PR changes. - When organizing shared packages, create focused internal packages (
@repo/ui,@repo/db,@repo/auth) with sharedtsconfigand ESLint configs.
Examples
Example 1: Set up a new Turborepo monorepo
User request: "Initialize a monorepo with a Next.js app and shared UI library"
Actions:
- Set up pnpm workspace with
apps/webandpackages/uidirectories - Configure
turbo.jsonwithbuild,dev,lint, andtypechecktasks - Define task dependencies and cache outputs for each task
- Create shared
tsconfigbase inpackages/tsconfig
Output: A monorepo with parallel builds, intelligent caching, and shared configuration.
Example 2: Optimize Docker builds for deployment
User request: "Create a Dockerfile for deploying one service from our Turborepo monorepo"
Actions:
- Run
turbo prune --scope=@app/apito generate minimal context - Create multi-stage Dockerfile using the pruned output
- Install dependencies and build only the targeted package
- Configure cache mounts for faster rebuilds
Output: A lean Docker image containing only the service and its dependencies, not the full monorepo.
Guidelines
- Always define
outputsfor cacheable tasks; use emptyoutputs: []for side-effect-only tasks likelint. - List all environment variables in
envorglobalEnvthat affect build output. - Use
^prefix independsOnfor tasks that consume dependency outputs (build, typecheck). - Keep internal packages small and focused:
@repo/ui,@repo/db,@repo/auth. - Use
turbo prunefor Docker builds; never copy the entire monorepo into a container. - Set up Remote Cache in CI for cross-developer and cross-PR cache sharing.
> related_skills --same-repo
> zustand
You are an expert in Zustand, the small, fast, and scalable state management library for React. You help developers manage global state without boilerplate using Zustand's hook-based stores, selectors for performance, middleware (persist, devtools, immer), computed values, and async actions — replacing Redux complexity with a simple, un-opinionated API in under 1KB.
> zoho
Integrate and automate Zoho products. Use when a user asks to work with Zoho CRM, Zoho Books, Zoho Desk, Zoho Projects, Zoho Mail, or Zoho Creator, build custom integrations via Zoho APIs, automate workflows with Deluge scripting, sync data between Zoho apps and external systems, manage leads and deals, automate invoicing, build custom Zoho Creator apps, set up webhooks, or manage Zoho organization settings. Covers Zoho CRM, Books, Desk, Projects, Creator, and cross-product integrations.
> zod
You are an expert in Zod, the TypeScript-first schema declaration and validation library. You help developers define schemas that validate data at runtime AND infer TypeScript types at compile time — eliminating the need to write types and validators separately. Used for API input validation, form validation, environment variables, config files, and any data boundary.
> zipkin
Deploy and configure Zipkin for distributed tracing and request flow visualization. Use when a user needs to set up trace collection, instrument Java/Spring or other services with Zipkin, analyze service dependencies, or configure storage backends for trace data.