Skip to content

Repository files navigation

Gita

A local-first dashboard for understanding activity, contributors, and change across Git repositories.

Node.js 24 TypeScript Next.js License: MIT Local first

Gita project analytics dashboard

Gita turns Git history into a clear engineering analytics dashboard. Group repositories into projects, refresh their data on demand, and explore the people and files behind every change—all from a local web application.

One dashboard for the whole project

Gita is not limited to a single repository. You can manage multiple independent projects, attach multiple repositories to each one, and see their Git history as one coherent product view.

  • Keep backend, frontend, infrastructure, and shared-library repositories under the same project.
  • Aggregate commits, line changes, churn, contributors, and activity across all repositories in that project.
  • Compare repositories side by side or narrow every view to one repository without losing the project-level context.
  • Refresh an entire project at once or update a single repository on demand.

Understand every contributor

See who is driving activity across the project, compare commits and line-change metrics, and understand which file types each contributor works with. Gita normalizes Git identities so project-wide leaderboards remain useful even when the work is split across several repositories.

Gita contributor analytics and file type share

Find where change concentrates

Explore the current file landscape alongside historical change. File-type breakdowns, touched-file counts, and churn metrics make it easier to spot the technologies and parts of a project that absorb the most work.

Gita file type analytics and churn breakdown

What you can explore

  • Project-level analytics across multiple repositories
  • Commits, insertions, deletions, net line change, and churn over time
  • Contributor leaderboards, activity trends, and focus areas
  • Repository comparisons, branch activity, hot files, and file-type insights
  • Reusable branch views with per-repository folder filters
  • GitHub pull requests and branch metadata through the optional gh CLI
  • Composable filters for repository, contributor, branch, folder, date, and metric

Gita is local-first and read-only toward analyzed repositories. Its database, mirror caches, logs, and exports stay inside .gita/ in the application directory.

Quick start

Requirements

Clone or download the repository, then run:

cd gita
npm ci
npm run dev

Open http://127.0.0.1:4444 in your browser. The local API runs at http://127.0.0.1:4443.

The database and required runtime directories are created automatically on first start.

Add your first repository

  1. Create a project from the dashboard.
  2. Add a repository using a local path, HTTPS URL, SSH URL, or GitHub shorthand such as owner/repository.
  3. Select Refresh to analyze the repository.
  4. Use the dashboard filters and tabs to explore the results.

For GitHub pull request enrichment, authenticate the optional CLI before refreshing:

gh auth login
gh auth status

Core Git analytics continue to work when gh is missing, unauthenticated, or temporarily unavailable.

How it works

Gita never checks out or modifies the repositories it analyzes. Remote repositories are cloned as bare mirrors into the app-owned .gita/repos/ cache; later refreshes update only those caches with git fetch --prune. Provider metadata is read through the local gh CLI.

apps/web                 Next.js dashboard
apps/api                 Fastify API and refresh worker
packages/core            Domain types and metric aggregation
packages/db              SQLite and Drizzle data layer
packages/git-engine      Safe Git execution and parsing
packages/github-adapter  Read-only GitHub integration through gh

The application uses TypeScript, npm workspaces, Turborepo, Next.js, Fastify, SQLite, Drizzle ORM, Tailwind CSS, Radix UI, Apache ECharts, and TanStack Table.

Development

npm run build       # Build every workspace
npm run test        # Run the Vitest suite
npm run lint        # Lint the codebase
npm run typecheck   # Check strict TypeScript types
npm run format      # Format with Prettier

Database utilities:

npm run db:generate
npm run db:migrate
npm run db:studio

Metric notes

Line metrics come from Git --numstat: they describe historical change, not the current size or absolute ownership of the codebase. Merge commits remain in commit counts but are excluded from contributor line-change totals. Binary files do not contribute line counts.

License

Gita is available under the MIT License. You may use, copy, fork, modify, and distribute it, including for commercial purposes, as long as the copyright and license notice remain included. The software is provided as is, without warranty; its authors are not liable for how it is used.


Suggested GitHub topics: git · git-analytics · repository-analytics · engineering-metrics · developer-tools · code-churn · contributor-insights · github-analytics · local-first · typescript · nextjs

About

Local-first Git analytics dashboard for multi-repository projects — track contributors, commits, code churn, branches, files, and GitHub pull requests.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages