DEV Community

Cover image for Hacktober-Fest-In-Peace: A Graveyard for My Dead Bookmarks, Written by a Local AI
Karishma Das
Karishma Das

Posted on

Hacktober-Fest-In-Peace: A Graveyard for My Dead Bookmarks, Written by a Local AI

Hacktoberfest Open-Source AI Challenge: Ghost in the Machine Submission 👻🌼

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine

What I Built

I ran a list of 26 old links through a script, and it flagged 15 of them as dead. Then a small AI model on my own laptop wrote a tombstone for each one.

Hacktober-Fest-In-Peace is a Dead Link Cemetery. You give it your bookmarks (or any list of URLs), and it does four things:

  1. Checks which links are dead.
  2. Looks each one up in the Wayback Machine to find when it was first and last saved.
  3. Reads what the old page said, and a local Gemma model writes a two-line epitaph from only those facts.
  4. Builds a dark, spooky tombstones.html where every dead link has a gravestone: name, years, cause of death, and a "visit the ghost" link to the archived copy.

For the theme, I treated websites as things that live and die. Halloween has the graveyard, and Día de los Muertos has the remembering. A bookmark is a small promise that you'll come back to a page someday, and for most pages, nobody ever does. My tool goes back and says goodbye.

The idea came from a simple fact: every old bookmarks folder is a graveyard nobody has visited.

I ran it on a demo list of 26 old links (famous dead services plus 6 fake addresses I planted on purpose). It flagged 15 as dead and counted 11 as alive. All 6 planted fakes were caught.

Code

Hacktober-Fest-In-Peace

Finds your dead bookmarks, digs up their old copies from the Wayback Machine, and lets a local Gemma model write an epitaph for each one.

How it works

  1. Reads a bookmarks export or a list of URLs.
  2. Checks which links are dead.
  3. Looks up each dead link in the Wayback Machine.
  4. A local model (Gemma via Ollama) writes a two-line epitaph.
  5. Builds tombstones.html, a gallery of tombstones.

Run it

  1. Install Python and Ollama, then run: ollama pull gemma3:4b
  2. pip install requests
  3. python cemetery.py demo_urls.txt --model gemma3:4b
  4. Open tombstones.html

Privacy, honestly

The AI runs on your own machine. Link checking still contacts each site, and Wayback lookups send those URLs to archive.org.

Built for Hacktoberfest Week 5: Ghost in the Machine.




One Python file, cemetery.py, plus a README and the demo list. The only dependency is requests.

How I Built It

Open pieces: Gemma (an open-weight model) running locally through Ollama, and the Wayback Machine's public archive. No paid API and no AI account.

The flow:

  • Bookmark export in, link check on every URL, dead ones go to the Wayback Machine for their first and last saved dates and the old page text.
  • Gemma gets only those facts and a strict prompt: use only what's below, never invent a name or a year, write two short lines. The cause of death comes from the program, not the model, so the model can't make up how a site died.
  • Results are saved in a small cache file, so if a run crashes halfway, rerunning picks up where it stopped.
  • The gallery is plain HTML and CSS with no framework, so it opens anywhere.

What went wrong:

  • The dead-or-alive check is not perfect. Deciding that a website is dead is harder than it sounds. Some live sites answer slowly or refuse scripts, and some dead brands redirect somewhere else and look alive. The script treats a clear "this page is gone" or "this domain doesn't exist" as the strongest evidence of death.

Why Does Open Innovation Matter?

  • The AI reads my browsing past on my own machine. A bookmarks file shows what you worried about at 2 AM. The text of old pages and the epitaph writing never go to an AI company. To be honest about the limits: checking links still contacts each website, and the Wayback lookups send those URLs to archive.org. The local part is the AI, not the whole pipeline.
  • It costs nothing to run, however many links I have. A paid API would make me think twice about running 1,000 dead links.
  • I can swap the model or change the voice (funny, tender, dramatic) by editing one line, without asking a company.
  • It works without an AI account, and it can't disappear because a service shut down. That fits a project about things that disappeared when companies shut down.

Prize Categories

Best Use of Gemma: Gemma runs locally through Ollama and writes every epitaph, grounded only in facts the program supplies.

Top comments (0)