DEV Community

Afterlight - The Ghost Is the Thread, Not the Impersonation

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

What I Built

Afterlight is a local-first family memory archive built around a simple idea: memories should stay personal, even when AI helps us revisit them.

A family is full of small details that might seem ordinary at the time: a recipe passed down through generations, a familiar saying, a song someone used to hum, or a little ritual that made a house feel like home. Over time, those details become scattered across notes and recollections. Afterlight brings them together in one private archive and uses a locally running open-weight model to help users discover connections between them.

The inspiration behind the project is the idea of a ghost in the machine: an echo of someone's presence found in the things they left behind. But there is an important boundary. Afterlight does not impersonate someone who has died, invent conversations with them, or claim to know what they would say. It reflects on recorded memories and shows the original sources so the family can decide what those memories mean.

The starter archive uses fictional stories, allowing people to explore the experience without exposing real family memories. The demo should show the fictional archive, a question about a remembered detail, the retrieved source notes, and the AI-generated reflection alongside those sources.

Code

GitHub Repository: mohammedabidali1956/Afterlight

The repository includes the application, a fictional starter archive, setup instructions, and a demo guide.

How I Built It

Afterlight uses Python, SQLite, HTML, CSS, and JavaScript, with Ollama providing local model inference.

The core workflow is:

Family Memories ↓ Local SQLite Archive ↓ Keyword-Based Retrieval ↓ Ollama + Open-Weight Model ↓ Structured Reflection ↓ Original Source Notes + AI Interpretation

SQLite stores the archive locally. When a user asks a question, the application retrieves relevant notes and passes the selected excerpts to the locally running model. The model produces a short reflection about the retrieved memories. The application then checks proposed quotations against the original text before displaying them, keeping the source material distinct from AI-generated interpretation.

The application is designed to run on the user's own computer without a cloud database, account system, proprietary AI API key, or third-party Python package. Gemma 3 (1B) is the recommended starting model, and the Ollama integration allows users to choose another installed model.

Why Does Open Innovation Matter?

Family memories are deeply personal. Sending them to an external AI service simply to find connections between them introduces a privacy trade-off that should not be necessary for this experience. Afterlight keeps the archive and model processing local. Once the model has been downloaded, its retrieval and reflection workflow can operate without an internet connection.

Open-weight AI also gives users more control over the experience. They can inspect the prompts, choose a compatible model, or turn off AI processing without losing access to their stored memories. The original stories remain the source of truth. AI is a way to explore connections between them, not a replacement for the people who remember them.

There are limitations: local inference still requires suitable hardware, and the prototype's SQLite database is not encrypted. Local processing reduces the need to send family stories to a cloud model, but it does not make the application automatically secure on a shared computer. For this project, open innovation makes privacy-conscious experimentation possible without making a family archive dependent on a proprietary model provider.

The Spirit of It

Imagine finding an old recipe card in a kitchen drawer. The handwriting is familiar. One instruction uses an unusual phrase. A note elsewhere mentions the same dish being prepared whenever it rained. Afterlight helps bring those fragments together. It can retrieve the original notes and offer a possible connection between them, while leaving the meaning of those memories to the family.

It does not claim to bring someone back. It does not speak in their voice. It helps preserve the small details that might otherwise be forgotten. That distinction is the heart of Afterlight: the ghost is the thread connecting the memories, not an AI pretending to be the person.

The demo archive contains fictional stories, so this is the intended experience rather than a claim that a real family has already experienced that moment.

Prize Categories

Best Use of Gemma

Afterlight uses Gemma 3 (1B) as its recommended open-weight model for the local reflection step. The model works with retrieved memory excerpts to generate structured reflections, while the application keeps source notes visible and checks generated quotations against the originals. Gemma is part of the core experience rather than an unrelated chatbot feature. I am entering Afterlight in the Best Use of Gemma category.

Read on DEV Community ↗ ← Back to News

Comments

No comments yet. Start the discussion.