[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80319":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":41,"readmeContent":42,"aiSummary":43,"trendingCount":16,"starSnapshotCount":16,"syncStatus":44,"lastSyncTime":45,"discoverSource":46},80319,"devtrack","Priyanshu-byte-coder\u002Fdevtrack","Priyanshu-byte-coder","Open-source developer productivity dashboard — GitHub stats, PR metrics, streaks & goals. ⭐ Star if useful!","https:\u002F\u002Fdevtrack-delta.vercel.app",null,"TypeScript",124,330,1,187,0,9,20,52,27,80.76,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40],"dashboard","developer-tools","github-stats","gssoc","gssoc2026","nextjs","open-source","postgresql","productivity","recharts","supabase","tailwindcss","typescript","vercel","2026-06-12 04:01:27","\u003Cdiv align=\"center\">\n\n# DevTrack\n\n**Your personal developer productivity command center.**\n\n> Pull your GitHub activity, commit streaks, PR analytics, and coding goals into one clean, self-hostable dashboard — no enterprise plan, no vendor lock-in.\n\n[![CI](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Factions\u002Fworkflows\u002Fci.yml)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg)](.\u002FLICENSE)\n[![PRs Welcome](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPRs-welcome-brightgreen.svg)](.\u002FCONTRIBUTING.md)\n[![GSSoC 2026](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FGSSoC-2026-orange.svg)](https:\u002F\u002Fgssoc.girlscript.tech\u002F)\n[![Stack](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fstack-Next.js%20%7C%20Supabase%20%7C%20TypeScript-blue)](.\u002FDEVELOPMENT.md)\n[![Good First Issues](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fissues\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fgood%20first%20issue?label=good%20first%20issues&color=7c3aed)](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues?q=label%3A%22good+first+issue%22)\n[![Contributors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fcontributors\u002FPriyanshu-byte-coder\u002Fdevtrack?color=brightgreen)](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fgraphs\u002Fcontributors)\n[![Last Commit](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flast-commit\u002FPriyanshu-byte-coder\u002Fdevtrack)](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fcommits\u002Fmain)\n[![GitHub Sponsors](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fsponsors\u002FPriyanshu-byte-coder?label=sponsors&color=ea4aaa)](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FPriyanshu-byte-coder)\n\n**[Live Demo](https:\u002F\u002Fdevtrack-delta.vercel.app)** · **[Dev Guide](.\u002FDEVELOPMENT.md)** · **[Report Bug](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues\u002Fnew?template=bug_report.md)** · **[Request Feature](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues\u002Fnew?template=feature_request.md)** · **[Sponsor](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FPriyanshu-byte-coder)**\n\n\u003C\u002Fdiv>\n\n---\n\n## Table of Contents\n\n- [Why DevTrack?](#why-devtrack)\n- [Features](#features)\n- [Tech Stack](#tech-stack)\n- [Project Structure](#project-structure)\n- [Getting Started](#getting-started)\n- [Roadmap](#roadmap)\n- [Contributing](#contributing)\n- [Sponsors](#sponsors)\n- [License](#license)\n\n---\n\n## Why DevTrack?\n\nMost developers track their work across multiple disconnected tools — GitHub for commits, Jira for tasks, Notion for goals, Slack for standups. None of them give you the full picture.\n\n**DevTrack solves this by:**\n\n- Consolidating GitHub contributions, PR metrics, and streak data in one view\n- Helping you set and visualize personal coding goals with progress tracking\n- Keeping your data yours — fully self-hostable with zero vendor lock-in\n- Deploying in minutes on the free tier of Next.js + Supabase + Vercel\n\n---\n\n## Features\n\n| Feature | Description |\n|---|---|\n| **GitHub OAuth** | Sign in with GitHub — no separate account needed |\n| **Commit Activity Chart** | Visualize daily commit activity with 7d \u002F 14d \u002F 30d \u002F 90d range selector |\n| **Commit Streak Tracker** | Current streak, longest streak, and active days |\n| **PR Analytics** | Average review time, merge rate, open\u002Fclosed PR counts |\n| **Top Repositories** | Ranked list of most active repos over any time range |\n| **Goal Tracker** | Set and track personal coding goals with progress bars |\n| **Public Profile** | Shareable public profile page at `\u002Fu\u002F[username]` with stats and badges |\n| **Repository Spotlight** | Pin up to 3 repositories to showcase on your public profile |\n| **GitHub Achievements** | Automatically synced GitHub achievement badges on your public profile |\n| **Leaderboard** | Opt-in public leaderboard ranked by streak, commits, and PRs |\n| **Discord Integration** | Streak reminders and milestone alerts via Discord webhooks |\n| **Wakatime Integration** | Accurate coding time and language usage from Wakatime |\n| **Multi-Account Support** | Link and switch between multiple GitHub accounts |\n| **Weekly Email Digest** | Optional Monday morning summary of your coding habits |\n| **Data Export** | Download all your data in JSON format |\n| **AI Weekly Insights** | Groq-powered natural language summary of your weekly activity |\n| **Heatmap Themes** | Default and colour-blind-friendly heatmap colour schemes |\n\n---\n\n## Tech Stack\n\n| Layer | Technology |\n|---|---|\n| Frontend | Next.js 14 (App Router), TypeScript, Tailwind CSS |\n| Auth | GitHub OAuth via NextAuth.js v4 |\n| Database | Supabase (PostgreSQL) with Row Level Security |\n| API | Next.js Route Handlers (`\u002Fapp\u002Fapi\u002F`) |\n| Charts | Recharts |\n| AI | Groq API |\n| Deployment | Vercel (free tier, auto-deploys from GitHub) |\n\n---\n\n## Project Structure\n\n```\ndevtrack\u002F\n├── src\u002F\n│   ├── app\u002F\n│   │   ├── api\u002F\n│   │   │   ├── auth\u002F          # GitHub OAuth (NextAuth)\n│   │   │   ├── metrics\u002F       # Contributions, streak, PRs, repos\n│   │   │   ├── goals\u002F         # Goal CRUD\n│   │   │   ├── leaderboard\u002F   # Public leaderboard\n│   │   │   ├── public\u002F        # Public profile JSON API\n│   │   │   └── user\u002F          # Settings, data export, linked accounts\n│   │   ├── dashboard\u002F         # Authenticated dashboard\n│   │   ├── u\u002F[username]\u002F      # Public profile pages\n│   │   └── page.tsx           # Landing page\n│   ├── components\u002F            # Reusable UI components\n│   └── lib\u002F\n│       ├── auth.ts            # NextAuth config\n│       ├── supabase.ts        # Supabase admin client (server-side only)\n│       ├── public-profile-data.ts  # GitHub API helpers for public profiles\n│       └── github-achievements.ts  # Achievement sync logic\n├── supabase\u002F\n│   └── migrations\u002F            # Versioned schema migrations\n├── e2e\u002F                       # Playwright end-to-end tests\n├── test\u002F                      # Unit tests\n└── .github\u002F\n    ├── workflows\u002Fci.yml       # Type-check + lint on every PR\n    └── ISSUE_TEMPLATE\u002F        # Bug, feature, good-first-issue templates\n```\n\n---\n\n## Getting Started\n\nFor local development and contributing, see **[DEVELOPMENT.md](.\u002FDEVELOPMENT.md)**.\nTo deploy your own instance, see the **[Self-Hosting Guide](.\u002Fdocs\u002Fself-hosting.md)**.\n\n### Quick Start\n\n**1. Clone and install**\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack.git\ncd devtrack\nnpm install\n```\n\n**2. Set up Supabase**\n\n1. Create a free project at [supabase.com](https:\u002F\u002Fsupabase.com)\n2. Run all migrations from `supabase\u002Fmigrations\u002F` in the SQL editor (in order)\n3. Copy your Project URL, anon key, and service_role key from **Project Settings → API**\n\n**3. Create a GitHub OAuth App**\n\n1. Go to [GitHub → Settings → Developer Settings → OAuth Apps](https:\u002F\u002Fgithub.com\u002Fsettings\u002Fapplications\u002Fnew)\n2. Set the callback URL to `http:\u002F\u002Flocalhost:3000\u002Fapi\u002Fauth\u002Fcallback\u002Fgithub`\n3. Copy your Client ID and Client Secret\n\n**4. Configure environment**\n\n```bash\ncp .env.example .env.local\n```\n\n### Environment Variables\n\n> [!WARNING]\n> Never commit `.env` or `.env.local` to Git. These files are pre-configured in `.gitignore`.\n\n| Variable | Required | Description |\n|---|---|---|\n| `NEXT_PUBLIC_SUPABASE_URL` | Yes | Supabase project URL |\n| `NEXT_PUBLIC_SUPABASE_ANON_KEY` | Yes | Supabase public anon key |\n| `SUPABASE_SERVICE_ROLE_KEY` | Yes | Supabase service role key (server-side only) |\n| `NEXTAUTH_URL` | Yes | Base URL of the app (`http:\u002F\u002Flocalhost:3000` locally) |\n| `NEXTAUTH_SECRET` | Yes | Session encryption key — `openssl rand -base64 32` |\n| `GITHUB_ID` | Yes | GitHub OAuth App Client ID |\n| `GITHUB_SECRET` | Yes | GitHub OAuth App Client Secret |\n| `ENCRYPTION_KEY` | Yes | 32-byte hex key — `openssl rand -hex 32` |\n| `GITHUB_TOKEN` | No | Personal Access Token to raise GitHub API rate limits |\n| `GITHUB_WEBHOOK_SECRET` | No | Webhook signature validation key |\n| `UPSTASH_REDIS_REST_URL` | No | Upstash Redis endpoint for rate limiting |\n| `UPSTASH_REDIS_REST_TOKEN` | No | Upstash Redis access token |\n| `GROQ_API_KEY` | No | Groq API key for AI weekly insights |\n| `NEXT_PUBLIC_APP_URL` | No | Public URL override for generating share links |\n\n**5. Run locally**\n\n```bash\nnpm run dev\n```\n\nOpen [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000) and sign in with GitHub.\n\n**6. Run tests**\n\n```bash\n# Unit tests\nnpm test\n\n# End-to-end tests (requires Chromium)\nnpx playwright install --with-deps chromium\nnpm run test:e2e\n```\n\n---\n\n## Roadmap\n\n### Shipped\n\n| Feature | Notes |\n|---|---|\n| GitHub OAuth sign-in | |\n| Commit activity chart | 7d \u002F 14d \u002F 30d \u002F 90d range selector |\n| Commit streak tracker | Current, longest, active days |\n| PR analytics widget | Review time, merge rate, open\u002Fclosed counts |\n| Top repositories widget | |\n| Weekly goal tracker | |\n| Dark mode + heatmap themes | Default and colour-blind-friendly |\n| Responsive mobile layout | |\n| Public profile (`\u002Fu\u002F[username]`) | Shareable stats page |\n| Repository Spotlight | Pin up to 3 repos on public profile |\n| GitHub Achievements sync | Scraped and cached from GitHub profile |\n| Public leaderboard | Opt-in, ranked by streak \u002F commits \u002F PRs |\n| Discord webhook integration | Streak reminders and milestone alerts |\n| Wakatime integration | Coding time and language breakdown |\n| Multi-account GitHub linking | Switch accounts on the dashboard |\n| Weekly email digest | Opt-in Monday morning summary |\n| Data export | Full JSON dump of user data |\n| AI weekly insights | Groq-powered natural language summary |\n| Streak freeze | Protect streak during planned breaks |\n| RSS feed | Atom feed at `\u002Fu\u002F[username]\u002Ffeed.xml` |\n\n### In Progress \u002F Planned\n\n| Feature | Difficulty | Issue |\n|---|---|---|\n| Contribution heatmap calendar | Intermediate | [#18](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues\u002F18) |\n| Chart type toggle (bar \u002F line) | Intermediate | [#17](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues\u002F17) |\n| Language breakdown widget | Intermediate | [#32](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues\u002F32) |\n| Activity feed | Intermediate | [#33](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues\u002F33) |\n| Auto-progress goals from commits | Advanced | [#34](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues\u002F34) |\n| GitLab integration | Advanced | [#6](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues\u002F6) |\n| Jira integration | Advanced | — |\n| Team dashboards | Advanced | — |\n| Embeddable stats widgets | Intermediate | — |\n| Mobile app (React Native) | Advanced | — |\n\n---\n\n## Contributing\n\nDevTrack actively welcomes contributors of all skill levels, including **GSSoC 2026 participants**.\n\nSetup takes under 10 minutes — see [DEVELOPMENT.md](.\u002FDEVELOPMENT.md) for the full walkthrough.\n\n### How to contribute\n\n1. Browse [open issues](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fissues) — start with `good first issue`\n2. Comment on the issue to get assigned before starting work\n3. Fork → branch (`feat\u002Fissue-42-description`) → PR against `main`\n4. Ensure CI passes: `npm run lint && npm run type-check`\n\nSee **[CONTRIBUTING.md](.\u002FCONTRIBUTING.md)** for commit style, branch naming, and the review process.\n\nQuestions? Open a [Discussion](https:\u002F\u002Fgithub.com\u002FPriyanshu-byte-coder\u002Fdevtrack\u002Fdiscussions).\n\n---\n\n## Sponsors\n\nDevTrack is free and open source. Sponsoring helps cover infrastructure costs and accelerates new features.\n\n| Tier | Amount | Perks |\n|---|---|---|\n| Coffee | $5 \u002F mo | Your name in this README |\n| Backer | $15 \u002F mo | Name + priority response on issues |\n| Champion | $50 \u002F mo | Name + logo in README + feature request priority |\n| One-time | $10+ | One-time thanks, no recurring commitment |\n\n**[Sponsor DevTrack on GitHub](https:\u002F\u002Fgithub.com\u002Fsponsors\u002FPriyanshu-byte-coder)**\n\n---\n\n## License\n\nMIT — see [LICENSE](.\u002FLICENSE) for details.\n\n---\n\n\u003Cdiv align=\"center\">\n\nBuilt by the DevTrack community · [devtrack-delta.vercel.app](https:\u002F\u002Fdevtrack-delta.vercel.app)\n\nStar this repo if DevTrack is useful to you.\n\n\u003C\u002Fdiv>\n","DevTrack 是一个开源的开发者生产力仪表板，集成了GitHub统计数据、PR指标、提交连击和目标设定等功能。该项目使用TypeScript编写，基于Next.js框架构建，并利用Supabase作为后端服务，采用Tailwind CSS进行样式设计，通过Recharts实现数据可视化。它特别适合需要在一个界面中跟踪自己GitHub活动、代码贡献和个人目标的开发者使用。由于支持自托管且无供应商锁定，用户可以轻松地在Vercel等平台上免费部署自己的实例。",2,"2026-06-11 04:00:18","CREATED_QUERY"]