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

> Source: <https://dev.to/karishma24/hacktober-fest-in-peace-a-graveyard-for-my-dead-bookmarks-written-by-a-local-ai-4bmh>
> Published: 2026-10-31 02:14:12+00:00

*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine](https://dev.to/challenges/hacktoberfest-week4-2026-10-26)*

## 
  
  
  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.
