· Ed Dowding · Portfolio · 2 min read
Moneypenny (WhatsApp AI Desktop Client)
Native desktop WhatsApp client with AI-powered message summarisation, priority inbox, and keyboard-first navigation. Built with Tauri (Rust), React, and multi-provider LLM support.

The Problem
WhatsApp Web is slow, browser-dependent, and lacks power-user features. Busy professionals miss important messages buried in group chat noise. There’s no way to quickly understand “what did I miss?” across 50+ conversations without scrolling through each one. Result: anxiety, missed commitments, and hours lost to manual triage.
What I Built
Moneypenny is a native desktop WhatsApp client designed for keyboard-first power users:
- AI Summarisation: One-click summaries of long conversations (“What happened in this chat while I was away?“)
- Priority Inbox: AI analyses messages and surfaces urgent items first
- Full-Text Search: Lightning-fast search across all messages with SQLite FTS
- Keyboard Navigation: Vim-style j/k navigation, command palette (⌘K), zero mouse required
- Multi-Provider LLM: Works with Ollama (local), OpenAI, or Anthropic—your choice
Tech Stack
Tauri 2 (Rust backend), React 19 + TypeScript frontend, SQLite with FTS5 for message storage, Baileys library for WhatsApp Web protocol, Zustand for state management, Tailwind CSS + CMDK for UI.
Lessons Learned
Sidecar Architecture Solved WhatsApp’s Complexity: Running Baileys (WhatsApp library) directly in Rust proved impossible. Building it as a Node.js sidecar process—communicating via JSON-RPC over stdio—isolated complexity while maintaining native performance. Three-tier architecture (React → Rust → Node.js → WhatsApp) sounds over-engineered until you try doing it any other way. Lesson: embrace polyglot architectures when libraries demand specific runtimes.
Local LLMs Change Everything: Adding Ollama support meant users could summarise messages without sending data to external APIs. Privacy-conscious users adopted immediately. Lesson: local-first AI is a competitive advantage, not just a feature.
Keyboard-First Isn’t Niche: Expected keyboard navigation to be a power-user add-on. Instead, users specifically chose Moneypenny over WhatsApp Desktop because of it. Lesson: what feels like niche UX can be primary value proposition.
SQLite + FTS5 Is Underrated: Full-text search across 10,000+ messages with BM25 ranking, all running locally with sub-100ms queries. No Elasticsearch, no cloud search service—just SQLite in WAL mode. Lesson: sometimes the boring technology really is the right choice.