mirror of
https://github.com/bulwarkmail/native.git
synced 2026-11-01 00:07:01 +00:00
eca38715453c8b3e94d4697ac943f552f3e12c81
Sender avatars ignored address-book photos, so a contact whose photo shows in Contacts still got initials or a favicon in the mail list, the viewer and the thread cards. Like the webmail's `Avatar`, the contact photo now wins over the favicon and the initials; `disableImages` (Junk) still shows initials only. The lookup goes through a lowercased email -> photo index that is built once per contacts array, and each avatar selects just its own photo string, so a list of avatars neither rescans the address book per row nor re-renders when an unrelated contact changes. Stalwart returns photos as inline data URIs, which the index normalizes the same way Contacts does, so no authenticated download is involved.
Bulwark Mobile
Beta - work in progress. Many features are unfinished or rough. Expect bugs, missing functionality, and breaking changes between releases. Do not rely on this for primary email yet.
React Native (Expo SDK 54) client for Bulwark Webmail - a JMAP-based mail, calendar, and contacts app.
What works today
- Sign in to any JMAP server (e.g. Stalwart)
- Multiple accounts
- Email list, threads, compose
- Calendar (basic)
- Contacts (basic)
- Push notifications via the Bulwark relay - FCM by default, or UnifiedPush (e.g. ntfy) for devices without Google Play services
- In-app sideload updates from GitHub Releases
What's missing or rough
- iOS builds, but push notifications and client certificates are Android-only so far
- S/MIME, plugins, themes - UI stubs only (filters & rules, the vacation responder and file storage are real implementations)
- Calendar editing is partial; contacts editing is basic
- No Play Store distribution yet (sideload APK from Releases); iOS ships via TestFlight
Run locally
npm install
npx expo start
Then press a for Android, i for iOS, or scan the QR with Expo Go.
For release APK builds and signing see docs/android-release.md. For iOS builds and TestFlight distribution see docs/ios-release.md.
License
AGPL-3.0-only. See LICENSE.
Languages
TypeScript
96%
Kotlin
2.1%
JavaScript
0.9%
Swift
0.4%
HTML
0.3%
Other
0.2%