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/distfor the main applicationpackages/design-system/distfor 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