Inspiration
Every developer I know has a graveyard: folders of repos that started with huge excitement and quietly died after a week. What bothered me is that nobody ever asks why. We just start the next project and repeat the same pattern.
I wanted to turn that into something real: a tool that shows developers why their projects die, and warns them before the next one does. When I ran the first version on my own GitHub account, it immediately flagged repos I had forgotten about, and that's when I knew the idea was worth building.
What it does
Project Graveyard takes any GitHub username and analyzes their repositories:
- ðĒðĄð ðŠĶ Classifies every repo as Alive, Sleeping, Dying, or Dead based on commit activity
- ð Draws a commit timeline showing exactly when each project went quiet
- ð Performs an autopsy with the likely causes of death: burst-and-burn (all the work in week one), stillborn (a handful of commits), never introduced (no README), untested, or long coma
- â ïļ Predicts which living repo dies next with an abandonment risk score from 0 to 100
- ðŽ Gives an AI-written autopsy with one concrete step to revive the project this week
Type any username and see their graveyard in seconds.
How we built it
- Data: GitHub REST API for repos, the last 100 commit dates, and each repo's file tree
- Feature engineering: days idle, commit count, first-week burst ratio, longest gap between commits, and whether the repo has a README, tests, CI, and a description
- Scoring: a transparent weighted risk score plus rule-based cause-of-death detection, so every verdict can be explained
- AI layer: an optional Claude-powered autopsy, with a rule-based fallback so the app never breaks
- Frontend: Streamlit, Pandas, and Altair for the dashboard and timeline chart
The pipeline is: fetch â extract features â score â diagnose â visualize.
Challenges we ran into
- API rate limits: GitHub allows only 60 requests/hour without a token, and each analysis needs about 30 calls. I added token support and caching so repeated lookups don't burn the limit.
- Messy real-world repos: empty repos, forks, and missing branches all broke the first version. I had to handle these edge cases carefully.
- Defining "dead": there's no official answer, so I had to choose thresholds and signals that feel fair and are easy to explain.
- Keeping the AI optional: I didn't want the demo to fail because of a missing API key, so the autopsy falls back gracefully.
Accomplishments that we're proud of
- A fully working, deployed app built and shipped within the hackathon window
- An explainable approach: every score and diagnosis traces back to visible signals, with no black box
- A problem that is instantly relatable to every developer who has abandoned a side project
- Handling messy real-world data without crashing
What we learned
- Working with the GitHub API: pagination, authentication, and rate limits
- Turning raw commit history into meaningful features
- Designing a scoring system people can trust because they can see why it says what it says
- That the reasons projects die are surprisingly consistent: no README, no tests, and one burst of energy
What's next for Project Graveyard
- ðĪ Replace the heuristic risk score with a trained model (logistic regression on labeled public repos) with feature importance
- ðŠŠ A shareable "My Graveyard" card
- ð Revival reminders that nudge you when a healthy repo starts to slow down
- ðĨ Team and organization view to spot where projects die across a whole group
Log in or sign up for Devpost to join the conversation.