Thanks for your interest in contributing! This guide will help you get started.
- Fork the repository
- Clone your fork locally
- Install dependencies:
npm install - Copy
.env.exampleto.env.localand fill in your credentials (see Setup Guide) - Run the dev server:
npm run dev
- Create a branch from
main:git checkout -b feature/your-feature
- Make your changes
- Run checks before committing:
npm run build # Ensure it builds npx eslint src/ # Check for lint issues npx tsc --noEmit # Type check
- Commit with a clear message describing what and why
- Push to your fork and open a Pull Request
- Keep PRs focused on a single change
- Include a description of what changed and why
- Add screenshots for UI changes
- Ensure the build passes before requesting review
- Link related issues if applicable
- TypeScript for all source files
- Functional components with hooks (no class components)
- Use existing patterns in the codebase as a reference
- Keep components focused and reasonably sized
- Use
shadcn/uiprimitives for new UI elements
src/
app/ # Next.js routes and API endpoints
components/ # React components (organized by feature)
hooks/ # Custom React hooks
lib/ # Core libraries and utilities
providers/ # React context providers
stores/ # Zustand state stores
types/ # TypeScript type definitions
Open an issue with:
- Steps to reproduce
- Expected vs actual behavior
- Browser and OS info
- Screenshots if relevant
Open an issue tagged with enhancement. Describe the use case and proposed solution.
By contributing, you agree that your contributions will be licensed under the MIT License.