AI-powered code reviews that catch bugs, security issues, and maintainability problems before they reach production.
- π€ AI-Powered Code Review - Automated code analysis using multiple AI providers (OpenAI, Google Gemini, Groq, Hugging Face)
- π GitHub Integration - Seamlessly connect your GitHub repositories and review pull requests
- π₯ Team Collaboration - Work together with team members on code reviews with real-time features
- π Analytics Dashboard - Track review metrics, code quality trends, and team performance
- π Automatic Diagrams - Generate ERD, Class, and Use-Case diagrams from your codebase (supports Prisma, TypeORM, Sequelize, Drizzle, Mongoose, Knex, SQL DDL)
- β‘ Real-time Updates - Live notifications and collaborative review features via Pusher
- π¨ Modern UI - Beautiful, responsive interface with dark mode support
- π Rate Limiting - Built-in protection against abuse using Upstash Redis
- π§ Email Notifications - Stay updated with review status via Resend
| Category | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Database | PostgreSQL with Prisma ORM |
| API | tRPC v11 |
| Authentication | Better Auth |
| AI Providers | OpenAI, Google Gemini, Groq, Hugging Face |
| Real-time | Pusher |
| Background Jobs | Inngest |
| Rate Limiting | Upstash Redis |
| Styling | Tailwind CSS + shadcn/ui |
| Animations | GSAP |
| Resend |
- Node.js 18+
- PostgreSQL database
- pnpm (recommended) or npm/yarn
- Clone the repository
git clone https://github.com/yourusername/depi-code-review.git
cd depi-code-review- Install dependencies
pnpm install
# or
npm install- Configure environment variables
Create a .env file in the root directory:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/depireview?schema=public"
# Authentication (Better Auth)
BETTER_AUTH_SECRET="your-secret-key"
BETTER_AUTH_URL="http://localhost:3000"
# GitHub OAuth
GITHUB_CLIENT_ID="your-github-client-id"
GITHUB_CLIENT_SECRET="your-github-client-secret"
# AI Providers (at least one required)
OPENAI_API_KEY="sk-..."
GOOGLE_GENERATIVE_AI_API_KEY="..."
GROQ_API_KEY="..."
HUGGING_FACE_API_KEY="..."
# Real-time (Pusher)
PUSHER_APP_ID="your-pusher-app-id"
PUSHER_KEY="your-pusher-key"
PUSHER_SECRET="your-pusher-secret"
PUSHER_CLUSTER="us2"
# Rate Limiting (Upstash Redis)
UPSTASH_REDIS_REST_URL="https://your-redis.upstash.io"
UPSTASH_REDIS_REST_TOKEN="your-token"
# File Upload (Vercel Blob)
BLOB_READ_WRITE_TOKEN="your-vercel-blob-token"
# Email (Resend)
RESEND_API_KEY="re_..."- Initialize the database
npx prisma db push- Run the development server
pnpm devOpen http://localhost:3000 in your browser.
src/
βββ app/ # Next.js App Router pages
β βββ (auth)/ # Authentication pages (sign-in, sign-up)
β βββ (dashboard)/ # Protected dashboard pages
β βββ api/ # API routes
β β βββ auth/ # Authentication endpoints
β β βββ trpc/ # tRPC API
β β βββ webhooks/ # GitHub webhooks
β β βββ upload/ # File upload handling
β β βββ pusher/ # Pusher authentication
β β βββ inngest/ # Inngest functions
β βββ page.tsx # Landing page
βββ components/ # React components
β βββ ui/ # shadcn/ui components
β βββ animations/ # GSAP animations
β βββ *.tsx # Feature components
βββ lib/ # Utility functions
β βββ trpc/ # tRPC client setup
β βββ pusher/ # Pusher client
βββ server/ # Server-side code
βββ api/
β βββ routers/ # tRPC routers
β βββ rate-limiter/ # Rate limiting
βββ auth/ # Authentication config
βββ db/ # Prisma client
βββ services/ # Business logic (AI, GitHub)
βββ email/ # Email templates
βββ inngest/ # Inngest functions
βββ pusher/ # Pusher server
| Router | Description |
|---|---|
repository |
Repository management |
review |
Code review operations |
pullRequest |
Pull request handling |
team |
Team management |
analytics |
Review analytics |
profile |
User profile |
settings |
User settings |
notification |
Notifications |
collaboration |
Real-time collaboration |
- GitHub Webhooks (
/api/webhooks/github) - Receive events from GitHub
pnpm dev # Start development server
pnpm build # Build for production
pnpm start # Start production server
pnpm lint # Run ESLint| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
Yes | PostgreSQL connection string |
BETTER_AUTH_SECRET |
Yes | Secret for session encryption |
BETTER_AUTH_URL |
Yes | Production URL |
GITHUB_CLIENT_ID |
Yes | GitHub OAuth app client ID |
GITHUB_CLIENT_SECRET |
Yes | GitHub OAuth app client secret |
OPENAI_API_KEY |
No* | OpenAI API key |
GOOGLE_GENERATIVE_AI_API_KEY |
No* | Google Gemini API key |
GROQ_API_KEY |
No* | Groq API key |
HUGGING_FACE_API_KEY |
No* | Hugging Face API key |
PUSHER_* |
Yes | Pusher configuration |
UPSTASH_REDIS_* |
Yes | Upstash Redis for rate limiting |
BLOB_READ_WRITE_TOKEN |
No | Vercel Blob for file uploads |
RESEND_API_KEY |
No | Resend for emails |
*At least one AI provider API key is required.
- Push your code to GitHub
- Import the project in Vercel
- Configure environment variables
- Deploy
FROM node:18-alpine
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable pnpm && pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
EXPOSE 3000
CMD ["pnpm", "start"]MIT License - see LICENSE for details.
Built with β€οΈ by Mohamed Reda