I noticed a pattern in my own work and across GitHub: developers build incredible things for hackathons, college projects, or resume boosters, and then immediately forget about them. The task gets completed, the internship is secured, and the repository just sits there gathering dust.
But I firmly believe that someone's abandoned trash could be someone else's gold. An abandoned project could be the perfect starting point for another developer. I wanted to build a way for people to explore these 'dead' projects in a spatial, 3D environment - a literal graveyard of code.
"What if you could inherit a dead project and resurrect it?"
I also wanted it to be emotional. Developers get attached to their code. What if, before a project dies, the original creator could leave a 'Last Will and Testament'? A message like 'Keep it open source' that is only revealed to the developer brave enough to resurrect it.
To make this work, the system needed to actively track the heartbeat of repositories. I built a rigid state machine that tracks projects from BORN, to ACTIVE, to STALLED, and finally DEAD. To manage this without hitting GitHub API rate limits, I orchestrated two staggered background workers: one runs at 9:00 AM IST to decay inactive projects, and another at 12:00 PM IST where Groq AI synthesizes raw commit histories into poetic, 30-word cinematic observations.
While a project is ACTIVE, developers can bury digital relics in a Time Capsule - final messages, architectural notes, and roadmaps. When future developers resurrect the project, they uncover these sealed capsules via an interactive drag-and-drop React Flow canvas.
If a project reaches the SHIPPED state, it gains immortality. Its health is frozen at 90-100 forever, and it is immortalized in the 'Hall of Legacy' - a dedicated cinematic masonry grid utilizing GSAP scroll choreography.
The state machine was incredibly difficult to stabilize. The rule-based backend followed the lifecycle logic perfectly, but the AI agents (powered by Llama 4 Scout) responsible for calculating the 'health' of the projects did not.
There were times when the AI would hallucinate a project's state or fail to trigger a transition from STALLED to DEAD despite zero commits. I had to write extensive Vitest test suites to catch these edge cases, eventually hard-locking the AI's output into strict, parseable formats to fix the state transition bugs.
During mobile testing, rapid swipes and fast tapping caused the entire page to freeze solid. Neither scrolling worked, nor could users tap any buttons or 3D canvas nodes.
The culprit was a turf war between Lenis Smooth Scroll and GSAP ScrollTrigger. On fast mobile flicks, Lenis's delta accumulator desynced from GSAP's ticker, calling preventDefault() while waiting for a momentum tick that never arrived. Disabling virtual touch smoothing on mobile (smoothTouch: false) and syncing Lenis strictly via gsap.ticker.add() on desktop eliminated the deadlock completely.
Building the actual 3D graveyard in Three.js was the hardest engineering challenge of the entire project. My vision was very specific: an infinite, eerie, endless graveyard. I couldn't find any existing Three.js projects that matched what I needed, so I wrote custom vertex and fragment shaders from scratch.
To make it truly infinite without crashing the browser, I implemented a 'treadmill' technique. Instead of generating new geometry endlessly, the environment loops, repositioning objects as the camera moves past them, efficiently rendering over 12,000 instanced grass blade meshes.
Resource management was critical. To hide the distant culling and pop-in of the instanced tombstones, I took inspiration from classic video games like Silent Hill and applied a dense layer of volumetric fog. It hid the rendering limitations perfectly while significantly adding to the cinematic atmosphere.
The final piece of the puzzle was the 'Resurrection Protocol.' Initially, I wasn't sure how a user could actually inherit a dead project. Simply linking to the GitHub repo wasn't enough.
I built an auto-forking mechanism using the GitHub API. When a user chooses to resurrect a project, the system reads the original developer's 'Will', automatically forks the repository to the new user's account, and maps a generational family tree tracking the project's descendants and lineage depth across multiple resurrections using React Flow.
To top it off, every project page features an AI Resident Chatbot that has consumed the project's entire history. It acts as a cinematic narrator, refusing to break character while answering technical questions about the codebase's legacy.
Despite the bugs in the state machine and the steep learning curve of Three.js (all while I was learning Next.js simultaneously!), the final experience is exactly what I envisioned: a highly technical, emotional, and interactive tribute to the code we leave behind.