{"slug": "ofrenda-a-private-offline-remembrance-writer-for-dia-de-los-muertos", "title": "Ofrenda: A Private, Offline Remembrance Writer for Día de los Muertos", "summary": "A developer built Ofrenda, a local, offline app for writing remembrances of deceased loved ones for Día de los Muertos. The tool runs an open-weight model through Ollama using only the Python standard library, acting as a gentle oral-history interviewer that asks one question at a time and is instructed to use only user-supplied facts, then produces a short remembrance plus an altar item list saved as Markdown and JSON files. The developer said running the model locally keeps highly private memories off third-party servers whose terms can change.", "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**Ofrenda** is a local app for writing a remembrance of someone who has died, built for Día de los Muertos.\n\nYou enter their name, favorite foods and songs, and then share memories. If you get stuck, the model acts as a gentle oral-history interviewer and asks one question at a time, like \"What did their kitchen smell like on a Sunday?\" When you're ready, it writes a short remembrance addressed to them, plus a \"For the ofrenda\" list of items to place on the altar, drawn from the foods, songs and objects you mentioned.\n\nFor the theme, I read \"ghost in the machine\" as the memory of a person, kept alive by the stories we tell. I deliberately did not make the model speak as the dead. It only interviews and writes down, and it is instructed to use **only the facts you give it** and never invent details about a real person.\n\nA local, offline tool for writing a remembrance of someone you've lost, in the spirit of Día de los Muertos Open-weight model (via Ollama), Python standard library only, no cloud, no accounts, no telemetry.\n\n```\nollama pull llama3.2        # or any model: OFRENDA_MODEL=gemma3:4b python3 ofrenda.py\npython3 ofrenda.py          # open http://127.0.0.1:8731\n```\n\nPull the plug on your Wi-Fi afterwards. It still works.\n\nRemembrances are saved as `.md` + `.json` in `./ofrenda_data/`.\n\nOfrenda is a local app for writing a remembrance of someone who has died. You enter their name, favorite foods and songs, then share memories. If you get stuck, the model acts as a gentle oral-history interviewer and asks one question at a time (\"What did their kitchen smell like on a Sunday?\"). It then writes a short remembrance addressed to…\n\nTo run it yourself:\n\n```\nollama pull llama3.2\npython3 ofrenda.py\n# open http://127.0.0.1:8731\n```\n\n`llama3.2`, and you can swap it with `OFRENDA_MODEL=gemma3:4b python3 ofrenda.py`.\nStories about someone who has died are among the most private things a person owns. With a closed API, every one of those memories would travel to a server I don't control, under terms that can change.\n\nRunning an open-weight model locally gave me things a hosted API couldn't:", "url": "https://wpnews.pro/news/ofrenda-a-private-offline-remembrance-writer-for-dia-de-los-muertos", "canonical_source": "https://dev.to/laiba_ashfaq_4b3f4b363ad4/ofrenda-a-private-offline-remembrance-writer-for-dia-de-los-muertos-i3d", "published_at": "2026-11-01 06:18:28+00:00", "updated_at": "2026-11-01 06:21:53.496225+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "generative-ai", "ai-tools", "ai-products"], "entities": ["Ofrenda", "Ollama", "llama3.2", "gemma3:4b", "Hacktoberfest", "Python"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/ofrenda-a-private-offline-remembrance-writer-for-dia-de-los-muertos", "markdown": "https://wpnews.pro/news/ofrenda-a-private-offline-remembrance-writer-for-dia-de-los-muertos.md", "text": "https://wpnews.pro/news/ofrenda-a-private-offline-remembrance-writer-for-dia-de-los-muertos.txt", "jsonld": "https://wpnews.pro/news/ofrenda-a-private-offline-remembrance-writer-for-dia-de-los-muertos.jsonld"}}