One dashboard for your entire developer life β GitHub commits, LeetCode grinds, Codeforces battles, study sessions, and project work, unified into a single Life Heatmap.
Self-hosted, privacy-first, and built for developers who want to see all their progress in one place instead of five different profile pages.
| Feature | Description |
|---|---|
| πΊ Unified Life Heatmap | GitHub-style contribution grid aggregating all platforms, filterable per platform |
| π₯ Streak Tracking | Separate streaks for coding, DSA, learning, projects + overall consistency |
| π― Goal Tracking | LeetCode targets, commit goals, study milestones with progress bars and deadlines |
| π Activity Feed | Timeline of everything you accomplished, across all platforms |
| π Analytics | Weekly score charts, monthly consistency, best days, all-time totals |
| π Achievements | Badges for milestones β streaks, problem counts, multi-platform days |
| π Manual Logging | Log study sessions, project work, articles, and courses with duration + notes |
| π Home Assistant | REST sensor endpoints for streaks and daily progress on your HA dashboard |
- GitHub β contributions + merged PRs via GraphQL API (OAuth)
- LeetCode β daily solve counts via the public GraphQL endpoint
- Codeforces β accepted submissions via the official REST API, scored by problem rating
- HackerRank β solved challenges via the public profile API
- Manual β anything else worth tracking
βββββββββββββββ βββββββββββββββ βββββββββββββββββββ
β Next.js Web β β Mobile Web β β Home Assistant β
ββββββββ¬βββββββ ββββββββ¬βββββββ ββββββββββ¬βββββββββ
ββββββββββββββββββΌββββββββββββββββββββ
βΌ
βββββββββββββββββββββ
β Express API β JWT auth Β· rate limiting Β· Zod
β (Node.js + TS) β
βββββββββββ¬ββββββββββ
ββββββββββββββββΌβββββββββββββββ
βΌ βΌ βΌ
ββββββββββββ ββββββββββββ ββββββββββββββ
β Postgres β β Redis β β BullMQ β β scheduled platform syncs
ββββββββββββ ββββββββββββ βββββββ¬βββββββ
βΌ
GitHub Β· LeetCode Β· Codeforces Β· HackerRank
Stack: Next.js 14 Β· TypeScript Β· Tailwind CSS Β· Recharts Β· SWR Β· Express Β· PostgreSQL Β· Redis Β· BullMQ Β· Docker
- Node.js β₯ 20
- Docker + Docker Compose
- A GitHub OAuth App
(callback URL:
http://localhost:3001/auth/github/callback)
# 1. Clone
git clone https://github.com/TheProtagonist07/developer-life-dashboard.git
cd developer-life-dashboard
# 2. Configure
cp .env.example .env
# Fill in GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET, JWT_SECRET
# 3. Start databases
docker compose up -d postgres redis
# 4. Install + run the API
cd apps/api && npm install && npm run dev # β http://localhost:3001
# 5. Install + run the web app (new terminal)
cd apps/web && npm install && npm run dev # β http://localhost:3000Open http://localhost:3000, sign in with GitHub, and connect your platforms from the Platforms tab.
cp .env.example .env # configure first
docker compose up -d # runs postgres, redis, api, and webdeveloper-life-dashboard/
βββ apps/
β βββ api/ # Express + TypeScript backend
β β βββ src/
β β βββ db/ # PostgreSQL schema + query helpers
β β βββ integrations/ # GitHub, LeetCode, Codeforces, HackerRank fetchers
β β βββ middleware/ # JWT auth, error handling
β β βββ routes/ # REST endpoints
β β βββ services/ # Streak engine, achievements, analytics
β β βββ workers/ # BullMQ sync queue + worker
β βββ web/ # Next.js 14 frontend
β βββ src/
β βββ app/ # App router pages
β βββ components/ # Heatmap, streaks, goals, feed, analytics
β βββ hooks/ # useAuth
β βββ lib/ # API client, utils
βββ docker-compose.yml
βββ .env.example
| Method | Endpoint | Description |
|---|---|---|
GET |
/auth/github |
Start GitHub OAuth |
GET |
/auth/me |
Current user |
GET |
/activities/heatmap?year= |
Heatmap data |
GET |
/activities/feed |
Paginated activity feed |
POST |
/activities/manual |
Log manual activity |
GET |
/streaks |
All streak types |
GET/POST/PUT/DELETE |
/goals |
Goal CRUD |
GET |
/analytics/weekly Β· /monthly Β· /totals |
Stats |
POST |
/platforms/connect |
Connect a coding platform |
POST |
/sync/trigger |
Manual sync |
GET |
/achievements |
Earned badges |
GET |
/ha/sensors/:userId |
Home Assistant sensors (API-key auth) |
# configuration.yaml
rest:
- resource: http://your-server:3001/ha/sensors/<your-user-id>
headers:
Authorization: Bearer <HA_API_KEY>
scan_interval: 300
sensor:
- name: "Coding Streak"
value_template: "{{ value_json.data.overall_streak }}"
unit_of_measurement: "days"
- name: "Today's Activity"
value_template: "{{ value_json.data.today_count }}"- Phase 1 β MVP: Auth, GitHub + LeetCode sync, heatmap, streaks, goals
- Phase 2 β Platforms: Codeforces, HackerRank, manual logging, activity feed
- Phase 3 β Intelligence: Achievements, analytics charts
- Phase 4 β Native: macOS menu bar app (Electron), macOS widget
- Phase 5 β Polish: PWA offline support, push notifications, public profiles, CSV export
MIT Β© 2026 Shivam Chaurasia