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-feature

Project 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 assets

Guidelines

  • 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