What is Commit DNA?

  • How It Works

  • Metrics Explained

  • Burnout Formula

  • Example Walkthrough

  • Tech Stack & Architecture

  • How to Run

  • Roadmap


  • 🧠 What is Commit DNA?

    Every Git commit is a timestamped record: who wrote it, when, what they described, and which lines changed. Commit DNA reads an entire repo's history and generates a visual dashboard answering:

    QuestionMetricWorks late at night? Night Ratio β€” % of commits between 10 PM – 5 AM

    Works on weekends? Weekend Ratio β€” % of commits on Sat/Sun

    Frequent bug fixes? Bug Rate β€” % of commits mentioning "fix", "bug", etc.

    Invests in code quality? Refactor Rate β€” % of commits about cleanup/optimization

    At risk of burnout? Burnout Score β€” weighted formula combining all above

    Think of it as a health checkup for coding habits β€” no hardcoded data, everything is computed live from actual Git history.


    πŸ”„ How It Works (Step by Step)

    User enters GitHub URL β†’ Validate β†’ Clone repo β†’ Extract git log β†’ Parse commits β†’ Calculate metrics β†’ Burnout score β†’ Display dashboard β†’ Cleanup
    

    1️⃣ Validation

    Frontend checks: valid URL? Points to github.com? Has user/repo path?

    2️⃣ Clone

    Backend clones the repo into a temp folder with a unique UUID (supports concurrent users).

    3️⃣ Extract Git Log

    Runs: git log --numstat --pretty=format:"commit_separator|AuthorName|Date|Message"

    Produces raw data like:

    commit_separator|John Doe|Mon Mar 1 23:30:00 2026|fix: resolve login bug
    5       2       src/auth.js
    

    4️⃣ Parse

    Each commit becomes a structured object with author, date, message, additions, deletions.

    5️⃣ Calculate

    Every commit is checked:

    6️⃣ Score & Display

    Ratios calculated β†’ Burnout formula applied β†’ Charts rendered β†’ Temp repo deleted.


    πŸ“ˆ All Metrics Explained

    πŸŒ™ Night Ratio

    Night Ratio = Commits between 10 PM – 5 AM Γ· Total Commits
    

    | 0–10% βœ… Normal | 10–25% ⚠️ Moderate | 25%+ πŸ”΄ Frequently coding past midnight |

    πŸ“… Weekend Ratio

    Weekend Ratio = Saturday + Sunday Commits Γ· Total Commits
    

    | 0–10% βœ… Healthy boundary | 10–25% ⚠️ Some weekend work | 25%+ πŸ”΄ Regular weekend coding |

    πŸ› Bug Rate

    Bug Rate = Bug-fix Commits Γ· Total Commits
    

    Keywords: fix Β· bug Β· patch Β· hotfix Β· resolve

    | 0–5% βœ… Low | 5–15% ⚠️ Normal | 15%+ πŸ”΄ May need better testing |

    πŸ”§ Refactor Rate

    Refactor Rate = Refactor Commits Γ· Total Commits
    

    Keywords: refactor Β· cleanup Β· optimize Β· clean Β· restructure Β· perf

    | 0–2% ⚠️ Low investment | 2–10% βœ… Healthy | 10%+ ⚠️ Architecture may be unstable |

    πŸ“Š Commit Spike

    Commit Spike = (Max Commits in One Day Γ· Average per Day) βˆ’ 1
    

    Value of 0 = steady pace. Value of 4 = busiest day had 5Γ— more commits than average.


    πŸ”₯ The Burnout Formula

    Burnout Score = 0.4 Γ— Night Ratio
                 + 0.3 Γ— Weekend Ratio
                 + 0.2 Γ— Commit Spike (capped at 1.0)
                 + 0.1 Γ— Bug Rate
    

    Why These Weights?

    FactorWeightReasoningNight Ratio40%#1 indicator of overwork; correlates with fatigue and reduced code qualityWeekend Ratio30%Erodes recovery time; second strongest burnout signalCommit Spike20%Burst-then-rest patterns suggest deadline pressureBug Rate10%Can be a symptom of fatigue, but has many other causes

    Status Thresholds

    ScoreStatusMeaning0.00 – 0.24🟒 HealthySustainable patterns, normal hours0.25 – 0.49🟑 MediumSome concerning signals, worth monitoring0.50 – 1.00πŸ”΄ OverloadedMultiple burnout indicators elevated

    Worked Example

    Night Ratio = 0.30, Weekend Ratio = 0.20, Spike = 0.80, Bug Rate = 0.12
    
    Score = (0.4 Γ— 0.30) + (0.3 Γ— 0.20) + (0.2 Γ— 0.80) + (0.1 Γ— 0.12)
          = 0.12 + 0.06 + 0.16 + 0.012
          = 0.352 β†’ 🟑 Medium
    

    🎯 Example Walkthrough

    Input: https://github.com/expressjs/express (~3,800 commits)

    Output:

    {
      "developerName": "TJ Holowaychuk",
      "totalCommits": 3847,
      "nightRatio": 22.5,
      "weekendRatio": 15.3,
      "bugRate": 8.7,
      "refactorRate": 5.2,
      "burnoutScore": 0.48,
      "burnoutStatus": "Medium"
    }

    Dashboard shows: Profile card β†’ Bar chart (night vs day) β†’ Doughnut (bugs vs refactors) β†’ Gauge (burnout score)


    πŸ— Tech Stack & Architecture

    LayerTechnologiesFrontendHTML5, CSS3 (dark theme), Vanilla JS, Chart.jsBackendNode.js, Express.js, simple-git, day.js

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ FRONTEND ────────────┐
    β”‚  index.html β†’ dashboard.html     β”‚
    β”‚  css/style.css  js/api.js        β”‚
    β”‚  js/charts.js   js/dashboard.js  β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ POST /analyze
               β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ BACKEND (Express) ───┐
    β”‚  gitService β†’ parserService      β”‚
    β”‚  metricsService β†’ burnoutService β”‚
    β”‚  β†’ JSON response with metrics    β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    

    πŸš€ How to Run

    # Install & start
    cd backend && npm install && npm run dev
    
    # Open commit-dna-lkc9.vercel.app

    Prerequisites: Node.js v16+, Git installed.



    πŸ—Ί Future Roadmap

    PhaseFeatureStatus1Public repo analysis + dashboard + burnout scoring βœ… Done

    Private repos (GitHub OAuth), multi-dev comparison πŸ”œ Planned

    Team analytics, Slack alerts, AI recommendations πŸ’‘ Idea

    " /> What is Commit DNA?

  • How It Works

  • Metrics Explained

  • Burnout Formula

  • Example Walkthrough

  • Tech Stack & Architecture

  • How to Run

  • Roadmap


  • 🧠 What is Commit DNA?

    Every Git commit is a timestamped record: who wrote it, when, what they described, and which lines changed. Commit DNA reads an entire repo's history and generates a visual dashboard answering:

    QuestionMetricWorks late at night? Night Ratio β€” % of commits between 10 PM – 5 AM

    Works on weekends? Weekend Ratio β€” % of commits on Sat/Sun

    Frequent bug fixes? Bug Rate β€” % of commits mentioning "fix", "bug", etc.

    Invests in code quality? Refactor Rate β€” % of commits about cleanup/optimization

    At risk of burnout? Burnout Score β€” weighted formula combining all above

    Think of it as a health checkup for coding habits β€” no hardcoded data, everything is computed live from actual Git history.


    πŸ”„ How It Works (Step by Step)

    User enters GitHub URL β†’ Validate β†’ Clone repo β†’ Extract git log β†’ Parse commits β†’ Calculate metrics β†’ Burnout score β†’ Display dashboard β†’ Cleanup
    

    1️⃣ Validation

    Frontend checks: valid URL? Points to github.com? Has user/repo path?

    2️⃣ Clone

    Backend clones the repo into a temp folder with a unique UUID (supports concurrent users).

    3️⃣ Extract Git Log

    Runs: git log --numstat --pretty=format:"commit_separator|AuthorName|Date|Message"

    Produces raw data like:

    commit_separator|John Doe|Mon Mar 1 23:30:00 2026|fix: resolve login bug
    5       2       src/auth.js
    

    4️⃣ Parse

    Each commit becomes a structured object with author, date, message, additions, deletions.

    5️⃣ Calculate

    Every commit is checked:

    6️⃣ Score & Display

    Ratios calculated β†’ Burnout formula applied β†’ Charts rendered β†’ Temp repo deleted.


    πŸ“ˆ All Metrics Explained

    πŸŒ™ Night Ratio

    Night Ratio = Commits between 10 PM – 5 AM Γ· Total Commits
    

    | 0–10% βœ… Normal | 10–25% ⚠️ Moderate | 25%+ πŸ”΄ Frequently coding past midnight |

    πŸ“… Weekend Ratio

    Weekend Ratio = Saturday + Sunday Commits Γ· Total Commits
    

    | 0–10% βœ… Healthy boundary | 10–25% ⚠️ Some weekend work | 25%+ πŸ”΄ Regular weekend coding |

    πŸ› Bug Rate

    Bug Rate = Bug-fix Commits Γ· Total Commits
    

    Keywords: fix Β· bug Β· patch Β· hotfix Β· resolve

    | 0–5% βœ… Low | 5–15% ⚠️ Normal | 15%+ πŸ”΄ May need better testing |

    πŸ”§ Refactor Rate

    Refactor Rate = Refactor Commits Γ· Total Commits
    

    Keywords: refactor Β· cleanup Β· optimize Β· clean Β· restructure Β· perf

    | 0–2% ⚠️ Low investment | 2–10% βœ… Healthy | 10%+ ⚠️ Architecture may be unstable |

    πŸ“Š Commit Spike

    Commit Spike = (Max Commits in One Day Γ· Average per Day) βˆ’ 1
    

    Value of 0 = steady pace. Value of 4 = busiest day had 5Γ— more commits than average.


    πŸ”₯ The Burnout Formula

    Burnout Score = 0.4 Γ— Night Ratio
                 + 0.3 Γ— Weekend Ratio
                 + 0.2 Γ— Commit Spike (capped at 1.0)
                 + 0.1 Γ— Bug Rate
    

    Why These Weights?

    FactorWeightReasoningNight Ratio40%#1 indicator of overwork; correlates with fatigue and reduced code qualityWeekend Ratio30%Erodes recovery time; second strongest burnout signalCommit Spike20%Burst-then-rest patterns suggest deadline pressureBug Rate10%Can be a symptom of fatigue, but has many other causes

    Status Thresholds

    ScoreStatusMeaning0.00 – 0.24🟒 HealthySustainable patterns, normal hours0.25 – 0.49🟑 MediumSome concerning signals, worth monitoring0.50 – 1.00πŸ”΄ OverloadedMultiple burnout indicators elevated

    Worked Example

    Night Ratio = 0.30, Weekend Ratio = 0.20, Spike = 0.80, Bug Rate = 0.12
    
    Score = (0.4 Γ— 0.30) + (0.3 Γ— 0.20) + (0.2 Γ— 0.80) + (0.1 Γ— 0.12)
          = 0.12 + 0.06 + 0.16 + 0.012
          = 0.352 β†’ 🟑 Medium
    

    🎯 Example Walkthrough

    Input: https://github.com/expressjs/express (~3,800 commits)

    Output:

    {
      "developerName": "TJ Holowaychuk",
      "totalCommits": 3847,
      "nightRatio": 22.5,
      "weekendRatio": 15.3,
      "bugRate": 8.7,
      "refactorRate": 5.2,
      "burnoutScore": 0.48,
      "burnoutStatus": "Medium"
    }

    Dashboard shows: Profile card β†’ Bar chart (night vs day) β†’ Doughnut (bugs vs refactors) β†’ Gauge (burnout score)


    πŸ— Tech Stack & Architecture

    LayerTechnologiesFrontendHTML5, CSS3 (dark theme), Vanilla JS, Chart.jsBackendNode.js, Express.js, simple-git, day.js

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ FRONTEND ────────────┐
    β”‚  index.html β†’ dashboard.html     β”‚
    β”‚  css/style.css  js/api.js        β”‚
    β”‚  js/charts.js   js/dashboard.js  β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ POST /analyze
               β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ BACKEND (Express) ───┐
    β”‚  gitService β†’ parserService      β”‚
    β”‚  metricsService β†’ burnoutService β”‚
    β”‚  β†’ JSON response with metrics    β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    

    πŸš€ How to Run

    # Install & start
    cd backend && npm install && npm run dev
    
    # Open commit-dna-lkc9.vercel.app

    Prerequisites: Node.js v16+, Git installed.



    πŸ—Ί Future Roadmap

    PhaseFeatureStatus1Public repo analysis + dashboard + burnout scoring βœ… Done

    Private repos (GitHub OAuth), multi-dev comparison πŸ”œ Planned

    Team analytics, Slack alerts, AI recommendations πŸ’‘ Idea

    " /> What is Commit DNA?

  • How It Works

  • Metrics Explained

  • Burnout Formula

  • Example Walkthrough

  • Tech Stack & Architecture

  • How to Run

  • Roadmap


  • 🧠 What is Commit DNA?

    Every Git commit is a timestamped record: who wrote it, when, what they described, and which lines changed. Commit DNA reads an entire repo's history and generates a visual dashboard answering:

    QuestionMetricWorks late at night? Night Ratio β€” % of commits between 10 PM – 5 AM

    Works on weekends? Weekend Ratio β€” % of commits on Sat/Sun

    Frequent bug fixes? Bug Rate β€” % of commits mentioning "fix", "bug", etc.

    Invests in code quality? Refactor Rate β€” % of commits about cleanup/optimization

    At risk of burnout? Burnout Score β€” weighted formula combining all above

    Think of it as a health checkup for coding habits β€” no hardcoded data, everything is computed live from actual Git history.


    πŸ”„ How It Works (Step by Step)

    User enters GitHub URL β†’ Validate β†’ Clone repo β†’ Extract git log β†’ Parse commits β†’ Calculate metrics β†’ Burnout score β†’ Display dashboard β†’ Cleanup
    

    1️⃣ Validation

    Frontend checks: valid URL? Points to github.com? Has user/repo path?

    2️⃣ Clone

    Backend clones the repo into a temp folder with a unique UUID (supports concurrent users).

    3️⃣ Extract Git Log

    Runs: git log --numstat --pretty=format:"commit_separator|AuthorName|Date|Message"

    Produces raw data like:

    commit_separator|John Doe|Mon Mar 1 23:30:00 2026|fix: resolve login bug
    5       2       src/auth.js
    

    4️⃣ Parse

    Each commit becomes a structured object with author, date, message, additions, deletions.

    5️⃣ Calculate

    Every commit is checked:

    6️⃣ Score & Display

    Ratios calculated β†’ Burnout formula applied β†’ Charts rendered β†’ Temp repo deleted.


    πŸ“ˆ All Metrics Explained

    πŸŒ™ Night Ratio

    Night Ratio = Commits between 10 PM – 5 AM Γ· Total Commits
    

    | 0–10% βœ… Normal | 10–25% ⚠️ Moderate | 25%+ πŸ”΄ Frequently coding past midnight |

    πŸ“… Weekend Ratio

    Weekend Ratio = Saturday + Sunday Commits Γ· Total Commits
    

    | 0–10% βœ… Healthy boundary | 10–25% ⚠️ Some weekend work | 25%+ πŸ”΄ Regular weekend coding |

    πŸ› Bug Rate

    Bug Rate = Bug-fix Commits Γ· Total Commits
    

    Keywords: fix Β· bug Β· patch Β· hotfix Β· resolve

    | 0–5% βœ… Low | 5–15% ⚠️ Normal | 15%+ πŸ”΄ May need better testing |

    πŸ”§ Refactor Rate

    Refactor Rate = Refactor Commits Γ· Total Commits
    

    Keywords: refactor Β· cleanup Β· optimize Β· clean Β· restructure Β· perf

    | 0–2% ⚠️ Low investment | 2–10% βœ… Healthy | 10%+ ⚠️ Architecture may be unstable |

    πŸ“Š Commit Spike

    Commit Spike = (Max Commits in One Day Γ· Average per Day) βˆ’ 1
    

    Value of 0 = steady pace. Value of 4 = busiest day had 5Γ— more commits than average.


    πŸ”₯ The Burnout Formula

    Burnout Score = 0.4 Γ— Night Ratio
                 + 0.3 Γ— Weekend Ratio
                 + 0.2 Γ— Commit Spike (capped at 1.0)
                 + 0.1 Γ— Bug Rate
    

    Why These Weights?

    FactorWeightReasoningNight Ratio40%#1 indicator of overwork; correlates with fatigue and reduced code qualityWeekend Ratio30%Erodes recovery time; second strongest burnout signalCommit Spike20%Burst-then-rest patterns suggest deadline pressureBug Rate10%Can be a symptom of fatigue, but has many other causes

    Status Thresholds

    ScoreStatusMeaning0.00 – 0.24🟒 HealthySustainable patterns, normal hours0.25 – 0.49🟑 MediumSome concerning signals, worth monitoring0.50 – 1.00πŸ”΄ OverloadedMultiple burnout indicators elevated

    Worked Example

    Night Ratio = 0.30, Weekend Ratio = 0.20, Spike = 0.80, Bug Rate = 0.12
    
    Score = (0.4 Γ— 0.30) + (0.3 Γ— 0.20) + (0.2 Γ— 0.80) + (0.1 Γ— 0.12)
          = 0.12 + 0.06 + 0.16 + 0.012
          = 0.352 β†’ 🟑 Medium
    

    🎯 Example Walkthrough

    Input: https://github.com/expressjs/express (~3,800 commits)

    Output:

    {
      "developerName": "TJ Holowaychuk",
      "totalCommits": 3847,
      "nightRatio": 22.5,
      "weekendRatio": 15.3,
      "bugRate": 8.7,
      "refactorRate": 5.2,
      "burnoutScore": 0.48,
      "burnoutStatus": "Medium"
    }

    Dashboard shows: Profile card β†’ Bar chart (night vs day) β†’ Doughnut (bugs vs refactors) β†’ Gauge (burnout score)


    πŸ— Tech Stack & Architecture

    LayerTechnologiesFrontendHTML5, CSS3 (dark theme), Vanilla JS, Chart.jsBackendNode.js, Express.js, simple-git, day.js

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ FRONTEND ────────────┐
    β”‚  index.html β†’ dashboard.html     β”‚
    β”‚  css/style.css  js/api.js        β”‚
    β”‚  js/charts.js   js/dashboard.js  β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ POST /analyze
               β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ BACKEND (Express) ───┐
    β”‚  gitService β†’ parserService      β”‚
    β”‚  metricsService β†’ burnoutService β”‚
    β”‚  β†’ JSON response with metrics    β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    

    πŸš€ How to Run

    # Install & start
    cd backend && npm install && npm run dev
    
    # Open commit-dna-lkc9.vercel.app

    Prerequisites: Node.js v16+, Git installed.



    πŸ—Ί Future Roadmap

    PhaseFeatureStatus1Public repo analysis + dashboard + burnout scoring βœ… Done

    Private repos (GitHub OAuth), multi-dev comparison πŸ”œ Planned

    Team analytics, Slack alerts, AI recommendations πŸ’‘ Idea

    " /> Commit DNA Skip to Main Content

    Commit DNA

    Commit DNA transforms raw Git commit history into a powerful analytics dashboard that reveals coding patterns, productivity trends, refactoring behavior, bug tendencies, ownership distribution, and burnout indicators.

    Description

    🧬 Commit DNA – Developer Coding Style Analyzer

    Decode any developer's coding DNA from their Git history. Analyzes public GitHub repos to reveal coding patterns, work habits, and burnout risk β€” all computed live from real commit data.


    πŸ“Œ Table of Contents


    🧠 What is Commit DNA?

    Every Git commit is a timestamped record: who wrote it, when, what they described, and which lines changed. Commit DNA reads an entire repo's history and generates a visual dashboard answering:

    QuestionMetricWorks late at night? Night Ratio β€” % of commits between 10 PM – 5 AM

    Works on weekends? Weekend Ratio β€” % of commits on Sat/Sun

    Frequent bug fixes? Bug Rate β€” % of commits mentioning "fix", "bug", etc.

    Invests in code quality? Refactor Rate β€” % of commits about cleanup/optimization

    At risk of burnout? Burnout Score β€” weighted formula combining all above

    Think of it as a health checkup for coding habits β€” no hardcoded data, everything is computed live from actual Git history.


    πŸ”„ How It Works (Step by Step)

    User enters GitHub URL β†’ Validate β†’ Clone repo β†’ Extract git log β†’ Parse commits β†’ Calculate metrics β†’ Burnout score β†’ Display dashboard β†’ Cleanup
    

    1️⃣ Validation

    Frontend checks: valid URL? Points to github.com? Has user/repo path?

    2️⃣ Clone

    Backend clones the repo into a temp folder with a unique UUID (supports concurrent users).

    3️⃣ Extract Git Log

    Runs: git log --numstat --pretty=format:"commit_separator|AuthorName|Date|Message"

    Produces raw data like:

    commit_separator|John Doe|Mon Mar 1 23:30:00 2026|fix: resolve login bug
    5       2       src/auth.js
    

    4️⃣ Parse

    Each commit becomes a structured object with author, date, message, additions, deletions.

    5️⃣ Calculate

    Every commit is checked:

    • Night? β†’ Hour between 22:00–04:59

    • Weekend? β†’ Saturday or Sunday

    • Bug fix? β†’ Message contains: fix, bug, patch, hotfix, resolve

    • Refactor? β†’ Message contains: refactor, cleanup, optimize, clean, restructure, perf

    6️⃣ Score & Display

    Ratios calculated β†’ Burnout formula applied β†’ Charts rendered β†’ Temp repo deleted.


    πŸ“ˆ All Metrics Explained

    πŸŒ™ Night Ratio

    Night Ratio = Commits between 10 PM – 5 AM Γ· Total Commits
    

    | 0–10% βœ… Normal | 10–25% ⚠️ Moderate | 25%+ πŸ”΄ Frequently coding past midnight |

    πŸ“… Weekend Ratio

    Weekend Ratio = Saturday + Sunday Commits Γ· Total Commits
    

    | 0–10% βœ… Healthy boundary | 10–25% ⚠️ Some weekend work | 25%+ πŸ”΄ Regular weekend coding |

    πŸ› Bug Rate

    Bug Rate = Bug-fix Commits Γ· Total Commits
    

    Keywords: fix Β· bug Β· patch Β· hotfix Β· resolve

    | 0–5% βœ… Low | 5–15% ⚠️ Normal | 15%+ πŸ”΄ May need better testing |

    πŸ”§ Refactor Rate

    Refactor Rate = Refactor Commits Γ· Total Commits
    

    Keywords: refactor Β· cleanup Β· optimize Β· clean Β· restructure Β· perf

    | 0–2% ⚠️ Low investment | 2–10% βœ… Healthy | 10%+ ⚠️ Architecture may be unstable |

    πŸ“Š Commit Spike

    Commit Spike = (Max Commits in One Day Γ· Average per Day) βˆ’ 1
    

    Value of 0 = steady pace. Value of 4 = busiest day had 5Γ— more commits than average.


    πŸ”₯ The Burnout Formula

    Burnout Score = 0.4 Γ— Night Ratio
                 + 0.3 Γ— Weekend Ratio
                 + 0.2 Γ— Commit Spike (capped at 1.0)
                 + 0.1 Γ— Bug Rate
    

    Why These Weights?

    FactorWeightReasoningNight Ratio40%#1 indicator of overwork; correlates with fatigue and reduced code qualityWeekend Ratio30%Erodes recovery time; second strongest burnout signalCommit Spike20%Burst-then-rest patterns suggest deadline pressureBug Rate10%Can be a symptom of fatigue, but has many other causes

    Status Thresholds

    ScoreStatusMeaning0.00 – 0.24🟒 HealthySustainable patterns, normal hours0.25 – 0.49🟑 MediumSome concerning signals, worth monitoring0.50 – 1.00πŸ”΄ OverloadedMultiple burnout indicators elevated

    Worked Example

    Night Ratio = 0.30, Weekend Ratio = 0.20, Spike = 0.80, Bug Rate = 0.12
    
    Score = (0.4 Γ— 0.30) + (0.3 Γ— 0.20) + (0.2 Γ— 0.80) + (0.1 Γ— 0.12)
          = 0.12 + 0.06 + 0.16 + 0.012
          = 0.352 β†’ 🟑 Medium
    

    🎯 Example Walkthrough

    Input: https://github.com/expressjs/express (~3,800 commits)

    Output:

    {
      "developerName": "TJ Holowaychuk",
      "totalCommits": 3847,
      "nightRatio": 22.5,
      "weekendRatio": 15.3,
      "bugRate": 8.7,
      "refactorRate": 5.2,
      "burnoutScore": 0.48,
      "burnoutStatus": "Medium"
    }

    Dashboard shows: Profile card β†’ Bar chart (night vs day) β†’ Doughnut (bugs vs refactors) β†’ Gauge (burnout score)


    πŸ— Tech Stack & Architecture

    LayerTechnologiesFrontendHTML5, CSS3 (dark theme), Vanilla JS, Chart.jsBackendNode.js, Express.js, simple-git, day.js

    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ FRONTEND ────────────┐
    β”‚  index.html β†’ dashboard.html     β”‚
    β”‚  css/style.css  js/api.js        β”‚
    β”‚  js/charts.js   js/dashboard.js  β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
               β”‚ POST /analyze
               β–Ό
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ BACKEND (Express) ───┐
    β”‚  gitService β†’ parserService      β”‚
    β”‚  metricsService β†’ burnoutService β”‚
    β”‚  β†’ JSON response with metrics    β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    

    πŸš€ How to Run

    # Install & start
    cd backend && npm install && npm run dev
    
    # Open commit-dna-lkc9.vercel.app

    Prerequisites: Node.js v16+, Git installed.



    πŸ—Ί Future Roadmap

    PhaseFeatureStatus1Public repo analysis + dashboard + burnout scoring βœ… Done

    Private repos (GitHub OAuth), multi-dev comparison πŸ”œ Planned

    Team analytics, Slack alerts, AI recommendations πŸ’‘ Idea

    Issues & PRs Board
    No issues or pull requests added.