arruah

arruah

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:

  1. Import a WhatsApp export ZIP via browser upload

  2. Parse _chat.txt across common timestamp variants

  3. Transcribe voice notes with whisper.cpp — runs entirely locally

  4. Rebuild a merged chronological timeline of text + audio transcripts + media

  5. 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/2 to 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?

Where Next? Top

Trending in Discussions Top

budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
axelson
Hi there! :wave: @frigidcode and I (but mostly him) have been running an Elixir Book club, we’re almost done with Designing Elixir Syste...
New
achempion
I’ve been using Emacs as my main code editor for more than a two years. It’s a custom build version although I’ve tried doom emacs and sp...
New
budgie
I love Elixir. It’s one of 2 programming languages I’ve ever fallen in love with. But I don’t use it anymore. Serverless was the promis...
New
jtormey
Lately I’ve been thinking about how to organize components as a LiveView application grows. One of the pain points I’ve found (for myself...
New
Null-logic-0
What IDE or editor are you using for Elixir development? Personally, I use Zed, and I really like it, but sometimes I wish there were a ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
KristerV
Hey. Is there anyone here who creates agents in their apps? Not talking about using agents, but creating them. I’m finding it pretty diff...
New
mudasobwa
I fully migrated to my own harness from Anthropic/Gemini and I think it’s time to share it. Welcome DSH, the DeepSeek Harness, fully writ...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
OndrejValenta
(I just needed to vent somewhere and LinkedIn is full of hope, or hype, I’m not sure which exactly) AI dream has many faces, but general...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews