VaultChat — local-first WhatsApp archive reconstruction with Phoenix LiveView + whisper.cpp
Hi everyone,
I want to share an early alpha project I’ve been building: VaultChat.
The problem
WhatsApp exports with many voice notes are hard to review. The text archive alone is incomplete — important statements often live inside audio messages. When you need to reconstruct what was said and when, manually listening through hundreds of voice notes is slow and error-prone.
What VaultChat does
It is a local-first archive reconstruction and review tool:
-
Import a WhatsApp export ZIP via browser upload
-
Parse
_chat.txtacross common timestamp variants -
Transcribe voice notes with
whisper.cpp— runs entirely locally -
Rebuild a merged chronological timeline of text + audio transcripts + media
-
Search, filter by sender/type/date, export as Markdown/JSON/CSV
The key design principle: everything runs on your machine. No account, no cloud, no data leaving your machine. docker compose up and open localhost.
Stack
-
Elixir / OTP
-
Phoenix + LiveView
-
SQLite via ecto_sqlite3
-
ffmpeg for audio decoding
-
whisper.cpp for local transcription
-
Docker Compose
Current state
Early alpha — the main end-to-end workflow is working on real archives.
Some things I found interesting to build in Elixir:
-
LiveView PubSub for real-time per-file processing progress
-
ETS GenServer for progress state that survives page remounts mid-processing
-
Multi-stage Docker build: whisper-cli compiled on Debian in Stage 0 and copied into the runtime image — avoids musl/glibc mismatch
-
SQLite batch inserts chunked to stay under the 32766 bind variable limit
-
String.replace_invalid/2to sanitize whisper output before Jason encoding
Known limitations
-
WhatsApp only for now (Telegram planned)
-
Docker-first — no one-click installer yet
-
Early alpha — rough edges in the UI
-
No LLM features yet (planned via ollama later)
Feedback I’d appreciate
-
Does the use case sound real and useful to you?
-
Does Phoenix LiveView feel like a good fit for this kind of local workflow tool?
-
Any thoughts on Docker-first as the packaging approach for an alpha?
-
What would make you actually try it?






















