A collection of reusable packages, configurations, and components for web development projects.
This monorepo stores reusable packages used across my projects, including shared configs and React components. These packages keep project setup consistent and reduce repeated boilerplate.
This monorepo currently contains four publishable packages: three shared configuration packages and one React component package.
Each package is designed to be lightweight, well-documented, and easy to integrate into your projects.
To learn more about each package, read the README.md file inside each package folder:
- Biome Config - Comprehensive configuration for Biome linter and formatter, ensuring consistent code style across projects
- TypeScript Config - TypeScript configurations for different project types with sensible defaults and strict type checking
- Renovate Config - Shared Renovate preset with automerge policies, security scanning, and digest pinning
- Components - Small React helper components for conditional rendering and composition
- Adding Packages Guide — How to add a new publishable package to the monorepo
This monorepo uses:
- Nx for managing the monorepo
- pnpm as the package manager
- Biome for linting and formatting
- Conventional Commits for release automation
- GitHub Actions for CI/CD automation
# Clone the repository
git clone https://github.com/tutods/lib.git
cd lib
# Install dependencies
pnpm install
# Build all packages
pnpm build
# Lint all files
pnpm lintThis monorepo uses automated workflows for continuous integration and deployment:
- Code Check - Runs Biome linting on every pull request
- Commit Lint - Validates commit messages follow conventional commits
- Release PR - Automatically creates release PRs when you push to main
- Release - Publishes packages to npm when release PR is merged
This project uses automated releases powered by NX Release and Conventional Commits:
- Push to main with conventional commits (feat, fix, docs, etc.)
- Release PR is automatically created with version bumps and changelogs
- Review and merge the release PR
- Packages are published to npm automatically
- Git tags are created (
@tutods/package@version) - GitHub releases are created with changelogs
For detailed information, see Release Documentation.
Install the packages you need. Runtime packages go in dependencies; config packages usually go in devDependencies.
# React components
pnpm add @tutods/components
# Shared configs
pnpm add -D @tutods/biome-config @tutods/typescript-configThe Renovate preset is best consumed directly from the repository with github>tutods/lib//configs/renovate-config/default; see the Renovate package README for details.
Check each package's README for specific installation and usage instructions.
Contributions are welcome! If you'd like to contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feat/amazing-feature) - Commit your changes using Conventional Commits (
git commit -m "feat: add amazing feature") - Push to the branch (
git push origin feat/amazing-feature) - Open a Pull Request
Please make sure to update tests as appropriate and follow the existing code style.