ewan's projects — docs
← all docs

willow

August 12, 2026 1 min read
swiftswiftuiiosmacosatprotobluesky

willow is a native SwiftUI Bluesky / AT Protocol client targeting iOS and macOS from one shared codebase.

Status

Early stage. The repository is currently still the initial Xcode SwiftData template — a WillowApp entry point, a placeholder ContentView listing Item records, and the default test targets. No Bluesky functionality exists yet; a successful build only proves the template compiles.

Planned Architecture

  • SwiftUI-first — UI defined in each view's body; shared code stays shared, platform differences isolated behind #if os(...)
  • Structured concurrencyasync/await and AsyncSequence throughout, no Combine
  • Keychain-backed sessions — access/refresh tokens from com.atproto.server.createSession / refreshSession stored in the Keychain, never in SwiftData or UserDefaults
  • DID-keyed identity — resolves handle → DID → PDS and keys state by DID, not handle, with support for custom PDS hosts

Reads/writes will live under the app.bsky.* and com.atproto.* lexicons, cross-checked against the canonical bluesky-social/atproto implementation and wolfram, the author's C AT Protocol SDK powering the sibling console clients Channel Blue and cobalt.

Testing

  • WillowTests — Swift Testing framework (@Test, #expect)
  • WillowUITests — XCUIAutomation

Licence

AGPL-3.0 — see LICENSE.


← all docs