Repository navigation
Home
Herald is a native macOS mail client for HQBase — a fast, keyboard-friendly, three-pane reader and composer for self-hosters who run their own HQBase instance. Swift 6, SwiftUI, SwiftData, Sparkle updates, AGPL-3.0.
- Download: the latest notarized build is on the Releases page; the app updates itself afterwards.
- Source: this repository.
project.ymlis the source of truth;Herald.xcodeprojis generated. - Status: early but dogfooded daily against a real HQBase ≥ 1.1.0 instance — see the README for the current feature list and CHANGELOG.md for what shipped when.
| If you want to… | Read |
|---|---|
| Build and run Herald from source | Getting Started |
| Understand how the pieces fit together | Architecture Overview |
| Know how sign-in and token storage work | Authentication and Accounts |
| See how mail is fetched and cached | Sync and Storage |
| Learn how the HQBase API is called | API Client and Network |
| Change the composer, drafts, or attachments | Compose and Drafts |
| Touch notifications, the Dock badge, or search | Notifications and Search |
| Add UI that matches the rest of the app | UI and Design System |
| Write or run tests | Testing and Quality |
| Cut a release | Release and Updates |
- The server is the system of record. The local SwiftData store is a rebuildable cache: no schema migrations, recovery is delete-and-resync. (Sync and Storage)
-
Views never touch a
@Model. Everything crosses fromHeraldKitinto the UI as frozen,Sendablevalue types. (Architecture Overview) -
Swift 6 strict concurrency,
@MainActorby default. Background work lives in actors; anything that must be callable from anywhere is explicitlynonisolated.
This wiki is the readable guide. The authoritative design record — architecture notes,
conventions, decisions, and every HQBase server-contract gotcha found along the way — lives in
the repo's .memory/ folder, managed by Memophant. When a wiki page and a
memory note disagree, the memory note wins and the wiki page needs fixing
(see Wiki Maintenance).
Herald is the client only. Server-side changes it needs go upstream to HQBase as small, separate pull requests (the origin story is HQBase/hqbase#11). Bug reports and PRs for the client are welcome on this repo's issue tracker.
Last updated: 2026-08-19 — rewritten as a real landing page
Herald is AGPL-3.0. This wiki lives in the repo's wiki/ folder and is managed by Memophant — see Wiki Maintenance.