Engineering rigor and clear communication form the basis of our collaboration.
Thank you for dedicating your time to improving AinzStack.
To maintain architectural integrity and codebase quality, all contributions must adhere to the following workflow:
Fork the repository and clone your fork locally. Ensure you meet the system prerequisites outlined in the README.md (Node.js v22+, pnpm v10+).
git clone https://github.com/[YOUR_USERNAME]/AinzStack.git
cd AinzStack
pnpm installNever commit directly to the main branch. Create a feature branch scoped to the specific issue or feature you are addressing.
git checkout -b feature/brief-description
# or
git checkout -b fix/issue-descriptionWhen modifying the codebase, adhere to these principles:
- Consistency: Match the existing architectural patterns (Next.js App Router conventions, Tailwind structure).
- TypeScript: Rely on strict typing. Avoid
anytypes. - Modularity: Keep UI components isolated within
src/components/ui/orsrc/components/shared/where applicable.
Before staging your changes, ensure they pass the overarching quality control suite. Our Continuous Integration checks require zero errors.
Run the validation suite locally:
pnpm ciAlternatively, run specific checks if you are isolating a failure:
| Command | Target |
|---|---|
pnpm lint |
Static code analysis |
pnpm typecheck |
TypeScript compiler validation |
pnpm test |
Unit testing (Vitest) |
pnpm test:e2e |
End-to-end testing (Playwright) |
We adhere strictly to Conventional Commits. This standard dictates the semantic versioning and changelog generation of the project.
Format:
<type>(<optional scope>): <description>
Permitted Types:
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the code (white-space, formatting, etc)refactor: A code change that neither fixes a bug nor adds a featuretest: Adding missing tests or correcting existing testschore: Changes to the build process or auxiliary tools and libraries
Example:
git commit -m "feat(auth): integrate multi-factor authentication layer"Push to your fork and submit a Pull Request to the main branch of the upstream repository.
- Keep the PR highly scoped. Giant monolithic PRs are difficult to review and prone to rejection.
- Fill out the PR template accurately.
- Ensure the CI pipeline is passing (green checkmark).
When integrating new logic, please respect the established boundaries:
src/app/api/: Edge and serverless routes. Do not place business logic directly in generic UI files.src/lib/: External service intialization (Supabase clients, Stripe configuration).src/actions/: Next.js Server Actions intended for form submissions and data mutation.
Built by JCFcodex and Contributors
