# ghostty-org/ghostty — GitHub star history and repository health

Canonical HTML: https://gitdebt.com/ghostty-org/ghostty

> Analytics for a public GitHub repository: star history from gitdebt's Postgres cache, repository health computed from the public Git history. Private repositories are never analyzed or counted.

## Star snapshot

| Metric | Value |
| --- | --- |
| GitHub stars | 59,049 |
| Star actions, trailing 90d | +430 |
| Star actions, trailing 30d | +18 |
| Pace against lifetime average | slowing |
| Star history begins | Dec 2024 |
| Repository created | Mar 2022 |
| Data through | Jul 2026 |

This curve is public GH Archive star *activity*: it records star actions and cannot see unstars, so it is an attention signal rather than a net-star series. 36,874 star actions observed. The GitHub star total above is the headline figure.

## Milestones

| Threshold | First reached |
| --- | --- |
| 100 | Dec 2024 |
| 1k | Dec 2024 |
| 10k | Dec 2024 |

## Repository health

| Reading | Question | Verdict | Evidence |
| --- | --- | --- | --- |
| Maintenance | Is anyone still shipping? | Slowing down | 442 commits in 90 days vs 1.3k in the 90 before |
| Ownership | How many people could walk away? | A few hands | 2 of 623 contributors write half the commits |
| Repair load | How much work is fixing rather than building? | Mostly building | 3% of file changes came from fix-labelled commits |
| Debt markers | Is known debt piling up? | Growing fast | +12 in 90 days · 12 TODO/FIXME outstanding |

| Fact | Value | Detail |
| --- | --- | --- |
| Change hotspot | `src/config/Config.zig` | 776 changes · 56 fix-labelled |
| Touched this year | `91%` | 26k of 28k tracked files |
| Commits read | `17k` | bounded analysis window |

Repository-health figures describe a bounded analysis window rather than the full commit history. Say so if you quote them.

## Put this in a README

Every asset below is a plain public image URL for `ghostty-org/ghostty`. No account, token, build step, or GitHub Action is involved. Paste a snippet as-is: it already carries light and dark variants, alt text, and the link back to the report.

### Metrics badge

Stars and forks in one compact chip, served from gitdebt's cache.

Goes in the badge row directly under the project title, alongside CI and license badges.

```html
<a href="https://gitdebt.com/ghostty-org/ghostty?ref=readme">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://api.gitdebt.com/api/repos/ghostty-org/ghostty/badge.svg?metrics=stars,forks&theme=dark" />
    <img alt="ghostty-org/ghostty stars and forks" src="https://api.gitdebt.com/api/repos/ghostty-org/ghostty/badge.svg?metrics=stars,forks&theme=light" />
  </picture>
</a>
```

### Star history

The full cumulative star curve, served from Postgres.

Goes in a `## Star history` section near the bottom of the README, above License.

```html
<a href="https://gitdebt.com/ghostty-org/ghostty?ref=readme">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://api.gitdebt.com/api/repos/ghostty-org/ghostty/chart.svg?theme=dark" />
    <img alt="ghostty-org/ghostty star history" src="https://api.gitdebt.com/api/repos/ghostty-org/ghostty/chart.svg?theme=light" />
  </picture>
</a>
```

### Repository card

Stars, forks, contributors, languages, and a 90-day sparkline in one panel.

Goes in an About or Project status section, or a docs-site sidebar.

```html
<a href="https://gitdebt.com/ghostty-org/ghostty?ref=readme">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://api.gitdebt.com/api/repos/ghostty-org/ghostty/card.svg?theme=dark" />
    <img alt="ghostty-org/ghostty repository statistics" src="https://api.gitdebt.com/api/repos/ghostty-org/ghostty/card.svg?theme=light" />
  </picture>
</a>
```

### Repository-health charts

Same `<picture>` shape, different path. Add at most two, in a Project health or Contributing section.

| Chart | URL | Shows |
| --- | --- | --- |
| Commit calendar | `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stats/heatmap.svg` | Daily commit density across the last 52 weeks. |
| Maintenance pulse | `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stats/commit-trend.svg` | Commit volume over time, so a slowdown is visible rather than implied. |
| Contributors | `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stats/contributors.svg` | Who is actually landing commits, ranked, with avatars inlined. |
| Ownership concentration | `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stats/bus-factor.svg` | How few people write half the commits. |
| Language activity | `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stats/lines.svg` | Lines of code by language across the analyzed history. |
| File change frequency | `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stats/top-files.svg` | The files the most commits touch, dependency manifests excluded. |
| Fix-labelled changes | `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stats/bug-magnets.svg` | Files most often touched by commits whose message reads like a fix. |
| TODO/FIXME movement | `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stats/todo-trend.svg` | Whether known debt markers are being added or paid down. |

### Earned signal badges

Read `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/earned-badges.json` first: it returns one entry per signal with an `earned` boolean. Publish only earned signals — an unearned one renders greyed out and claims nothing.

URL shape: `https://api.gitdebt.com/api/repos/ghostty-org/ghostty/badge.svg?signal=SIGNAL&theme=dark` where `SIGNAL` is `active`, `community`, `momentum`, or `contributor-ready`.

## Embedding rules

- No account, token, or API key is involved. Every URL is a plain public image.
- Themes are baked into each asset because GitHub renders README images against the reader's OS preference, not the page. Publish both variants with an HTML `<picture>` element, or pick one explicitly with `theme=light` / `theme=dark`. There is no `theme=auto`.
- Published snippets are static. Motion is opt-in: add `animate=1` to an SVG URL, or use the `.gif` variant where one exists, because GitHub strips SVG animation from README images in several contexts.
- Keep the surrounding link and its `?ref=readme` parameter. Attribution lives on the link; the image URL stays plain so CDNs can cache it.
- Do not add cache-busting query parameters. Media is edge-cached for a few hours by design and refreshes on its own.
- Alt text is not optional. Say what the image shows, not "chart".
- A repository nobody has analyzed yet renders a placeholder frame and queues the work instead of failing. Load the page once, or wait a few minutes, and the real chart replaces it at the same URL.

The complete asset catalog, with every snippet, is at https://gitdebt.com/badges.md.

## Live data

- Repository on GitHub: https://github.com/ghostty-org/ghostty
- Star history JSON: https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stars.json
- Star history CSV: https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stars.csv
- Repository-health summary: https://api.gitdebt.com/api/repos/ghostty-org/ghostty/health.json
- Repository-health detail: https://api.gitdebt.com/api/repos/ghostty-org/ghostty/stats.json
- Earned badges: https://api.gitdebt.com/api/repos/ghostty-org/ghostty/earned-badges.json
- Queue and ETA snapshot: https://api.gitdebt.com/api/repos/ghostty-org/ghostty/progress.json
- Queue and ETA stream (SSE): https://api.gitdebt.com/api/repos/ghostty-org/ghostty/progress

Catalog snapshot: 2026-08-01T13:00:51Z
