First off, thank you for taking the time to contribute! 🎉
This document provides detailed guidelines for contributing to the IntMoney landing page. Please read it carefully — these rules are non-negotiable for all contributions.
- Before You Start
- Development Workflow
- Commit Standards
- Code Structure
- Screen Recordings
- Git Hooks
- PR Checklist
- Issues & Labels
These rules must be followed. PRs that violate them will not be reviewed.
- Screen recording required for every PR with UI changes
- Conventional Commits for all commit messages
- Atomic commits — one logical change per commit
- No barrel exports — use direct file imports
- Atomic Design structure — place components in the correct hierarchy
Click the Fork button at github.com/int-money/landing-page to create your own copy.
git clone https://github.com/YOUR_USERNAME/landing-page.git
cd landing-pagegit checkout -b feat/issue-number-short-descriptionAll commits must follow the Conventional Commits specification:
<type>(<scope>): <description>
Types: feat, fix, docs, style, refactor, test, chore, perf, ci
Each commit must represent one logical change.
This project strictly follows Atomic Design principles.
components/atoms/components/molecules/components/organisms/components/templates/components/providers/components/ui/(do not modify shadcn components)
❌ Do NOT use barrel exports (index.ts).
✅ Always import directly:
import { Button } from "@/components/atoms/button";Every PR that includes UI changes must include a screen recording.
Accepted formats:
.mp4.mov.gif- Loom link
PRs without recordings for UI changes will not be reviewed.
# Clone your fork
git clone https://github.com/YOUR_USERNAME/landing-page.git
cd landing-page
# Install dependencies
pnpm install
# Copy environment variables
cp .env.example .env.local
# Start dev server
pnpm devThis project uses Husky and lint-staged to enforce code quality locally before code is committed or pushed.
Hooks are automatically installed after running:
pnpm installRuns only on staged files:
- ESLint with
--fixon.tsand.tsxfiles - Prettier with
--writeon staged files
This ensures formatting and lint issues are fixed before the commit is created.
Runs on the entire project:
- Full TypeScript type-check:
pnpm tsc --noEmit - Full lint run:
pnpm lint
If any errors are found, the push is blocked.
In rare emergency situations, hooks can be bypassed using:
git commit --no-verify
git push --no-verify⚠ This is strongly discouraged. Code that bypasses hooks may fail CI and will likely be rejected during review.
- Faster feedback than CI
- Prevents broken branches
- Saves CI minutes
- Keeps
mainclean and stable
Before submitting your PR, ensure:
-
pnpm lintpasses -
pnpm buildsucceeds - Commits follow Conventional Commits
- Each commit is atomic
- No
WIPcommits - Issue linked (e.g.,
Closes #18) - Screen recording attached (for UI changes)
If you have questions:
- Comment on the issue
- Open a discussion
- Check existing PRs for patterns
Thank you for contributing! 🚀