First off, thanks for taking the time to contribute! 🎉
The following is a set of guidelines for contributing to Celebra-me.com, which is hosted on GitHub. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
This section guides you through submitting a bug report for Celebra-me.com. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior, and find related reports.
Before creating a bug report, please check if the issue has already been reported by searching the issues. When you create a bug report, provide as much detail as possible.
This section guides you through submitting an enhancement suggestion for Celebra-me.com, including completely new features and minor improvements to existing functionality. When you are creating an enhancement suggestion, please include as much detail as possible.
The process described here has several goals:
- Maintain Celebra-me.com's quality.
- Fix problems that are important to users.
- Engage the community in working toward the best possible product.
Please follow these steps to have your contribution considered by the maintainers:
- Fork the repository.
- Create a branch from the
mainbranch for your feature (git checkout -b feature-name).[!IMPORTANT] Direct commits to the
mainbranch are blocked by a Git hook. Always use a feature branch. - Make your changes, ensuring that you follow the coding style guidelines (below).
- Commit your changes (
git commit -m 'feat: add some feature').[!NOTE] We use Conventional Commits with a required scope. See
docs/core/git-governance.mdfor the full commit policy, including atomic-commit expectations and commit-body guidance. - Push to the branch (
git push origin feature-name).[!TIP] A
pre-pushhook runs audit-only commit validation so you can review commit-quality warnings before opening a pull request. - Create a new pull request, following the pull request template provided.
[!NOTE] This project uses Husky and lint-staged to ensure code quality. A pre-commit hook blocks direct commits to protected branches and runs staged-file checks before the commit is created.
Please follow these coding standards:
- Code Formatting: Use Prettier for code formatting. The configuration is already set up in
.prettierrc.mjs. - Linting: Use ESLint for identifying and reporting on patterns in JavaScript. The configuration
is already set up in
eslint.config.js(ESLint flat config). - Type Safety: Ensure type safety with TypeScript.
- Commit Messages: Follow the commit policy in
docs/core/git-governance.md.
To set up the development environment:
-
Ensure you have the latest LTS version of Node.js installed.
-
Use pnpm as the package manager. Install pnpm if you don't have it installed:
pnpm install -g pnpm
-
Clone the repository:
git clone https://github.com/fm-dev-mx/celebra-me.git cd celebra-me -
Install dependencies:
pnpm install
-
Run the development server:
pnpm dev
Before submitting a pull request, ensure:
-
All tests pass:
pnpm test -
Coverage is maintained — New code should have tests where appropriate. Run coverage to verify:
pnpm test -- --coverage -
Linting passes:
pnpm lint
-
Types are valid:
pnpm type-check
For detailed testing guidelines, see
docs/core/testing-strategy.md.
Thank you for considering contributing to Celebra-me.com! Your contributions help make it an even better platform for creating beautiful, personalized digital invitations.