This is my submission for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine.
Ghostlight: A Private Memory Lantern Powered by Local Open-Weight AI
Some memories are too precious to become just another API request.
A grandparent's favorite saying. The song that played in the kitchen. A family recipe, a familiar laugh, or a little habit that made someone unmistakably themselves.
These details can mean everything to the people who remember them. But as AI becomes part of our everyday lives, we should be able to choose how we use it without automatically handing our most personal stories to a remote service.
For the Ghost in the Machine challenge, I wanted to explore a different question:
What if AI could help us preserve our memories while keeping those memories in our own hands?
That question inspired Ghostlight.
๐ฏ๏ธ What I Built
Ghostlight โ The Memory Lantern is an interactive digital ofrenda: a quiet, atmospheric space for preserving memories, creating tributes, and transforming personal stories into writing worth keeping.
Inspired by the candlelight and marigolds associated with Dรญa de los Muertos, Ghostlight brings together remembrance, gentle supernatural storytelling, and locally running open-weight AI.
The experience offers four creative modes:
- A Light of Remembrance: Create a heartfelt tribute from the details you provide.
- A Letter to Remember: Write a reflective letter from your own perspective.
- A Marigold Poem: Turn meaningful details, places, songs, and traditions into poetry.
- A Whisper After Midnight: Transform a memory into an atmospheric, gently spooky fictional story.
The application also includes a personal memory archive where entries can be revisited, edited, saved, and exported.
The goal isn't to simulate the deceased or pretend to communicate with spirits. It's to help people preserve the small, human details that make memories meaningful.
๐ Live Demo
Explore Ghostlight: https://ghostlight-memory-lantern.vercel.app/
Open the experience, explore the memory creator, and try one of the creative modes.
For local AI generation, use a compatible WebGPU-enabled browser and device. The model may need to download its assets the first time, so initial setup requires an internet connection. If local inference is unavailable, the application provides a clearly identified template fallback.
๐ป Source Code
GitHub repository: https://github.com/understimateddawg-eng/ghostlight-memory-lantern
The project is open for inspection, experimentation, and contributions. The application code uses the MIT license, while the AI model and inference library retain their own applicable licenses.
โ๏ธ How I Built It
Ghostlight is built with React, TypeScript, Vite, Tailwind CSS, IndexedDB, and Lucide React.
The central AI component is WebLLM, an open-source inference engine that allows compatible open-weight language models to run directly in the browser using WebGPU.
The primary model is Llama 3.2 1B Instruct in a WebLLM-compatible quantized configuration:
Model: Llama-3.2-1B-Instruct-q4f16_1-MLC
Model repository: https://huggingface.co/mlc-ai/Llama-3.2-1B-Instruct-q4f16_1-MLC
Inference engine: https://github.com/mlc-ai/web-llm
The model is loaded when needed instead of being required just to view the landing page. Once initialized, it generates content from the selected mode, tone, language, and the user's supplied memories.
The architecture follows a simple flow:
Your words โ Browser-based inference โ Generated writing โ Your decision to save or export
Ghostlight uses IndexedDB to store memories in the browser rather than requiring a remote application database. Its core design does not depend on a hosted LLM inference API or an application API key.
Of course, local AI has trade-offs. Browser and GPU compatibility vary, model downloads take time, and generated content still needs human review. Local browser storage can also be lost if the user clears their browser data, so exporting important memories is recommended.
๐ Why Open Innovation Matters
For Ghostlight, privacy isn't an extra feature. It's part of the reason the project exists.
Family stories can contain names, photographs, relationships, personal experiences, and details someone might never choose to publish publicly. Sending those stories to a remote AI service introduces another organization, another system, and another set of dependencies into an intimate experience.
Local inference gives us a different option.
With WebLLM and a compatible open-weight model, Ghostlight can generate writing inside the user's browser instead of forwarding private prompts to a hosted inference API.
This doesn't magically make a fresh installation offline. The application and model assets must first be downloaded, and continued offline use depends on the assets remaining cached and the device supporting WebGPU. But the ability to perform subsequent inference locally is a meaningful difference.
Open innovation also gives developers room to experiment.
The model configuration, prompts, interface, and storage architecture can be inspected and modified. Contributors can adapt the experience, explore compatible models, improve accessibility, or build another privacy-conscious creative tool without being permanently tied to a particular closed inference API.
And when a device cannot run the model, Ghostlight doesn't pretend a template is AI. Template Mode is explicitly identified as a non-AI fallback.
The most important benefit isn't simply that a model can run locally. It's that developers gain more control over how their tools work and users gain more control over where their information goes.
๐งก The Spirit of It
A memory is rarely just a date or a paragraph.
Sometimes it's the way someone made tea, the phrase they repeated without realizing it, or the recipe that always brings everyone back to the same table.
Ghostlight is my attempt to give those details a place to live.
The lantern represents a small light against forgetting. The marigolds and candlelight connect the experience to traditions of remembrance, while the local AI architecture reflects a modern principle: technology can help preserve something precious without needing to own it.
The model can help shape the words. The person who remembers decides what to keep.
No closed service needs to become the owner of the story.
Every story leaves a light.
๐ Challenge Categories
This project is submitted for the Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine.
I am not claiming any additional partner-specific prize category.
Built with React, TypeScript, WebLLM, and open-weight AI. Feedback, suggestions, and contributions are welcome.
Top comments (0)