Matcha is a full-featured terminal email client (TUI) written in Go, using the Bubble Tea framework. It supports multiple email protocols (IMAP, JMAP, POP3, Maildir) and provides a rich set of features including PGP/SMIME encryption, OAuth2 authentication, a Lua plugin system with 35+ community plugins, background daemon for push notifications and sync, spellcheck, i18n with 11 languages, and a configurable theme system. The architecture is modular: a backend provider interface abstracts protocol implementations, a daemon runs as a background process communicating via JSON-RPC over Unix sockets, and the TUI is built with composable Bubble Tea models. The codebase demonstrates strong engineering practices with extensive test coverage, CI/CD pipelines, cross-platform packaging (Homebrew, Snap, Flatpak, Nix, WinGet), and a well-designed plugin API. It is not a data research project; it is a production-grade application.
FairEmail is a fully-featured, open-source, privacy-oriented email client for Android. It supports IMAP, POP3, SMTP, OpenPGP, S/MIME, and OAuth for major providers (Gmail, Outlook, Yahoo). The app is built as a standard Android application with Activities, Fragments, Services, and WorkManager workers. It uses Room for local persistence, LiveData for reactive UI, and a custom async pattern (SimpleTask) for background operations. The codebase is notable for its extensive use of vendored libraries: it includes modified copies of JavaMail (javax.mail, com.sun.mail), AndroidX internals (Room, Paging, Emoji2, RecyclerView Selection), Google Protocol Buffers, and native language/encoding detection engines (CLD3, compact_enc_det). This hybrid approach provides deep email protocol support and privacy features like tracker blocking, certificate transparency, and DANE, but also introduces maintenance overhead and potential drift from upstream versions. The app integrates AI features (Gemini, OpenAI) for summarization and rule actions, and includes a full rule/filter engine. Despite the heavy vendoring, the core application code demonstrates solid engineering with clean abstractions, custom views that work around Android platform bugs, and a consistent async pattern. The repository is actively maintained with frequent releases and responsive issue triage.
Sup is a console-based email client written in Ruby, designed for heavy email users who prefer a keyboard-driven, terminal interface. It provides a Gmail-like workflow with thread-centric conversation view, labeling (tags), archiving, muting, and full-text search powered by Xapian. The application supports multiple local mail sources (mbox and Maildir), multiple accounts, and can be extended via Ruby hooks. It runs as a full-screen ncurses application with a buffer-based window manager, offering modes for inbox, search results, compose, reply, forward, and more. Architecturally, Sup follows a modular pattern with manager classes (PollManager, UpdateManager, UndoManager, DraftManager, etc.) that encapsulate state and behavior. The UI is built on a Mode hierarchy with a shared keymap DSL, allowing consistent keyboard navigation across different views. The core data flow involves polling mail sources, parsing messages with RMail, threading them using a JWZ-inspired algorithm, and indexing them into a Xapian database for fast search. Labels and state are persisted in YAML files and the Xapian index. Key entry points include the main `bin/sup` TUI, `bin/sup-sync` for index synchronization, `bin/sup-add` for adding sources, and various utility scripts. External dependencies include ncursesw, RMail, Xapian, GPGME, and Chronic for date parsing. The project is in maintenance mode, focusing on stability and bug fixes rather than new features, but remains actively maintained with CI across many Ruby versions.
LeechCraft is a modular, cross-platform desktop internet client built with C++ and Qt. It provides a plugin-based architecture where each plugin implements standard interfaces (IInfo, IPlugin2, IHaveSettings, IHaveTabs) and can be dynamically loaded. The core handles plugin loading, entity-based inter-plugin communication, settings management via XML dialogs, and a hook system for customization. Plugins cover a wide range of functionality: instant messaging (Azoth with XMPP/IRC/Tox), web browsing (Poshuku), RSS/Atom feed aggregation (Aggregator), music player (LMP with GStreamer), document viewer (Monocle with PDF/ePub/DjVu), email client (Snails), BitTorrent client, system monitoring, power management, and more. The codebase uses modern C++20 coroutines for async operations, a custom compile-time ORM (oral) for SQLite persistence, and functional utilities (Either, Visitor, ScopeGuard). Despite its ambitious scope and well-structured plugin system, the project shows signs of age: many plugins have incomplete translations, deprecated Qt patterns (old-style SIGNAL/SLOT macros), and external dependencies that may be difficult to build with current toolchains. The last meaningful development appears to have stalled, making the repository more valuable as a reference for plugin architecture and Qt patterns than as an actively maintained application.
Nylas Mail is an open-source email client built with Electron, React, and a Flux-like architecture. It consists of a desktop application for managing email accounts, composing messages, and organizing threads, backed by Node.js microservices (cloud-api, cloud-core, cloud-workers) for synchronization and extended functionality. The codebase features a plugin system for extensibility, a UI kit (nylas-component-kit), and reusable components like FixedPopover and TokenizingTextField. However, the repository is explicitly archived (since 2017) and depends on outdated technologies (Node 6), indicating significant technical drift.