A design system monorepo with automated publishing via Changesets.
This Turborepo includes the following:
@ai-tui/docs: Documentation site powered by Next.js (deployed to Vercel)@ai-tui/core: Core React components (published to npm)@ai-tui/components: Shared React utilities (published to npm)@ai-tui/tsconfig: Sharedtsconfig.jsons used throughout the monorepo (private)
Each package and app is 100% TypeScript.
ai-tui/
├── apps/
│ └── docs/ # @ai-tui/docs - Next.js documentation site
├── packages/
│ ├── core/ # @ai-tui/core - Core React components
│ ├── components/ # @ai-tui/components - Shared React utilities
│ └── tsconfig/ # @ai-tui/tsconfig - Shared TypeScript configs
This Turborepo has some additional tools already setup for you:
- TypeScript for static type checking
- Biome for code linting and formatting (via Ultracite)
- Changesets for versioning and publishing
pnpm build- Build all packages and the docs sitepnpm dev- Develop all packages and the docs sitepnpm check- Lint all packagespnpm fix- Fix linting issuespnpm changeset- Generate a changesetpnpm clean- Clean up allnode_modulesanddistfolders
Package publishing has been configured using Changesets. Please review their documentation to familiarize yourself with the workflow.
This repo includes automated npm releases via GitHub Actions. To get this working, you will need to:
- Create an
NPM_TOKENsecret in your repository settings - Optionally install the Changesets bot on your GitHub repository
- Make changes to packages
- Run
pnpm changesetto create a changeset describing your changes - Commit and push to
main - GitHub Actions will create a "Version Packages" PR
- Merge the PR to publish to npm
Packages are published to the public npm registry under the @ai-tui scope:
@ai-tui/core- Core React components@ai-tui/components- Shared React utilities
To publish packages to a private npm organization scope, remove the following from each of the package.json's:
- "publishConfig": {
- "access": "public"
- },The docs app (@ai-tui/docs) is configured for deployment on Vercel:
- Framework: Next.js
- Root Directory:
apps/docs - Build Command:
cd ../.. && pnpm turbo run build --filter=@ai-tui/docs - Install Command:
cd ../.. && pnpm install