Contributing
We welcome contributions! Here is how to get started with the codebase.
Fork, clone, and branch
# Fork and clone the repo
git clone https://github.com/YOUR_USERNAME/wishpr.git
cd wishpr
# Create a branch
git checkout -b feature/your-feature
# Install dependencies
pnpm install
# Make your changes, then commit
git add .
git commit -m "feat: add your feature"
# Push and open a pull request
git push origin feature/your-featureProject Structure
app/ # Next.js App Router pages & API routes
components/ # React components (UI, 3D, features)
docs/ # Documentation components (sidebar, code blocks)
landing/ # Landing page sections
3d/ # Three.js / R3F components
lib/ # Shared utilities (db, config, crypto, validations)
scripts/ # Database migration scripts
public/ # Static assetsGuidelines
- Follow existing code patterns and conventions
- Use TypeScript with strict types
- Validate all inputs with Zod schemas
- Use parameterized queries for database operations
- Keep components small and focused
- Test your changes locally before submitting a PR
Good first issues
- Add new card themes to
lib/branding.ts - Improve accessibility (ARIA labels, keyboard navigation)
- Add message reactions or emoji support
- Create new 3D visual effects
- Write end-to-end tests