This article is submitted to the Hacktoberfest Open-Source AI Challenge: Week 4 (#hf26challenge).
Digital Afterlife β Memory Keeper is a local, offline-first, sovereign family memory vault and digital remembrance builder (digital ofrenda).
In an era where family photos, voice memos, and historical letters are routinely entrusted to commercial cloud providers that monetize data, change pricing, shut down services, or lock families out, Digital Afterlife guarantees permanent, sovereign preservation:
faster-whisper quantized to int8, clustering acoustic features into anonymous speaker labels with strict biometric consent enforcement.multilingual-e5-small in ChromaDB with Reciprocal Rank Fusion (RRF) hybrid retrieval and Ollama (qwen2.5:3b) grounded generation.
Week 4's theme asks us to "build something spooky, or something that honors the past in the spirit of DΓa de los Muertos, with open-weight models or open-source AI."
Between October 31 (Halloween) and November 1β2 (DΓa de los Muertos), we reflect on the memories and stories of those who came before us. DΓa de los Muertos is not about fear; it is about keeping loved ones alive in our collective memory through ofrendas adorned with photographs, personal reflections, favorite memories, and stories.
Digital Afterlife transforms the "ghost in the machine" from a metaphor of eerie surveillance into an act of enduring remembrance:
Because Digital Afterlife is an air-gapped, privacy-first local application, there is no public web-hosted server tracking users. The walkthrough below illustrates the primary local workflows:
Users upload photographs, audio interviews, scanned documents, and home videos. EXIF GPS coordinates are automatically stripped for family privacy while capture dates and metadata are indexed.
An audio recording of a grandparent telling a childhood story is queued. The local faster-whisper engine transcribes the audio, detects the language, and partitions segments. Users click timestamp chips ([βΆ 00:15 - 00:32]) to seek audio playback directly.
Users ask: "Where did grandfather live before moving to the city?"
The system performs hybrid vector + lexical retrieval, extracting verifiable excerpts from scanned letters and transcripts, answering with direct citations that link back to the source documents.
Visiting a departed relative's Remembrance Page presents a commemorative shrine featuring:
Clicking Lock Vault zeroes the Data Encryption Key in memory. All sensitive endpoints return HTTP 423 Locked. The vault remains inaccessible until unlocked with the master password or 32-character recovery key.
Digital Afterlife is built with an open-source, offline-first technology stack:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend (React 19, TypeScript, Vite) β
β Dark Obsidian & Gold UI β’ Lucide β’ Tailwind CSS β
βββββββββββββββββββββββββββββ¬βββββββββββββββββββββββββββββ
β (Local HTTP 127.0.0.1:8000)
βββββββββββββββββββββββββββββΌβββββββββββββββββββββββββββββ
β Backend (FastAPI, Python 3.12) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Security & Crypto: AES-256-GCM Streaming, Argon2id β
β Speech Engine: faster-whisper (CPU int8), PyAV β
β Semantic Search: multilingual-e5-small (ONNX) β
β Local RAG: ChromaDB + Ollama (Qwen 2.5 3B Instruct) β
β Database: SQLite (WAL mode, authenticated fields) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
FileEncryptor) DAENC1 format) with derived nonces (base_nonce XOR chunk_index) and AAD chunk position binding to prevent tampering, truncation, or chunk reordering.FieldCipher) description, extracted_text, transcript_text, content) are encrypted in ENC:v1: authenticated envelopes.m=64MB, t=3, p=4) protects the master passphrase and generates a 128-bit emergency recovery key.SpeakerConsent), and revoking consent immediately purges acoustic vectors..da-backup archive created entirely in RAM (io.BytesIO), leaving no unencrypted temp files on disk.
Why does open innovation matter for preserving family memories?
To verify the project locally:
git clone https://github.com/abhinavgautam08/digital-afterlife.git
cd digital-afterlife
backend\.venv\Scripts\activate # or python -m venv .venv
pip install -r backend/requirements.txt
python scripts/init_db.py
cd frontend
npm install
Run the full backend test suite (132 passing tests):
backend\.venv\Scripts\pytest.exe -v
Verify frontend build:
cd frontend
npm run build
uvicorn backend.app.main:app --host 127.0.0.1 --port 8000
npm run dev in frontend/
http://127.0.0.1:5173./settings, create a remembrance page, upload an oral history, and test locking/unlocking.