A monorepo for the Forse Chart component library built with TypeScript, React, and Tailwind CSS.
@stablelab/forse-chart– Chart component library
Check out the package README for installation and usage instructions.
- Node.js 18+
- Yarn 4.5.0 (managed via Corepack)
# Install dependencies
yarn install# Build all packages
yarn build
# Watch mode for development (rebuilds on file changes)
yarn dev
# Watch mode with output sync (syncs to target project's node_modules for hot reload)
yarn dev /path/to/target-project
# Clean build artifacts
yarn clean
# Format code (prettier + eslint fix)
yarn format
# Run all tests (prettier, syncpack, lint)
yarn testThe dev script runs in watch mode, automatically rebuilding when source files change:
- Basic watch:
yarn dev- Files stay in package directories - With output sync:
yarn dev /path/to/target-project- Syncs build outputs to the target project'snode_modules/@stablelab/forse-chartfolder for hot reload during development (thenode_modulespath is automatically appended)
Example:
# Sync to a Next.js project (automatically syncs to node_modules)
yarn dev /Users/username/my-project/frontendThe watch mode uses Rollup's built-in watch API for efficient incremental rebuilds. Output syncing only runs in development environments and uses rsync (when available) for fast incremental file updates.
forse-chart-lib/
├── packages/
│ └── @stablelab/
│ └── forse-chart/ # Chart component library package
├── scripts/ # Build and release scripts
├── .github/ # GitHub workflows
└── package.json # Root package.json
- TypeScript – Type safety and better developer experience
- React – UI component framework
- Tailwind CSS – Utility-first styling
- Rollup – Module bundler
- ESLint – Code linting
- Prettier – Code formatting
- Make your changes in the appropriate package
- Run
yarn formatto format your code - Run
yarn testto ensure all checks pass - Build with
yarn buildto verify the build works - Commit your changes (commitlint will validate your commit message)
This project uses Conventional Commits. Commit messages are validated using commitlint with Husky hooks.
Example commit messages:
feat: add new chart component
fix: resolve tooltip positioning issue
docs: update README
chore: update dependencies
UNLICENSED - Internal use only