Skip to content

Analyzes your public GitHub repos with AI to generate a developer persona, strengths, and tech stack summary.

Notifications You must be signed in to change notification settings

arasovic/gitwho

Repository files navigation

GitHub Profile Analyzer

Analyzes your GitHub profile and generates a developer persona using AI. Signs in with GitHub OAuth, pulls your public repos and dependency files, then feeds everything to an LLM to produce a seniority score, tech stack summary, strengths, and blind spots.

Stack

  • Next.js 16 (App Router, Server Actions)
  • Auth.js v5 (NextAuth) with GitHub OAuth
  • PostgreSQL + Drizzle ORM
  • Vercel AI SDK + OpenAI
  • Tailwind CSS v4 + shadcn/ui

Prerequisites

GitHub OAuth AppCreate one here

  • Homepage URL: http://localhost:3542
  • Callback URL: http://localhost:3542/api/auth/callback/github
  • Grab the Client ID and Client Secret

OpenAI API KeyGet one here

PostgreSQL Database — Local install or a hosted provider like Neon

Setup

git clone https://github.com/arasovic/gitwho.git
cd gitwho
npm install

Copy .env.example to .env.local and fill in your values:

DATABASE_URL="postgresql://user:password@host:5432/dbname"
AUTH_SECRET="generate-with-npx-auth-secret"
GITHUB_CLIENT_ID="your-client-id"
GITHUB_CLIENT_SECRET="your-client-secret"
OPENAI_API_KEY="sk-..."

Generate AUTH_SECRET:

npx auth secret

Push the database schema and start the dev server:

npx drizzle-kit push
npm run dev

Open http://localhost:3542, sign in with GitHub, and hit analyze.

How It Works

  1. User signs in via GitHub OAuth (read-only, public repos only)
  2. Server fetches top 10 repos + key files (package.json, go.mod, requirements.txt, README.md)
  3. Data is sanitized and sent to OpenAI for structured analysis
  4. Result is stored in PostgreSQL and displayed as a persona card

Scripts

npm run dev              # Start dev server on port 3542
npm run build            # Production build
npm run db:clear         # Truncate all tables
npm run db:clear-user -- user@email.com  # Delete a specific user and all their data
npx drizzle-kit studio   # Browse database with Drizzle Studio

Deployment

Works out of the box on Vercel. Set the environment variables in your project settings after import.

  • DATABASE_URL should point to a connection pooler (e.g., Neon pooled connection string)
  • SSL is enforced automatically in production builds

License

MIT

About

Analyzes your public GitHub repos with AI to generate a developer persona, strengths, and tech stack summary.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published