selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

DevTrack logo

Self-host DevTrack

v0.2.0

Open-source dev dashboard for GitHub stats, streaks, goals

BetaOpen SourceMIT
Updatedlast week
LanguageTypescript
Setup difficultyModerate
MobilePWA
ThemeDark mode
Stars
261
Port
3000 (HTTP web server)
Install with Docker Compose
DevTrack dashboard showing streaks, PR analytics, activity heatmap, and goalsContribution heatmap with repository and language filtersPull request analytics widget showing review times and merge ratesCommit streak tracker with current streak, longest streak, and streak freezesConsistency score widget showing coding rhythm steadinessAI resume generator turning GitHub history into a polished resumeAI mentor widget with personalized guidanceLanguage breakdown widget showing code time distributionActivity rings showing daily coding movementYear Wrapped animated annual coding recap

What is DevTrack?

DevTrack is an open-source dashboard that lets developers track their GitHub work in one place. It visualizes commit streaks, pull request metrics, contribution calendars with language filters, language usage breakdowns, consistency ratings, daily activity rings, and coding targets that update automatically from live GitHub data. AI features generate resumes from your GitHub history, analyze your coding personality, provide a mentor with personalized advice, and create weekly natural-language summaries. You can link multiple GitHub accounts and switch between them instantly, get real-time dashboard updates through Supabase Realtime, connect Discord and WakaTime, receive weekly email digests, export all data as JSON or PDF, use it as a progressive web app, and choose from several UI themes. The stack is Next.js 16 with TypeScript and Tailwind CSS, backed by Supabase PostgreSQL with row-level security, and GitHub OAuth via NextAuth.js. You can deploy it with Docker, Vercel in one click, Railway, or Render, each using a free Supabase cloud database.

Should you self-host DevTrack?

DevTrack scores 52/100 on selfhost.directory (how scoring works) and ranks #69 of 166 in Developer Tools. It has 261 GitHub stars.

It shipped 2 stable releases in the past year. The latest, v0.2.0, came out on 9 June 2026. New versions land roughly every 4 weeks.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is openhands (87/100, 92 068 stars). It scores higher overall, so compare the two before you pick. See DevTrack vs openhands side by side.

Features

  • AI mentor
  • AI resume generator
  • Coding personality analysis
  • Commit streak tracking
  • Data Export
  • Embeddable badges
  • GitHub contribution tracking
  • Goal tracking
  • Leaderboard
  • Multi-Account Support
  • PR analytics
  • Public Profile
  • Real-time updates
  • Weekly insights
  • Year Wrapped

DevTrack README

How to install DevTrack

Install DevTrack with Docker Compose

git clone https://github.com/Priyanshu-byte-coder/devtrack.git cd devtrack cp .env.example .env

fill in all required variables

docker compose -f docker-compose.production.yml up -d --build

Production container with standalone Next.js output

How to configure DevTrack

  • ALLOWED_ORIGINSOptional comma-separated extra origins allowed for CSRF validation

    Optional comma-separated extra origins allowed for CSRF validation

  • ANTHROPIC_API_KEYOptional Anthropic API key for AI weekly summary generation

    Optional Anthropic API key for AI weekly summary generation

  • CONTACT_TO_EMAILOptional delivery address for contact form submissions

    Optional delivery address for contact form submissions

  • CRON_SECRETBearer token for /api/cron/* endpoints, required in all environments

    Bearer token for /api/cron/* endpoints, required in all environments

  • ENCRYPTION_KEY64 hex chars (32 bytes) for AES-256-GCM OAuth token encryption

    64 hex chars (32 bytes) for AES-256-GCM OAuth token encryption

  • GEMINI_API_KEYOptional Gemini key for authenticated roast/hype

    Optional Gemini key for authenticated roast/hype

  • GITHUB_IDGitHub OAuth App Client ID

    GitHub OAuth App Client ID

  • GITHUB_SECRETGitHub OAuth App Client Secret

    GitHub OAuth App Client Secret

  • GITHUB_TOKENOptional GitHub Personal Access Token to increase API rate limits

    Optional GitHub Personal Access Token to increase API rate limits

  • GITHUB_WEBHOOK_SECRETOptional HMAC secret for verifying GitHub push webhook payloads

    Optional HMAC secret for verifying GitHub push webhook payloads

  • GROQ_API_KEYOptional Groq API key for AI-generated weekly summaries in AI Mentor widget

    Optional Groq API key for AI-generated weekly summaries in AI Mentor widget

  • LEADERBOARD_REBUILD_TOKENOptional token for leaderboard rebuild endpoint

    Optional token for leaderboard rebuild endpoint

  • LEADERBOARD_USER_CONCURRENCY5Concurrent user fetches during leaderboard builds (default: 5)

    Concurrent user fetches during leaderboard builds (default: 5)

    values: 1-100

  • NEXTAUTH_SECRETRandom 32-byte base64 string for NextAuth session signing

    Random 32-byte base64 string for NextAuth session signing

  • NEXTAUTH_URLhttp://localhost:3000Canonical URL of deployed app (no trailing slash)

    Canonical URL of deployed app (no trailing slash)

  • NEXT_PUBLIC_APP_URLOptional public app URL if different from NEXTAUTH_URL

    Optional public app URL if different from NEXTAUTH_URL

  • NEXT_PUBLIC_SUPABASE_ANON_KEYSupabase anon public key from Project Settings → API

    Supabase anon public key from Project Settings → API

  • NEXT_PUBLIC_SUPABASE_URLSupabase Project URL from Project Settings → API

    Supabase Project URL from Project Settings → API

  • RESEND_API_KEYOptional Resend API key for contact form and weekly digest emails

    Optional Resend API key for contact form and weekly digest emails

  • RESEND_FROM_EMAILOptional from address for outbound emails

    Optional from address for outbound emails

  • SUPABASE_SERVICE_ROLE_KEYSupabase service_role secret key (server-side only, bypasses RLS)

    Supabase service_role secret key (server-side only, bypasses RLS)

  • TRUSTED_PROXYvercelTrusted proxy configuration for IP-based rate limiting (vercel, cloudflare, none)

    Trusted proxy configuration for IP-based rate limiting (vercel, cloudflare, none)

    values: vercel, cloudflare, none

  • UPSTASH_REDIS_REST_TOKENOptional Upstash Redis REST token

    Optional Upstash Redis REST token

  • UPSTASH_REDIS_REST_URLOptional Upstash Redis REST URL for shared caches and GitHub cooldowns

    Optional Upstash Redis REST URL for shared caches and GitHub cooldowns

  • WAKATIME_CLIENT_IDOptional WakaTime OAuth Client ID for WakaTime integration

    Optional WakaTime OAuth Client ID for WakaTime integration

  • WAKATIME_CLIENT_SECRETOptional WakaTime OAuth Client Secret for WakaTime integration

    Optional WakaTime OAuth Client Secret for WakaTime integration

DevTrack releases & version history

FAQ

Which Node.js and pnpm versions are supported?

Node.js >= 20, pnpm >= 9, Git any version. Install pnpm via corepack enable or npm install -g pnpm.

How can I contribute?

Browse open issues labeled 'good first issue', comment to get assigned, fork the repo, branch from main, open a PR, and ensure CI passes locally with lint, type-check, and tests.

How do I run tests?

Run 'pnpm test' for unit tests, 'npx playwright install --with-deps chromium && pnpm run test:e2e' for end-to-end tests, and 'npx playwright test -c playwright.visual.config.mjs' for visual regression tests.

Why are GitHub metrics not loading?

Likely hitting GitHub's unauthenticated API rate limit. Set GITHUB_TOKEN (personal access token) in .env.local to raise the limit. Also check OAuth scopes granted and outbound network access to api.github.com.

How do I obtain Supabase credentials?

Create a free Supabase project, go to Project Settings → API, and copy the Project URL, anon public key, and service_role key. Run all SQL migrations in supabase/migrations/ via the SQL editor.

Why is login not working?

Usually caused by callback URL mismatch, missing/incorrect NEXTAUTH_SECRET, stale .env.local requiring restart, or Supabase RLS blocking the user row.

How do I configure GitHub OAuth?

Create a GitHub OAuth App with the callback URL set to your deployment URL + /api/auth/callback/github, then add the Client ID and Secret to GITHUB_ID and GITHUB_SECRET in your environment.

More in Productivity

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…