{"slug": "hacktober-fest-in-peace-a-graveyard-for-my-dead-bookmarks-written-by-a-local-ai", "title": "Hacktober-Fest-In-Peace: A Graveyard for My Dead Bookmarks, Written by a Local AI", "summary": "A developer built Hacktober-Fest-In-Peace, a single-file Python tool that checks a list of bookmarks for dead links, pulls first and last archive dates and page text from the Wayback Machine, and has a locally run Gemma 3 4B model via Ollama write a two-line epitaph for each dead site, rendered into a static tombstones.html gallery. In a demo run on 26 URLs, the script flagged 15 as dead and 11 as alive, catching all six deliberately planted fake addresses. The developer notes the dead-or-alive check is imperfect, since slow or script-blocking live sites and redirecting dead brands can be misclassified, and that only the AI runs locally while link checks and archive lookups still contact external servers.", "body_md": "*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)*\n\n## \n  \n  \n  What I Built\n\nI 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.\n\n**Hacktober-Fest-In-Peace** is a Dead Link Cemetery. You give it your bookmarks (or any list of URLs), and it does four things:\n\n1. Checks which links are dead.\n2. Looks each one up in the Wayback Machine to find when it was first and last saved.\n3. Reads what the old page said, and a local Gemma model writes a two-line epitaph from only those facts.\n4. 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.\n\nFor 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.\n\nThe idea came from a simple fact: every old bookmarks folder is a graveyard nobody has visited.\n\nI 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.\n\n## \n  \n  \n  Code\n\n# Hacktober-Fest-In-Peace\n\nFinds your dead bookmarks, digs up their old copies from the Wayback Machine,\nand lets a local Gemma model write an epitaph for each one.\n\n## How it works\n\n1. Reads a bookmarks export or a list of URLs.\n2. Checks which links are dead.\n3. Looks up each dead link in the Wayback Machine.\n4. A local model (Gemma via Ollama) writes a two-line epitaph.\n5. Builds `tombstones.html` , a gallery of tombstones.\n\n## Run it\n\n1. Install Python and Ollama, then run: ollama pull gemma3:4b\n2. pip install requests\n3. python cemetery.py demo_urls.txt --model gemma3:4b\n4. Open tombstones.html\n\n## Privacy, honestly\n\nThe AI runs on your own machine. Link checking still contacts each site,\nand Wayback lookups send those URLs to archive.org.\n\nBuilt for Hacktoberfest Week 5: Ghost in the Machine.\n\n \n \n\nOne Python file, `cemetery.py`, plus a README and the demo list. The only dependency is `requests`.\n\n## \n  \n  \n  How I Built It\n\n**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.\n\n**The flow:**\n\n- 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.\n- 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.\n- Results are saved in a small cache file, so if a run crashes halfway, rerunning picks up where it stopped.\n- The gallery is plain HTML and CSS with no framework, so it opens anywhere.\n\n**What went wrong:**\n\n- \n**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.\n\n## \n  \n  \n  Why Does Open Innovation Matter?\n\n- \n**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.\n- \n**It costs nothing to run,** however many links I have. A paid API would make me think twice about running 1,000 dead links.\n- \n**I can swap the model or change the voice** (funny, tender, dramatic) by editing one line, without asking a company.\n- \n**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.\n\n## \n  \n  \n  Prize Categories\n\n**Best Use of Gemma:** Gemma runs locally through Ollama and writes every epitaph, grounded only in facts the program supplies.", "url": "https://wpnews.pro/news/hacktober-fest-in-peace-a-graveyard-for-my-dead-bookmarks-written-by-a-local-ai", "canonical_source": "https://dev.to/karishma24/hacktober-fest-in-peace-a-graveyard-for-my-dead-bookmarks-written-by-a-local-ai-4bmh", "published_at": "2026-10-31 02:14:12+00:00", "updated_at": "2026-10-31 02:19:41.387744+00:00", "lang": "en", "topics": ["ai-tools", "large-language-models", "generative-ai"], "entities": ["Gemma", "Ollama", "Wayback Machine", "Hacktoberfest", "Python"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/hacktober-fest-in-peace-a-graveyard-for-my-dead-bookmarks-written-by-a-local-ai", "markdown": "https://wpnews.pro/news/hacktober-fest-in-peace-a-graveyard-for-my-dead-bookmarks-written-by-a-local-ai.md", "text": "https://wpnews.pro/news/hacktober-fest-in-peace-a-graveyard-for-my-dead-bookmarks-written-by-a-local-ai.txt", "jsonld": "https://wpnews.pro/news/hacktober-fest-in-peace-a-graveyard-for-my-dead-bookmarks-written-by-a-local-ai.jsonld"}}