Skip to content

About

AI-powered guide to your very first open source contribution

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

🚀 First PR Concierge

Your AI-powered guide to your very first open source contribution

Next.js TypeScript Tailwind CSS Gemini AI License: MIT


😰 The Problem: "The Wall of Code"

You open a popular repo. There are 847 open issues. You filter by "good first issue." Still 143 issues. You read the first one and immediately feel like you need a PhD. You close the tab. You tell yourself maybe tomorrow.

Sound familiar? That cycle ends today.


✨ What First PR Concierge Does

First PR Concierge bridges the gap between a confusing GitHub issue list and a confident developer. It's your personal AI matchmaker for open source contributions.

Feature Description
🔍 Smart Profile Analysis Paste your GitHub URL — we analyze your repos, languages, and coding patterns
🎯 Skill-Matched Issues Our AI maps your stack to real "Good First Issues" from top repos
🧠 AI Issue De-mystifier Click any issue for a 3-step newbie-friendly roadmap (powered by Gemini)
💜 Encouragement Engine Get a personalized AI pep talk before you submit your PR

🎬 Demo

🔗 Live App: first-pr-concierge.vercel.app

How it works in 60 seconds:

  1. Paste your GitHub profile URL
  2. Watch as we analyze your skills in real-time
  3. Browse your perfectly matched issues
  4. Click any issue → get an AI-generated roadmap
  5. Get your personalized pep talk → ship your PR! 🎉

🛠️ Tech Stack

Frontend    → Next.js 15 (App Router) + TypeScript
Styling     → Tailwind CSS v4 + shadcn/ui + Framer Motion
AI          → Google Gemini 1.5 Flash
Data        → GitHub REST API v3
Hosting     → Vercel

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • A GitHub account
  • A Google AI Studio account (free)

1. Clone the Repository

git clone https://github.com/yourusername/first-pr-concierge.git
cd first-pr-concierge

2. Install Dependencies

npm install

3. Set Up Environment Variables

cp .env.example .env.local

Open .env.local and fill in your keys:

# GitHub Token (optional but recommended for higher rate limits)
# Get yours at: https://github.com/settings/tokens
GITHUB_TOKEN=your_github_pat_here

# Gemini AI API Key (required for AI features — it's FREE!)
# Get yours at: https://aistudio.google.com/app/apikey
GEMINI_API_KEY=your_gemini_key_here

4. Run the Development Server

npm run dev

Open http://localhost:3000 🎉


📁 Project Structure

first-pr-concierge/
├── app/
│   ├── page.tsx                    # 🏠 Landing page with animated hero
│   ├── layout.tsx                  # Root layout with metadata
│   ├── globals.css                 # Custom styles + animations
│   ├── analyze/[username]/
│   │   └── page.tsx               # 🔬 Analysis + issue matching page
│   └── api/
│       ├── github/route.ts        # GitHub profile + language analysis
│       ├── issues/route.ts        # Good First Issue fetching + matching
│       ├── demystify/route.ts     # 🧠 AI Issue De-mystifier (Gemini)
│       └── pep-talk/route.ts      # 💜 AI Encouragement Engine (Gemini)
├── components/
│   ├── AnimatedBackground.tsx     # Canvas star field + orb effects
│   ├── ProfileInput.tsx           # GitHub URL input with validation
│   ├── ProfileCard.tsx            # User profile display card
│   ├── SkillBars.tsx              # Animated language skill bars
│   ├── IssueCard.tsx              # Individual issue card
│   ├── RoadmapModal.tsx           # AI roadmap modal dialog
│   ├── PepTalkModal.tsx           # Encouragement engine modal
│   └── LoadingState.tsx           # Skeleton loading state
└── lib/
    └── utils.ts                   # Shared utilities + helpers

🧠 How the AI Works

Issue De-mystifier

When you click an issue, we send the issue title, body, and your skill profile to Gemini 1.5 Flash. It returns:

  1. 📁 Where to Look — Specific folders and files in the repository
  2. ⚙️ What to Change — The exact logic or component that needs modification
  3. 🧪 How to Test — Commands to verify your changes work

Encouragement Engine

Before you hit "Contribute," our AI generates a personalized pep talk using your:

  • GitHub username
  • Top languages
  • Repository count & stars
  • Skill level assessment

The result? A custom message that makes you feel seen, capable, and excited to code.


🎨 UI Features

  • Animated star field — Canvas-based particle system
  • Glassmorphism cards — Frosted glass effect with backdrop blur
  • Framer Motion animations — Smooth page transitions and stagger effects
  • Responsive design — Works beautifully on mobile and desktop
  • Dark-first — No eye strain, just vibes

🚢 Deploy to Vercel

npm install -g vercel
vercel --prod

Add your environment variables in the Vercel dashboard under Settings → Environment Variables.


🤝 Contributing

This project was built with ❤️ for developers who want to contribute but don't know where to start. We welcome contributions!

  1. Fork the repo
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request 🎉

📄 License

MIT License — see LICENSE for details.


🙏 Acknowledgments


Built with ❤️ for the open source community

Your first PR is waiting. Go ship it! 🚀

About

AI-powered guide to your very first open source contribution

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages