GitBeat is a web application that transforms GitHub repositories into music. Analyze your code repository and generate unique beats based on its structure, contributors, and development patterns.
- Repository Analysis: Deep analysis of GitHub repositories including contributor statistics, language breakdown, and project health metrics
- AI-Powered Music Generation: Uses Suno AI to create custom beats based on repository analysis
- Interactive Leaderboard: Vote for your favorite generated beats and see popularity rankings
- Contributor Insights: AI-generated personality profiles for repository contributors
- Responsive Design: Works seamlessly on desktop and mobile devices
- Frontend: Next.js 15 with React 19, TypeScript
- Styling: Tailwind CSS v4, shadcn/ui components
- Database: Supabase (PostgreSQL)
- AI Services:
- Dust.tt for repository analysis
- OpenAI Agent to analyze the repo using the GitHub MCP
- Lovable Front-end and design iteration
- Suno AI for music generation
- APIs: GitHub API for repository data
- Node.js 18+ or Bun
- Supabase account and project
- Dust.tt API access
- Suno AI API access
Create a .env.local file in the frontend directory:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
SUPABASE_SERVICE_ROLE_KEY=your_supabase_service_role_key
DUST_API_KEY=your_dust_api_key
DUST_WORKSPACE_ID=your_dust_workspace_id
SUNO_API_TOKEN=your_suno_api_token
OPENAI_API_KEY=your_openai_api_key- Clone the repository:
git clone <repository-url>
cd gitbeat- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install
# or
bun install- Set up the database schema using the provided SQL file:
# Run the contents of supabase-schema.sql in your Supabase SQL editor- Start the development server:
npm run dev
# or
bun dev- Open http://localhost:3000 in your browser.
- Navigate to the "Beats" tab
- Enter a GitHub repository URL
- Click "Analyze" to start the process
- Wait for AI analysis and music generation to complete
- Your generated beat will appear in the leaderboard
- Switch to the "Analysis" tab
- Enter a GitHub repository URL
- Choose between "Professional" or "Fun" analysis tone
- Click "Analyze Repository" to get detailed insights
- View contributor statistics, language breakdown, and AI-generated team insights
- Click the upvote button on any beat to increase its popularity
- Beats are ranked by upvote count
- Real-time animations show ranking changes
- Play/pause any beat directly from the leaderboard
GET /api/songs- Fetch all songsPOST /api/songs/upload- Upload a new songPOST /api/songs/ai-generated- Save AI-generated songPOST /api/songs/[id]/upvote- Upvote a song
POST /api/suno/generate- Generate music with Suno AIGET /api/suno/status/[taskId]- Check generation statusPOST /api/suno/callback- Suno webhook callback
POST /api/dust/conversation- Analyze repository with Dust.ttPOST /api/analyze-contributors- Get contributor insights
frontend/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── lib/ # Utility libraries
│ ├── hooks/ # Custom React hooks
│ ├── types/ # TypeScript type definitions
│ └── utils.ts # Utility functions
└── public/ # Static assets
- Music Generation Flow: Handles repository analysis to music generation pipeline
- Leaderboard: Interactive voting system with real-time updates
- Repository Analysis: GitHub data fetching and AI-powered insights
- Polling System: Manages async music generation status
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License.

