Thank you for your interest in contributing to Yapli! This guide will help you get started with the contribution process.
- Node.js 22+
- npm package manager
- Git
- Navigate to the Yapli repository
- Click the "Fork" button in the top right corner
- Select your GitHub account as the destination for the fork
git clone https://github.com/YOUR_USERNAME/yapli.git
cd yapli- Install dependencies:
npm install - Set up environment variables into
.env.local(see.env.example) - Start development server:
npm run dev
git checkout -b your-branch-name- Follow the code standards outlined in CLAUDE.md
- Write tests for new functionality
- Ensure your code passes linting:
npm run lintandnpm run build
git add .
git commit -m "feat: add your feature description"git push origin your-branch-name- Navigate to your fork on GitHub
- Click "New Pull Request"
- Select the base repository (tandemhub/yapli) and base branch (main)
- Select your fork and feature branch
- Fill out the pull request template
For detailed development standards, see CLAUDE.md.
/src/app- Next.js App Router pages and API routes/src/components- Reusable UI components (all components are located in this folder)/src/lib- Utility functions and shared logic/prisma- Database schema and migrations
| Route | Method | Input | Output |
|---|---|---|---|
/api/auth/register |
POST | { name?, email, password } |
{ user: { id, name, email } } |
/api/link-preview |
GET | ?url=<url> |
{ url, title, description, images, siteName, favicon, domain } |
/api/rooms |
GET | - | Array<{ id, roomUrl, title, createdAt, messageCount }> |
/api/rooms |
POST | { title } |
{ roomUrl, title } |
/api/rooms/check |
POST | { roomUrl } |
{ exists: boolean, roomUrl? } |
/api/rooms/[roomId] |
GET | - | { id, roomUrl, title, createdAt, messageCount, userId } |
/api/rooms/[roomId] |
DELETE | - | { success: boolean } |
/api/rooms/[roomId]/messages |
GET | - | Array<{ id, alias, message, timestamp }> |
/api/rooms/[roomId]/messages |
POST | { alias, message } |
{ id, alias, message, timestamp } |