--- id: hairyf/skills/arch-tsdown-monorepo version: "fd48039a" license: MIT install: manual updated: 2026-06-10 --- # arch-tsdown-monorepo — This skill guides you through architecting a TypeScript monorepo using pnpm as your package manager and tsdown for efficient bundling. It combines proven patterns from the web development community with streamlined tooling to accelerate multi-package project setup. Publisher: hairyf · Stars: 24 · Updated: 2026-06-10 Install (manual): `git clone https://github.com/hairyf/skills` ## SKILL.md arch-tsdown-monorepo is a **pnpm monorepo** starter for TypeScript libraries (based on [hairyf/starter-monorepo](https://github.com/hairyf/starter-monorepo)). Each package uses **tsdown** for building. It provides shared tooling (ESLint, Vitest, TypeScript), **pnpm catalogs** for versions, **workspace dependencies**, and optional **npm Trusted Publisher** for CI-based releases. > The skill is based on hairyf/starter-monorepo, generated at 2026-02-02. **Recommended practices:** - Use pnpm catalogs for devDependency versions; reference with `catalog:cli`, `catalog:testing`, etc. - Use `workspace:*` for inter-package dependencies; publish once manually, then use npm Trusted Publisher for CI releases. - Run build/typecheck/test from root with `pnpm -r run ...` and a single Vitest config with projects (root + packages/*). ## Core References | Topic | Description | Reference | |-------|-------------|-----------| | Overview | Monorepo purpose, structure, when to use | [core-overview](references/core-overview.md) | | Workspace | pnpm workspace, catalogs, workspace:* deps | [core-workspace](references/core-workspace.md) | | Packages | Package layout, exports, inter-package deps | [core-packages](references/core-packages.md) | | Package Exports | Dual exports (dev vs publish), main/module/types, files, sideEffects | [core-package-exports](references/core-package-exports.md) | | tsdown (per package) | entry, dts, exports, publint | [core-tsdown-per-package](references/core-tsdown-per-package.md) | | Scripts | Root and package scripts — build, dev, typecheck, test, release | [core-scripts](references/core-scripts.md) | | Testing | Vitest projects — root + packages/* | [core-testing](references/core-testing.md) | | Tooling | ESLint, TypeScript, .gitignore, .vscode | [core-tooling](references/core-tooling.md) | | CI | GitHub Actions — lint, typecheck, test matrix | [core-ci](references/core-ci.md) | | Release | npm Trusted Publisher, bumpp, release workflow | [core-release](references/core-release.md) | | Git Hooks | simple-git-hooks, lint-staged, pre-commit | [core-git-hooks](references/core-git-hooks.md) | ## Features | Topic | Description | Reference | |-------|-------------|-----------| | Exports Snapshot | Per-package export snapshot tests (vitest-package-exports, runIf(IS_READY)) | [features-exports-snapshot](references/features-exports-snapshot.md) | | Add Package | Step-by-step adding a new workspace package | [features-add-package](references/features-add-package.md) | ## Best Practices | Topic | Description | Reference | |-------|-------------|-----------| | Monorepo | Catalogs, workspace deps, release, build order | [best-practices-monorepo](references/best-practices-monorepo.md) | [View on SkillFed](https://skillfed.io/hairyf/skills/arch-tsdown-monorepo) · [View on GitHub](https://github.com/hairyf/skills)