{"slug": "dev-challenge-w4", "title": "dev challenge w4", "summary": "A developer built Ofrenda, a local-first app that turns recorded or typed memories of a deceased person into a digital ofrenda, using whisper.cpp for transcription and Gemma to extract people, places, foods and songs and to generate a short remembrance in the speaker's own voice. The project was submitted to the Hacktoberfest Open-Source AI Challenge Week 4, themed \"Ghost in the Machine,\" and runs entirely on open weights so private family recordings never leave the device.", "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-first app that helps you build a digital ofrenda for someone you've lost. You record or type a memory, and it transcribes it, pulls out the people, places, foods, and songs, and arranges them on a candlelit altar. Then it writes a short remembrance in the voice of the story you told, not a generic one.\n\nI interpreted \"Ghost in the Machine\" as the opposite of the creepy version. The ghost isn't a haunting. It's a memory that keeps living inside the software. My grandmother's recipes and stories existed only in my family's heads, and I wanted a tool that could keep them without sending them anywhere.\n\n🔗 Live demo: `<your-link>`\n\n🎥 Video walkthrough: `<your-link>`\n\n`whisper.cpp`\nThe pipeline is simple: audio → Whisper → text → Gemma (prompted to return structured JSON of people, foods, songs, and places) → altar items, then Gemma again for the final remembrance. I spent most of my time on the second prompt. The first drafts sounded like a greeting card, so I fed it the speaker's own phrases and told it to keep their rhythm and quirks.\n\nA family's stories are the most private data there is. Sending a recording of my grandmother's voice to a third-party API, where terms can change and the service can disappear, felt wrong for something meant to outlive me.\n\nOpen weights made three things possible that a closed API wouldn't:\n\n`<DevRelay link or embed>`\n\nI tested it with a story my mother told about my grandfather burning rotis every Sunday and insisting they were \"extra crispy on purpose.\" The generated remembrance kept that line, and she went quiet, then laughed, then asked me to play it again. That was the moment I knew it worked. It didn't invent anything. It just kept the story from getting lost.", "url": "https://wpnews.pro/news/dev-challenge-w4", "canonical_source": "https://dev.to/arthur_07/dev-challenge-w4-e3h", "published_at": "2026-10-27 12:31:26+00:00", "updated_at": "2026-10-27 12:42:58.187643+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "generative-ai", "ai-tools", "ai-products"], "entities": ["Ofrenda", "whisper.cpp", "Gemma", "Hacktoberfest Open-Source AI Challenge", "dev.to"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/dev-challenge-w4", "markdown": "https://wpnews.pro/news/dev-challenge-w4.md", "text": "https://wpnews.pro/news/dev-challenge-w4.txt", "jsonld": "https://wpnews.pro/news/dev-challenge-w4.jsonld"}}