Contributing to Shaddy is a great way to improve the library for the entire community. This page covers everything you need to go from a fresh fork to a merged pull request — including environment setup, the monorepo layout, commit message conventions enforced by Commitlint, and the PR review process.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/rijvi-mahmud/shaddy/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Make sure the following tools are installed before you begin:- Node.js >= 20 — enforced by the root
package.jsonenginesfield - pnpm — Shaddy uses pnpm workspaces for monorepo dependency management. Install it via:
Setting Up the Development Environment
Fork the repository
Head to github.com/rijvi-mahmud/shaddy and click Fork to create your own copy of the repository under your GitHub account.
Install dependencies
Install all workspace dependencies from the repo root. pnpm will resolve packages for every app and package in the monorepo in a single pass:
Create a feature branch
Never commit directly to Use the same type prefix in your branch name as in your commit messages (e.g.
main. Create a dedicated branch named after your feature or fix:feat/, fix/, docs/).Monorepo Layout
Shaddy is a Turborepo monorepo managed with pnpm workspaces. Understanding where things live will help you make changes in the right place.- Add the source file under
apps/web/src/registry/default/ - Register it in the appropriate
registry-*.tsfile - Add an MDX documentation page in
apps/content/
Making Changes
- Match the existing code style in whichever file you are editing.
- Write clear, focused commits — one logical change per commit.
- Update or add documentation for any new component, hook, or utility you introduce.
- Add usage examples when contributing new registry items.
Linting and Formatting
Run both checks before pushing your branch. Husky and lint-staged enforce these automatically on each commit, but it is good practice to run them manually first:Commit Message Format
Shaddy enforces Conventional Commits via Commitlint. Every commit message must follow this format:add password strength indicator, not Added password strength indicator.).
Examples:
All supported commit types
All supported commit types
| Type | When to use |
|---|---|
feat | A new feature or registry item |
fix | A bug fix in existing code |
docs | Documentation-only changes (MDX pages, READMEs) |
style | Whitespace, formatting, or punctuation — no logic changes |
refactor | Code restructuring that neither adds a feature nor fixes a bug |
perf | A change that improves performance |
test | Adding or correcting tests |
chore | Build process, dependency updates, tooling configuration |
Submitting a Pull Request
Open a pull request against `main`
Go to your fork on GitHub and click Compare & pull request. Set the base branch to
main on rijvi-mahmud/shaddy.Fill out the PR template
Describe what your PR changes, why the change is needed, and how to test it. Include screenshots or a short demo for visual changes.
Need Help?
- Browse the README for a high-level project overview.
- Open a GitHub Issue with questions, bug reports, or feature suggestions.
Shaddy follows the Contributor Covenant Code of Conduct v2.1. All contributors are expected to be respectful and considerate in every interaction. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported directly to the project maintainers.