Email with IMAP flags for all
  • Swift 96.6%
  • Go 2.9%
  • Shell 0.5%
Find a file
2026-07-15 12:51:06 -04:00
Apps/FlagshipIOS Adds delete label functionality for local unused labels; improved UX on new account flow; adds animated email flag when the app is taking a while to load 2026-06-19 11:40:03 -04:00
Flagship.xcodeproj Version bump for new testflight build 2026-07-15 12:51:06 -04:00
Scripts Adds opt-in for server push background service; adds server commands to use a local database for registrations; Settings page now registers with the server for opt-ins; build script for server binary 2026-06-15 13:38:17 -04:00
Server Fixes database lock issue 2026-06-15 17:18:51 -04:00
Sources Minor message row tweaks 2026-07-15 12:48:28 -04:00
Tests Improvements to message preview storaage and fetch; first draft of thread sheet finished 2026-07-15 11:42:03 -04:00
.env.example Initial project creation up to a working iOS app build that fetches email with pull to refresh. IMAP flag support working perfectly with basic local storage. 2026-05-22 10:20:49 -04:00
.gitignore Initial project creation up to a working iOS app build that fetches email with pull to refresh. IMAP flag support working perfectly with basic local storage. 2026-05-22 10:20:49 -04:00
AGENTS.md Adds agents.md file to project; adds new toggle on mailbox list views to toggle the thread rollup 2026-07-15 12:34:18 -04:00
Package.resolved Adds initial thread handling on message view with a new sheet to show thread emails and switch between them 2026-07-15 10:50:15 -04:00
Package.swift Removes local version of SwiftMail and replaces it with our own fork; moves Gmail fixes into the fork 2026-06-26 15:08:50 -04:00
README.md Removes unneeded .env handling 2026-06-05 18:22:26 -04:00

Flagship

Flagship is an experimental native Apple-platform email client focused on full IMAP keyword flag support.

It's named Flagship because flags are the point.

Development

Build everything:

swift build

Run unit tests:

swift test

The package includes:

  • FlagshipCore: lightweight domain models and small preference storage.
  • FlagshipPersistence: SwiftData-backed account, mailbox, sync state, and message metadata models, plus a Keychain-backed account secret store.
  • FlagshipApp: the SwiftUI mailbox/message shell and app model that loads through the metadata store and performs manual selected-mailbox refreshes.
  • FlagshipIMAP: the live IMAP client implementation.

Account passwords live in Keychain, small UI preferences live in UserDefaults, and account/mailbox/message metadata lives in SwiftData.

iOS App

Open the Xcode project and run the Flagship scheme on an iPhone Simulator:

open Flagship.xcodeproj

The iOS app currently hosts FlagshipPersistentRootView, opens a SwiftData container, seeds preview mailbox/message data on first launch, then reads the visible app model back through the metadata store. Pulling down on a selected mailbox message list performs a manual refresh through SwiftMail. Account passwords live in Keychain.