Skip to content

tutods/lib

Repository files navigation

TutoDS Lib

Stargazers Forks License

🔄 CI/CD Status

Code Check Commit Lint Release PR Release

A collection of reusable packages, configurations, and components for web development projects.


Table of Contents

📄 Goal

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.

What you will find

This monorepo currently contains four publishable packages: three shared configuration packages and one React component package.

biome typescript renovate components

Each package is designed to be lightweight, well-documented, and easy to integrate into your projects.

📦 Packages

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

🛠 Development

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

Getting Started

# 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 lint

🔄 CI/CD

This monorepo uses automated workflows for continuous integration and deployment:

Workflows

  • 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

Release Process

This project uses automated releases powered by NX Release and Conventional Commits:

  1. Push to main with conventional commits (feat, fix, docs, etc.)
  2. Release PR is automatically created with version bumps and changelogs
  3. Review and merge the release PR
  4. Packages are published to npm automatically
  5. Git tags are created (@tutods/package@version)
  6. GitHub releases are created with changelogs

For detailed information, see Release Documentation.

📥 Installation

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-config

The 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.

👥 Contributing

Contributions are welcome! If you'd like to contribute:

  1. Fork the repository
  2. Create your feature branch (git checkout -b feat/amazing-feature)
  3. Commit your changes using Conventional Commits (git commit -m "feat: add amazing feature")
  4. Push to the branch (git push origin feat/amazing-feature)
  5. Open a Pull Request

Please make sure to update tests as appropriate and follow the existing code style.

🔗 More About Me

GitHub linkedin twitter instagram

About

Monorepo to store my packages and configs, like Biome config., TypeScript config., and certain packages that can be used across multiple projects

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors