This is a submission for Weekend Challenge: Passion Edition
What I Built
Every developer has a graveyard of side projects — started with fire, abandoned quietly on a Tuesday. They deserved better than an empty GitHub repo gathering digital dust.
DevGraveyard is a gothic memorial platform where developers give their abandoned passion projects a proper burial. Connect your GitHub, pick a dead repo, carve its epitaph — and watch Gemini AI write a dramatic breakup letter from you to the project.
Here's what it does:
- ⚰️ Bury a project — 3-step burial wizard: pick a repo → choose cause of death ("Never Made it Past Localhost", "Ran Out of Weekend", "It Was Complicated"...) → write an epitaph
- 🪦 Real tombstone data — pulls your actual commit history: peak obsession streak, most commits in a single day, last commit message (your final words)
- 🤖 AI Eulogy — Google Gemini writes a dramatic breakup letter from you to the project, referencing your real commit data
- 🕯️ Community mourning — light candles, leave RIP messages, vote to resurrect projects
- 🌐 3D Graveyard — a full Three.js interactive cemetery: bare trees, fireflies, flickering candles, soul wisps, resurrection pulse rings. Click any tombstone to interact
My own ARweave repo had 56 commits, a 2-day peak streak, 30 commits on its best day. Cause of death: "Never Made it Past Localhost." Last words: "feat: overlay plane in 3D builder — drag/scale image on marker, position saved to DB and restored in AR viewer."
It worked until it worked.
Demo
🔗 Live → devgraveyard.varshithvhegde.in
Code
Varshithvhegde
/
devgraveyard
Give your abandoned passion projects a proper burial. A gothic graveyard for dead side projects.
⚰️ DevGraveyard
A memorial for your abandoned side projects. They deserved better than an empty GitHub repo gathering digital dust.
Live → devgraveyard.varshithvhegde.in
What is this?
Every developer has a graveyard of passion projects — started with fire, abandoned quietly on a Tuesday. DevGraveyard gives them a proper burial.
- Bury a project — connect GitHub, pick a dead repo, choose a cause of death ("Never Made it Past Localhost", "Ran Out of Weekend", "It Was Complicated"...), write an epitaph
- Real tombstone data — pulls your actual commit history: peak streak, most commits in a day, last commit message as "final words"
- AI Eulogy — Google Gemini writes a dramatic breakup letter from you to the project, referencing your real commit data
- Community mourning — light candles, leave RIP messages, vote to resurrect projects
-
3D Graveyard — a full Three.js interactive cemetery at
/graveyard-3d. Click tombstones…
How I Built It
The Stack
| Layer | Tech |
|---|---|
| Frontend | Next.js 14 (App Router), TypeScript, Tailwind CSS, shadcn/ui |
| Auth + Database | Supabase (GitHub OAuth, Postgres, Row Level Security) |
| AI | Google Gemini gemini-2.5-flash
|
| 3D | Three.js + React Three Fiber + @react-three/drei |
| Animations | Motion (Framer Motion successor) |
| Deployment | Vercel |
Step 1 — Burying a Project
When you click "Bury a Project", a 3-step wizard walks you through:
- Choose Victim — your GitHub repos load via the API. Already-buried repos show an "already buried" badge and are disabled so you can't bury the same project twice.
- Write the Epitaph — pick a cause of death from a curated list or write your own. Add an optional epitaph (100 chars max). In the background we fetch your full commit history.
- Confirm Burial — a live tombstone preview renders with your real data before you commit.
Step 2 — Commit History as Emotional Data
This is the technical heart of the project. When you bury a repo, we paginate through the entire commit history via the GitHub API and compute what I call "obsession data":
// From src/lib/github/analyze.ts
export function computePeakObsession(commits: GitHubCommit[]) {
// commits per day → longest consecutive streak
// latest commit between midnight–5am → "latest night session"
// max commits in a single day → "best day"
// ...
}
These numbers feed directly into the tombstone — and into the Gemini prompt. A project that died after 30 commits on its best day tells a different story than one with 3 total commits.
Step 3 — The AI Eulogy
The eulogy prompt is carefully engineered to produce something specific, not generic:
Write exactly 3 paragraphs. Format as a letter FROM the developer
TO the project. Tone: dramatic, darkly funny, genuinely melancholic.
Opening: "Dear {repo_name},"
Reference at least 2 of these real data points:
- Peak obsession: 30 commits in a single day
- Latest night session: 2:34 AM
- Cause of death: "Never Made it Past Localhost"
- Last commit message: "feat: overlay plane in 3D builder..."
Close with: "Yours, but not anymore, — A Tired Developer"
Max 250 words. No markdown.
The results are genuinely surprising. Gemini knows you committed at 2 AM. It writes about that specific obsession. Here's what it produced for my ARweave project:
"I remember the fervor, the peak obsession when I clocked 30 commits in a single day, mapping out every PLpgSQL schema and every front-end interaction. We built features that felt so robust within the confines of our little local development environment. You were a vibrant, if demanding, companion, demanding all my CPU cycles and mental bandwidth..."
The eulogy reveals with a typewriter animation when first generated, then persists in Supabase forever.
Step 4 — The 3D Graveyard
The 3D view at /graveyard-3d is a full Three.js scene built with React Three Fiber.
The tombstone shape is a single ExtrudeGeometry from a THREE.Shape — a rectangle with absarc for the semicircular arch. Much cleaner than a box + half-cylinder:
function makeTombShape() {
const w = 0.34, h = 0.95;
const shape = new THREE.Shape();
shape.moveTo(-w, 0);
shape.lineTo(-w, h);
shape.absarc(0, h, w, Math.PI, 0, false); // perfect semicircle
shape.lineTo(w, 0);
return shape;
}
Animations in the scene:
- Tombstones rise from underground on load, staggered by index (ease-out cubic)
-
FlickerCandle— cone flame with per-frame scale noise + matchingPointLightintensity flicker -
SoulWisps— glowing orbs float upward from tombstones with candles lit -
ResurrectPulse— an expandingringGeometryon the ground below voted tombstones - 55 firefly particles with sine-wave drift
- Fog, stars, bare winter trees, directional moonlight
You can light candles and vote to resurrect directly from the 3D panel — it calls the real API and the stone reacts in real time.
The Public Graveyard Wall
Every buried project joins the public memorial wall at /graveyard, sortable by newest, most mourned, or most resurrection votes.
Design Philosophy
The entire aesthetic is built around one idea: this should feel like a real memorial, not a joke. Developers genuinely grieve abandoned projects. The tombstones use engraved text, chiseled dividers, moss at the base. The AI eulogy takes commit data seriously. The community features are real interactions — your candle is stored in a database, your RIP message has an author and a timestamp.
The passion isn't just the theme. It's the subject matter.
Prize Categories
🏆 Best Use of Google AI
DevGraveyard uses Google Gemini (gemini-2.5-flash) as the emotional core of the product. The eulogy generation prompt is engineered to reference specific real data points from the user's commit history — producing output that feels genuinely personal rather than generic AI text.
The key insight: the AI isn't just generating content, it's transforming raw GitHub telemetry (commit counts, timestamps, last message) into something that makes you feel the loss of a project you actually cared about.
The eulogy is generated once per tombstone (owner only), stored permanently in Supabase, and revealed with a typewriter animation. It costs one API call and lasts forever — the project's eulogy becomes part of its memorial.
Built in a weekend. My ARweave repo will never see production. But now it has a tombstone. That's something.






Top comments (44)
What a great, although grim and potentially sad idea, awesome job on the execution!
Next step would be to establish this as a service akin to Readthedocs. Something like automatic detection of
BURIAL.md(a file that people can add to their projects to signal them as buried to people looking at the source code) in public repos and a nice rendering thereof. Perhaps this could be stablished as a semi-standard...?Great idea will see this
This's brilliant and honestly hurts a little.The "Never Made It Past Localhost"cause of death hits way too close to home.I probably have about 30 repos right now gathering digital dust that deserve a proper gothic burial.Pulling the actual commit history data to make the eulogy specific is genius.Definitely going to go bury a few of my abandoned weekend projects today.
Agreed 🫠
Okay this is spooky — I built a cemetery for abandoned repos for this same challenge (posted it yesterday - dev.to/uptimearchitect/side-projec... ), and seeing someone else land on "passion = the projects we abandoned" independently makes me feel very seen 😄 The 3D graveyard with candle lighting is beautiful, and community resurrection votes is a great twist. We took opposite roads on architecture — mine is zero-backend/no-login (type any username, get roasted) — which makes the comparison really fun. Great minds mourn alike. 🪦🔥
Woah it is spooky i haven't seen the one you did please add a link here I wanna see that 🙌🙌
This is actually a nice "side project" i have seen in a while.
Thank You😇
I am too delusional for this to work for me.
My personal projects are rarely if ever "dead," they are on indefinite holds until I get back to them some day for sure.
Hey, maybe having a cool graveyard system would help me with that.
Great idea man . How do you get thiese kind of ideas? I also have many such flaming starts and dusty lazy ending projects in my github. Creative way to think a idea there.
Haven't seen a project like this before . Keep going with that brainstorming ideas. ❤️
Thanks bro
The "Never Made it Past Localhost" option got me. I have a few repos that would qualify without any debate.
Nice
This is hilarious! Pouring one out for all the abandoned side projects 🫡
Thank you it was fun building if you any fun idea to add to it let me know I will try to add it
What a creative and unique idea! Turning abandoned side projects into a virtual cemetery with AI-generated eulogies is both funny and thought-provoking. Thanks for sharing such an original project!
Thank you
That's a Good One 👏
Thanks😇
Some comments may only be visible to logged-in visitors. Sign in to view all comments.