millionco/react-doctorPublic

Your agent writes bad React. This catches it

AI summary: A deterministic CLI tool that audits React codebases for state, performance, architectural, and security issues.

Stars
14.3K
+19 today
Forks
455
Watchers
24
Open issues
12
Open PRs
50
Contributors
~17
Commits
1.3K
Branches
776

TypeScriptOtherCreated Feb 13, 2026Last push todayLatest release oxlint-plugin-react-doctor@0.9.6+93 stars this week+135 this month

Star history

since Feb 15, 2026
05K10KFeb 2026Apr 2026Jun 2026Aug 2026
14.3K stars as of Aug 7, 2026, tracked back to Feb 15, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 5 commits2026-02-14: 0 commits2026-02-15: 4 commits2026-02-16: 48 commits2026-02-17: 57 commits2026-02-18: 19 commits2026-02-19: 24 commits2026-02-20: 6 commits2026-02-21: 3 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 3 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 1 commit2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 2 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 4 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 4 commits2026-04-15: 0 commits2026-04-16: 8 commits2026-04-17: 1 commit2026-04-18: 6 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 1 commit2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 7 commits2026-04-29: 1 commit2026-04-30: 3 commits2026-05-01: 7 commits2026-05-02: 2 commits2026-05-03: 1 commit2026-05-04: 0 commits2026-05-05: 1 commit2026-05-06: 1 commit2026-05-07: 3 commits2026-05-08: 39 commits2026-05-09: 14 commits2026-05-10: 0 commits2026-05-11: 2 commits2026-05-12: 0 commits2026-05-13: 16 commits2026-05-14: 8 commits2026-05-15: 17 commits2026-05-16: 20 commits2026-05-17: 16 commits2026-05-18: 9 commits2026-05-19: 0 commits2026-05-20: 2 commits2026-05-21: 4 commits2026-05-22: 32 commits2026-05-23: 13 commits2026-05-24: 36 commits2026-05-25: 71 commits2026-05-26: 26 commits2026-05-27: 20 commits2026-05-28: 27 commits2026-05-29: 17 commits2026-05-30: 9 commits2026-05-31: 14 commits2026-06-01: 27 commits2026-06-02: 10 commits2026-06-03: 7 commits2026-06-04: 13 commits2026-06-05: 2 commits2026-06-06: 12 commits2026-06-07: 20 commits2026-06-08: 11 commits2026-06-09: 10 commits2026-06-10: 4 commits2026-06-11: 4 commits2026-06-12: 9 commits2026-06-13: 6 commits2026-06-14: 2 commits2026-06-15: 9 commits2026-06-16: 9 commits2026-06-17: 9 commits2026-06-18: 11 commits2026-06-19: 9 commits2026-06-20: 4 commits2026-06-21: 9 commits2026-06-22: 8 commits2026-06-23: 0 commits2026-06-24: 1 commit2026-06-25: 16 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 2 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 20 commits2026-07-03: 19 commits2026-07-04: 13 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 6 commits2026-07-08: 2 commits2026-07-09: 24 commits2026-07-10: 9 commits2026-07-11: 43 commits2026-07-12: 13 commits2026-07-13: 37 commits2026-07-14: 59 commits2026-07-15: 9 commits2026-07-16: 1 commit2026-07-17: 41 commits2026-07-18: 13 commits2026-07-19: 14 commits2026-07-20: 11 commits2026-07-21: 4 commits2026-07-22: 6 commits2026-07-23: 10 commits2026-07-24: 4 commits2026-07-25: 5 commits2026-07-26: 4 commits2026-07-27: 1 commit2026-07-28: 1 commit2026-07-29: 15 commits2026-07-30: 16 commits2026-07-31: 19 commits2026-08-01: 2 commits2026-08-02: 13 commits2026-08-03: 17 commits2026-08-04: 9 commits2026-08-05: 6 commits2026-08-06: 4 commits2026-08-07: 2 commits2026-08-08: 0 commits
1,330 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    14,301 stars

  • Very active

    1,330 commits in 52 weeks

  • Continuous integration

    Automated checks passing

  • Repeat trending

    5 trending appearances

What react-doctor does

React Doctor scans JavaScript and TypeScript source files to identify suboptimal patterns in React applications. It acts as an automated reviewer, finding deterministic issues related to state management, side effects, performance bottlenecks, and accessibility. Designed to work across any React framework including Next.js, Vite, and React Native, it can even inspect inline script blocks in HTML files. It integrates directly into CI pipelines to review pull requests, reporting only new regressions rather than backlog issues.

React Doctor is tailored for frontend developers, engineering managers, and AI coding agent operators who want to maintain high code quality standards. It assumes familiarity with React fundamentals and Node.js environments.

  • Deterministic Scanning: Analyzes your codebase for concrete, proven issues across multiple architectural domains.
  • Framework Agnostic: Seamlessly works with Next.js, Vite, TanStack, React Native, and Expo without extra setup.
  • CI Pipeline Integration: Reviews pull requests and posts a summary comment highlighting only newly introduced problems.
  • Agent Skill Mode: Provides an installable skill allowing coding agents to learn from issues and fix them autonomously.
  • Inline Script Inspection: Capable of parsing and scanning JavaScript embedded directly within standard HTML files.
  • Opt-out Telemetry: Provides transparent, anonymous usage reporting with a simple flag to disable it entirely.

Where teams use it

Automated pull request reviews

Engineering teams can catch React anti-patterns in CI before they merge into the main branch, reducing technical debt.

Performance bottleneck detection

Frontend developers can proactively discover state and effect loops that cause unnecessary re-renders.

Coding agent enhancement

AI agent operators can install the React Doctor skill, teaching tools like Claude Code and Cursor to write cleaner React.

Accessibility compliance auditing

QA engineers can scan codebases for missing ARIA attributes and structural accessibility flaws directly from the terminal.

Getting started: npx react-doctor@latest

README

main branch
React Doctor

version downloads

Your agent writes bad React, this catches it.

React Doctor deterministically scans your codebase and finds issues across state & effects, performance, architecture, security, and accessibility.

Works across React frameworks and React-enabled sites - Next.js, Vite, Astro, TanStack, React Native, Expo, you name it.

Website →

Install

1. Quick start

Run this at your project root to get an audit.

npx react-doctor@latest
Main.mp4

2. Install for agents

Once you have an audit, you can install the skill for your coding agent to learn from the issues and fix them in the future.

npx react-doctor@latest install

Works with Claude Code, Cursor, Codex, OpenCode, and many more.

3. Run in CI

React Doctor reviews every pull request and reports only the issues your change introduced, not your existing backlog. Set it up with one command:

npx react-doctor@latest ci install

This adds the workflow, scans every pull request, and posts a summary comment. Change the gate, scan scope, and comments anytime with react-doctor ci config, and bump the action with react-doctor ci upgrade. GitHub Actions is fully supported; GitLab CI gets a gate-only scaffold.

CI docs →

4. Configure rules

You can configure which rules to run and how to run them in doctor.config.ts.

Learn more →

Telemetry

The CLI reports crashes, basic run traces, and anonymous usage counters to Sentry to help us fix bugs and prioritize work.

We collect:

  • Environment: CLI version, platform, Node version
  • Invocation: which command, package manager, and run context (whether it's local vs. CI vs. coding agent)
  • Project shape: framework, React version, TypeScript, project size (NO file contents)
  • Rules fired: rule names and counts only (e.g. react-doctor/no-array-index-as-key) (NO code or specific findings)
  • De-minified React Doctor CLI stack traces

To opt out, run: npx react-doctor@latest --no-telemetry

Contributing

Issues welcome!

MIT-licensed

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

186 total
  1. react-doctor@0.9.6react-doctor@0.9.6Aug 7, 2026

    ### Patch Changes - [#1592](https://github.com/millionco/react-doctor/pull/1592) [`ac4e51f`](https://github.com/millionco/react-doctor/commit/ac4e51f6856dd0df091eed6ed4cdcb190574c048) Thanks [@aidenybai](https://github.com/aidenybai)! - Detect React Compiler transforms passed through an installed `@rolldown/plugin-babel` wrapper. - [#1584](https://github.com/millionco/react-doctor/pull/1584) [`4b03b15`](https://github.com/millionco/react-doctor/commit/4b03b15cbea22802990e66a4dbbf067930be6361) Thanks [@aidenybai](https://github.com/aidenybai)! - Load standard JavaScript and TypeScript Knip configuration files when collecting dead-code entry and ignore patterns. - [#1596](https://github.com/millionco/react-doctor/pull/1596) [`d62caa5`](https://github.com/millionco/react-doctor/commit/d62caa575f9bcf2abca5933f2899dd907a3d344d) Thanks [@aidenybai](https://github.com/aidenybai)! - Accept trailing loading resets after non-rethrowing catch handlers, and preserve effect-local cleanup helpers with deterministic false-positive and false-negative fuzz replay. - Updated dependencies [[`2b8bc5c`](https://github.com/millionco/react-doctor/commit/2b8bc5cf9d524594e3a3f923e463f128fd4a7ac9), [`a4

  2. oxlint-plugin-react-doctor@0.9.6oxlint-plugin-react-doctor@0.9.6Aug 7, 2026

    ### Patch Changes - [#1599](https://github.com/millionco/react-doctor/pull/1599) [`a4d2c5c`](https://github.com/millionco/react-doctor/commit/a4d2c5c8bf45c3e38f07e2ffbaae5fe4443f5754) Thanks [@aidenybai](https://github.com/aidenybai)! - Recognize browser media capability and playback lifecycles without masking unrelated prop-driven state adjustments, and resolve cross-file helpers with dotted basenames. - [#1597](https://github.com/millionco/react-doctor/pull/1597) [`4ffeb2c`](https://github.com/millionco/react-doctor/commit/4ffeb2cb71e195d21d3693a7578be7f74ee78d19) Thanks [@aidenybai](https://github.com/aidenybai)! - Fix derived-state detection through render-updated refs and avoid flagging finite timer lifecycle shutdowns as prop-driven state adjustments. - [#1596](https://github.com/millionco/react-doctor/pull/1596) [`d62caa5`](https://github.com/millionco/react-doctor/commit/d62caa575f9bcf2abca5933f2899dd907a3d344d) Thanks [@aidenybai](https://github.com/aidenybai)! - Accept trailing loading resets after non-rethrowing catch handlers, and preserve effect-local cleanup helpers with deterministic false-positive and false-negative fuzz replay.

  3. eslint-plugin-react-doctor@0.9.6eslint-plugin-react-doctor@0.9.6Aug 7, 2026

    ### Patch Changes - [#1599](https://github.com/millionco/react-doctor/pull/1599) [`a4d2c5c`](https://github.com/millionco/react-doctor/commit/a4d2c5c8bf45c3e38f07e2ffbaae5fe4443f5754) Thanks [@aidenybai](https://github.com/aidenybai)! - Recognize browser media capability and playback lifecycles without masking unrelated prop-driven state adjustments, and resolve cross-file helpers with dotted basenames. - [#1597](https://github.com/millionco/react-doctor/pull/1597) [`4ffeb2c`](https://github.com/millionco/react-doctor/commit/4ffeb2cb71e195d21d3693a7578be7f74ee78d19) Thanks [@aidenybai](https://github.com/aidenybai)! - Fix derived-state detection through render-updated refs and avoid flagging finite timer lifecycle shutdowns as prop-driven state adjustments. - Updated dependencies [[`a4d2c5c`](https://github.com/millionco/react-doctor/commit/a4d2c5c8bf45c3e38f07e2ffbaae5fe4443f5754), [`4ffeb2c`](https://github.com/millionco/react-doctor/commit/4ffeb2cb71e195d21d3693a7578be7f74ee78d19), [`d62caa5`](https://github.com/millionco/react-doctor/commit/d62caa575f9bcf2abca5933f2899dd907a3d344d)]: - oxlint-plugin-react-doctor@0.9.6

  4. deslop-js@0.9.6deslop-js@0.9.6Aug 7, 2026

    ### Patch Changes - [#1589](https://github.com/millionco/react-doctor/pull/1589) [`2b8bc5c`](https://github.com/millionco/react-doctor/commit/2b8bc5cf9d524594e3a3f923e463f128fd4a7ac9) Thanks [@aidenybai](https://github.com/aidenybai)! - Expose declared dependencies conservatively excluded from unused-dependency analysis and explain the exclusions in human-readable CLI output.

  5. deslop-cli@0.9.6deslop-cli@0.9.6Aug 7, 2026

    ### Patch Changes - [#1589](https://github.com/millionco/react-doctor/pull/1589) [`2b8bc5c`](https://github.com/millionco/react-doctor/commit/2b8bc5cf9d524594e3a3f923e463f128fd4a7ac9) Thanks [@aidenybai](https://github.com/aidenybai)! - Expose declared dependencies conservatively excluded from unused-dependency analysis and explain the exclusions in human-readable CLI output. - Updated dependencies [[`2b8bc5c`](https://github.com/millionco/react-doctor/commit/2b8bc5cf9d524594e3a3f923e463f128fd4a7ac9)]: - deslop-js@0.9.6

Commits per week

last 52 weeks
2060Week of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 5 commitsWeek of 2026-02-15: 161 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 3 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 1 commitsWeek of 2026-04-05: 6 commitsWeek of 2026-04-12: 19 commitsWeek of 2026-04-19: 1 commitsWeek of 2026-04-26: 20 commitsWeek of 2026-05-03: 59 commitsWeek of 2026-05-10: 63 commitsWeek of 2026-05-17: 76 commitsWeek of 2026-05-24: 206 commitsWeek of 2026-05-31: 85 commitsWeek of 2026-06-07: 64 commitsWeek of 2026-06-14: 53 commitsWeek of 2026-06-21: 34 commitsWeek of 2026-06-28: 54 commitsWeek of 2026-07-05: 84 commitsWeek of 2026-07-12: 173 commitsWeek of 2026-07-19: 54 commitsWeek of 2026-07-26: 58 commitsWeek of 2026-08-02: 51 commitsAug 9, 2025Aug 2, 2026
1.3K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 28 commitsSun 1:00 — 15 commitsSun 2:00 — 10 commitsSun 3:00 — 10 commitsSun 4:00 — 5 commitsSun 5:00 — 1 commitsSun 6:00 — 1 commitsSun 7:00 — 3 commitsSun 8:00 — 2 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 0 commitsSun 14:00 — 0 commitsSun 15:00 — 2 commitsSun 16:00 — 5 commitsSun 17:00 — 9 commitsSun 18:00 — 7 commitsSun 19:00 — 14 commitsSun 20:00 — 6 commitsSun 21:00 — 11 commitsSun 22:00 — 3 commitsSun 23:00 — 14 commitsMon 0:00 — 25 commitsMon 1:00 — 7 commitsMon 2:00 — 10 commitsMon 3:00 — 20 commitsMon 4:00 — 12 commitsMon 5:00 — 14 commitsMon 6:00 — 18 commitsMon 7:00 — 15 commitsMon 8:00 — 5 commitsMon 9:00 — 2 commitsMon 10:00 — 3 commitsMon 11:00 — 8 commitsMon 12:00 — 8 commitsMon 13:00 — 13 commitsMon 14:00 — 18 commitsMon 15:00 — 16 commitsMon 16:00 — 14 commitsMon 17:00 — 13 commitsMon 18:00 — 3 commitsMon 19:00 — 4 commitsMon 20:00 — 2 commitsMon 21:00 — 4 commitsMon 22:00 — 10 commitsMon 23:00 — 12 commitsTue 0:00 — 17 commitsTue 1:00 — 7 commitsTue 2:00 — 4 commitsTue 3:00 — 6 commitsTue 4:00 — 8 commitsTue 5:00 — 4 commitsTue 6:00 — 4 commitsTue 7:00 — 12 commitsTue 8:00 — 4 commitsTue 9:00 — 6 commitsTue 10:00 — 6 commitsTue 11:00 — 5 commitsTue 12:00 — 8 commitsTue 13:00 — 5 commitsTue 14:00 — 5 commitsTue 15:00 — 10 commitsTue 16:00 — 7 commitsTue 17:00 — 9 commitsTue 18:00 — 6 commitsTue 19:00 — 7 commitsTue 20:00 — 12 commitsTue 21:00 — 6 commitsTue 22:00 — 30 commitsTue 23:00 — 15 commitsWed 0:00 — 14 commitsWed 1:00 — 6 commitsWed 2:00 — 4 commitsWed 3:00 — 7 commitsWed 4:00 — 7 commitsWed 5:00 — 1 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 2 commitsWed 10:00 — 7 commitsWed 11:00 — 3 commitsWed 12:00 — 0 commitsWed 13:00 — 0 commitsWed 14:00 — 4 commitsWed 15:00 — 6 commitsWed 16:00 — 8 commitsWed 17:00 — 9 commitsWed 18:00 — 2 commitsWed 19:00 — 5 commitsWed 20:00 — 3 commitsWed 21:00 — 2 commitsWed 22:00 — 6 commitsWed 23:00 — 22 commitsThu 0:00 — 20 commitsThu 1:00 — 11 commitsThu 2:00 — 10 commitsThu 3:00 — 26 commitsThu 4:00 — 8 commitsThu 5:00 — 15 commitsThu 6:00 — 3 commitsThu 7:00 — 1 commitsThu 8:00 — 1 commitsThu 9:00 — 0 commitsThu 10:00 — 5 commitsThu 11:00 — 3 commitsThu 12:00 — 5 commitsThu 13:00 — 2 commitsThu 14:00 — 3 commitsThu 15:00 — 7 commitsThu 16:00 — 3 commitsThu 17:00 — 5 commitsThu 18:00 — 3 commitsThu 19:00 — 15 commitsThu 20:00 — 18 commitsThu 21:00 — 15 commitsThu 22:00 — 9 commitsThu 23:00 — 9 commitsFri 0:00 — 13 commitsFri 1:00 — 21 commitsFri 2:00 — 16 commitsFri 3:00 — 13 commitsFri 4:00 — 8 commitsFri 5:00 — 6 commitsFri 6:00 — 11 commitsFri 7:00 — 18 commitsFri 8:00 — 1 commitsFri 9:00 — 9 commitsFri 10:00 — 0 commitsFri 11:00 — 0 commitsFri 12:00 — 0 commitsFri 13:00 — 4 commitsFri 14:00 — 2 commitsFri 15:00 — 6 commitsFri 16:00 — 11 commitsFri 17:00 — 30 commitsFri 18:00 — 20 commitsFri 19:00 — 20 commitsFri 20:00 — 10 commitsFri 21:00 — 12 commitsFri 22:00 — 9 commitsFri 23:00 — 5 commitsSat 0:00 — 11 commitsSat 1:00 — 14 commitsSat 2:00 — 11 commitsSat 3:00 — 12 commitsSat 4:00 — 8 commitsSat 5:00 — 6 commitsSat 6:00 — 4 commitsSat 7:00 — 2 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 0 commitsSat 11:00 — 0 commitsSat 12:00 — 0 commitsSat 13:00 — 1 commitsSat 14:00 — 1 commitsSat 15:00 — 2 commitsSat 16:00 — 14 commitsSat 17:00 — 5 commitsSat 18:00 — 2 commitsSat 19:00 — 14 commitsSat 20:00 — 16 commitsSat 21:00 — 22 commitsSat 22:00 — 10 commitsSat 23:00 — 10 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Feb 21, 2026daily#25+141
Feb 20, 2026daily#13+145
Feb 19, 2026daily#5+312
Feb 18, 2026daily#4+406
Feb 17, 2026daily#13+174
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    453.6K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • react/react

    The library for web and native user interfaces.

    247.1K stars · JavaScript