A modern, full-stack SvelteKit 5 app for exploring and analyzing open-source GitHub developers. Features AI-powered profile breakdowns, dynamic dashboards, and fast edge-deployed serverless functions—all in a single monorepo, ready for Vercel.
- Tech Stack
- Features
- Getting Started
- Architecture
- Deploying to Vercel
- Customization & Improvements
- License
- Frontend: SvelteKit 5, TypeScript, TailwindCSS
- Backend API: SvelteKit API Routes (+server.ts)
- Database: Neon (PostgreSQL) via Drizzle ORM
- Charts: Chart.js
- Hosting: Vercel (frontend + backend together)
- 🔍 GitHub Profile Analyzer: Input a GitHub username to fetch language stats, repo activity, and top contributions using GitHub’s GraphQL API.
- 📊 Live Dev Dashboard: Interactive graphs showing commit frequency, language breakdowns, and repo metrics.
- 🛡️ Backend Logic:
- API rate limiting
- Data caching (Postgres)
- Server-side validation
- 🧩 Full-Stack in One Codebase: Unified SvelteKit project—no separate frontend/backend repos.
git clone <your-repo-url>
cd <repo-folder>npm installCreate a .env file in the project root:
DATABASE_URL=postgresql://<user>:<password>@<host>:<port>/<database>
GITHUB_TOKEN=ghp_xxx... # (GitHub personal access token)- Get your Neon/Postgres connection string from the Neon dashboard.
- Create a GitHub personal access token at https://github.com/settings/tokens (no scopes needed for public data).
npx drizzle-kit pushnpm run devVisit http://localhost:5173/dashboard to use the dashboard.
graph TD;
A[Routes & Pages] -->|UI| B[Components]
B -->|State| C[Stores]
B -->|API| D[API Abstraction]
D -->|Types| E[Types]
D -->|Helpers| F[Utils]
D -->|DB| G[(Database)]
B -->|Styles| H[Styles]
Folder Structure:
src/
lib/
components/ # Reusable UI components
api/ # API abstraction layer
stores/ # Svelte stores (state management)
utils/ # Utility functions/helpers
types/ # TypeScript types/interfaces
styles/ # Shared/global styles
routes/ # SvelteKit routes (pages, endpoints)
- Separation of concerns: UI, state, API, and types are modular.
- Reusable logic: All business logic and helpers are in
lib/. - Type safety: All API and component data is typed.
- Push your code to GitHub.
- Import your repo at vercel.com.
- Set
DATABASE_URLandGITHUB_TOKENin the Vercel dashboard (Project Settings → Environment Variables). - Deploy!
- Add more analytics (commit frequency, PRs, etc.)
- Add cache cleanup (remove expired rows from
github_cache) - Polish the UI or add more pages
MIT