A React monorepo built with Turborepo that implements a design system using Bento components, Vite, TypeScript, and vanilla-extract for styling.
- Turborepo - High-performance build system for JavaScript/TypeScript monorepos
- Vite - Next generation frontend tooling
- esbuild - An extremely fast JavaScript/TypeScript bundler
- tsup - Bundle TypeScript libraries with no config
- PNPM - Fast, disk space efficient package manager
- React 18
- TypeScript 5
- @buildo/bento-design-system - A composable design system
- vanilla-extract - Zero-runtime CSS-in-TS
- ESLint - Pluggable linting utility
- TypeScript ESLint - TypeScript support for ESLint
.
├── packages/
│ ├── app/ # Main application
│ │ ├── src/
│ │ └── vite.config.ts
│ └── design-system/ # Shared design system
│ ├── src/
│ └── tsup.config.ts
├── package.json
├── pnpm-workspace.yaml
└── turbo.json
- Node.js 16 or higher
- PNPM installed globally (
npm install -g pnpm
)
- Clone the repository
git clone https://github.com/yourusername/gorlium-bento.git
cd gorlium-bento
- Install packages
pnpm install
- Start the development server
pnpm start
- Open your browser and navigate to
http://localhost:5173
- Create production builds
pnpm build
- The build outputs will be in:
packages/app/dist
for the main applicationpackages/design-system/dist
for the design system
pnpm start
- Start development servers (runs in parallel for all packages)pnpm build
- Build all packages for productionpnpm lint
- Run ESLint on all packages
The monorepo consists of the following packages:
- app: Main React application using Vite
- design-system: Shared design system built on Bento components
turbo.json
- Turborepo pipeline configurationpnpm-workspace.yaml
- PNPM workspace configurationtsconfig.json
- Base TypeScript configurationvite.config.ts
- Vite configuration for the main apptsup.config.ts
- tsup configuration for the design system
- The design system uses vanilla-extract for zero-runtime CSS-in-TS styling
- ESLint is configured with React Hooks and TypeScript rules
- Turborepo manages the build pipeline and caching
- Hot Module Replacement is enabled for development