· 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.

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.

Back to Blog

Related Posts

View All Posts »
Mother's Almanac

Mother's Almanac

AI-powered parenting encyclopedia that generates evidence-based guidance on-demand. Built with Next.js 15, Supabase, Claude AI, and a 3-layer caching system with RAG document upload and semantic search.

Contextual Feedback

Contextual Feedback

Open-source React library enabling section-targeted feedback collection. Users visually identify specific UI elements they're commenting on, eliminating vague feedback and providing administrators with precise contextual information.

Panauricon (Limitless Elephant)

Panauricon (Limitless Elephant)

Continuous voice capture app with 30-minute auto-segmented recording, Google Gemini transcription, location tagging, and full-text search. Designed for capturing thoughts, conversations, and ideas without interruption.

PocketPoppins

PocketPoppins

AI parenting copilot combining effortless memory capture via WhatsApp with personalized developmental guidance and contextual Q&A against both family history and trusted frameworks.