Instantly review any public GitHub repository or browse a user's repos,
languages, activity, contributors, and health, in one clean view.
Created by Bilal Malik
Follow on Github bilalmlkdev
Repo Reviewer lets you paste any public GitHub repository and quickly understand its current state without manually navigating through multiple GitHub pages.
Provide either a repository name:
facebook/react
or a complete URL:
https://github.com/facebook/react
The application collects relevant repository information and presents it as a single review containing repository statistics, language distribution, commit activity, contributors, documentation, pull requests, and a transparent health score.
The purpose is not to decide whether a repository is objectively "good" or "bad". It provides useful signals that help developers understand a project faster.
Evaluating a GitHub repository often requires checking several different areas independently:
- Repository statistics
- Languages
- Commit history
- Contributors
- README and documentation
- Issues and pull requests
- Recent development activity
Repo Reviewer brings these signals together in one interface.
This makes it useful for evaluating open-source projects, exploring unfamiliar codebases, researching repositories, finding projects to contribute to, or quickly reviewing your own public projects.
Each repository review can include:
Displays important repository information and activity-related statistics in one place.
Shows the distribution of programming languages used by the repository.
Visualizes recent commit activity so development momentum can be understood at a glance.
Displays the repository's top contributors and provides a quick view of contribution activity.
The repository README can be viewed in two modes:
- Preview - rendered Markdown with GitHub-flavored Markdown support.
- Raw - original README source in a monospaced view.
The health score is a transparent heuristic based on several repository signals:
- Recent activity
- Commit momentum
- Contributor count
- Documentation
- License
- Issue backlog
Each factor is explained in the interface. The score is intentionally presented as a signal rather than an objective measurement of software quality.
Before a repository is searched, every review panel is already rendered using realistic placeholder data.
The panels are then locked with:
- Blur
- Reduced opacity
- A lock indicator
After a successful search, the lock and blur transition away and the real repository data is displayed in the same layout.
When another search begins, the panels lock again. They also remain locked when a request fails, preventing stale results from being presented as current data.
The placeholder data follows the same RepoReview structure as real data, allowing the same components to render both states.
The application uses the GitHub REST API to retrieve repository information.
lib/github.ts handles requests for:
- Repository information
- Languages
- Contributors
- Commit activity
- README
- Open pull requests
Independent requests are fetched in parallel where possible.
GitHub's commit-activity endpoint can return 202 while it calculates statistics. Repo Reviewer automatically retries this request. If the statistics remain unavailable, the chart displays an unavailable state instead of breaking the review.
API errors and rate-limit responses are converted into readable application messages.
The health score is implemented in lib/health.ts.
It combines several observable repository signals into one readable result. The individual factors are exposed so users can understand how the result was produced.
The score should be treated as a starting point for investigation rather than a definitive judgment of repository quality.
lib/store.ts uses Zustand to manage:
- Current repository review
- Loading state
- Error state
- Recent searches
Recent searches are persisted using localStorage.
The interface is divided into focused components.
src/
├── components/
│ ├── Locked.tsx
│ ├── ReadmeTabs.tsx
│ ├── StatsGrid.tsx
│ ├── LanguageBar.tsx
│ ├── CommitChart.tsx
│ ├── Contributors.tsx
│ └── HealthGauge.tsx
│
├── lib/
│ ├── github.ts
│ ├── health.ts
│ ├── store.ts
│ └── placeholder.ts
│
├── styles/
│ └── index.css
│
└── App.tsx
Locked.tsx provides the reusable locked-state behavior.
ReadmeTabs.tsx handles the rendered and raw README views.
placeholder.ts contains fixture data matching the real review type.
Individual review components are responsible only for presenting their respective data.
Clone the repository:
git clone https://github.com/bilalmlkdev/repo-reviewer.git
cd repo-reviewerInstall dependencies:
npm installStart the development server:
npm run devBuild for production:
npm run buildAfter starting the development server, enter a public GitHub repository such as:
facebook/react
vuejs/core
or paste its complete GitHub URL.
Repo Reviewer currently uses unauthenticated GitHub API requests.
GitHub limits unauthenticated requests to 60 requests per hour per IP address. Heavy testing can therefore reach the limit.
When this happens, the application displays an appropriate error instead of exposing a raw API response.
Commit statistics may also take time to become available because GitHub sometimes calculates them asynchronously.
This project is licensed under the MIT License.
MIT License
Copyright (c) 2026 Bilal Malik
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
