Welcome to the Uniform Component Starter Kit (CSK6) monorepo! This repository contains multiple packages and applications designed to streamline the development workflow with Next.js 15 App Router, TailwindCSS, and TypeScript. It is powered by Turborepo to ensure efficient builds and optimized package management.
.github/ # GitHub Actions for CI/CD
└── workflows/ # Automated workflows for package publishing
.husky/ # Pre-commit hooks to enforce linting rules
apps/
├── csk/ # Main Next.js 15 App Router application
├── csk-marketing-site/ # Marketing site project with component catalog
└── csk-storybook/ # Interactive environment for visually testing UI components
packages/
├── csk-cli/ # CLI tool for project setup and automation
├── csk-components/ # Component library for building UI
├── csk-recipes/ # Predefined recipes for integrating features
├── design-extensions-tools/ # Utilities for design extension integration
├── eslint-config/ # Shared ESLint configuration
└── typescript-config/ # Shared TypeScript configuration
.gitignore # Ignoring unnecessary files
.npmrc # NPM registry settings
.prettierrc.js # Prettier formatting rules
commitlint.config.mjs # Commit message validation
package-lock.json # Lock file for dependencies
package.json # Root package configuration
README.md # You're reading it now!
turbo.json # Turborepo configuration
Ensure you have Node.js 20+ installed, then run:
npm install
Fill in the .env
file inside apps/csk
with the required settings before running the application.
Run the following command to ensure everything is set up correctly:
npm run build
Navigate to the application directory and start the server:
cd apps/csk
npm run dev
To build all packages and applications:
npm run build
This monorepo enforces consistent code quality using ESLint and Prettier. Run:
npm run lint
This repository includes GitHub Actions for NPM package publishing. This shoud be run manually on github actions.
We use Husky to enforce linting and commit message validation:
- Linting: Runs on every commit to ensure consistent code quality.
- Commit Message Validation: Enforces proper commit messages to follow best practices.
If a commit message does not follow the required format, it will be rejected.