- Category
- Social
- Rank
- No. 929Tools index
- Pricing
- Open Source
- Type
- APP
- Builder
- dimillian
- GitHub
- 535 stars
- Date
About
Native Bluesky client for iOS, built in SwiftUI by the author of Ice Cubes (the popular Mastodon app).
What it does
IcySky connects to Bluesky through the AT Protocol, authenticates with app passwords, and stores session credentials in the Keychain. Its working experience centers on browsing feeds, exploring saved feeds, and liking posts through a touch interface.
Why it's ranked here
The project offers a credible foundation for a modern Bluesky reader, with real authentication, feed models, optimistic likes, modular packages, and focused tests. It remains a development preview rather than a complete social client because several expected reading and publishing flows are unfinished.
What's good
The code separates protocol access, authentication, data models, navigation, design components, and feature interfaces into distinct libraries. Authentication persists sessions securely and publishes configuration changes asynchronously. Like actions update immediately, then restore prior state after network failure. Feed and design-system targets have dedicated tests.
Tradeoffs
It requires iOS 26, Xcode 26, and Swift 6.2, sharply limiting compatible devices and development setups. Post composition, profile viewing, and notifications remain in progress. Reposting is explicitly unimplemented, while failed like actions revert silently without exposing an error.
How to use it well
Pick IcySky to explore Bluesky feeds or study a modular SwiftUI application using current Apple frameworks and AT Protocol libraries. It suits developers comfortable building from source. Do not treat it as a finished replacement for workflows requiring reliable posting, profiles, notifications, or reposting.
Technical notes+
Packages/Model/Package.swift exports Client, Models, Auth, User, and Destinations libraries, declares iOS 26 and macOS 26 package platforms, and includes an AuthTests target. Packages/Features/Package.swift exports nine feature libraries and declares FeedUITests and DesignSystemTests using ViewInspector. Packages/Model/Sources/Auth/Auth.swift stores a generated session UUID with KeychainSwift, delegates session material to AppleSecureKeychain, and emits configuration changes through AsyncStream. Packages/Model/Sources/Models/PostContext.swift implements optimistic like creation and deletion with rollback on failure, while toggleRepost() contains only a TODO. Packages/Model/Sources/Models/PostItem.swift appends a fresh UUID to each post identifier despite hashing only the URI. Packages/Model/Sources/User/CurrentUser.swift fetches profile and preferences concurrently and removes the built-in following feed from saved feeds.
Observed
- License
- MIT License
- Primary language
- Swift
- Application interface
- Native graphical Bluesky client
- App platform
- iOS 26.0 or newer
- Development requirements
- Xcode 26.0 or newer and Swift 6.2 or newer
- Packaging
- Xcode project with separate Model and Features Swift packages
- Package platforms
- Model and Features packages declare iOS 26 and macOS 26
- Tests
- Swift Package Manager test targets cover authentication, feed UI, and the design system
Read from README.md, Packages/Model/Package.swift, Packages/Features/Package.swift, Packages/Model/Sources/Auth/Auth.swift, Packages/Model/Sources/Models/Media.swift, Packages/Model/Sources/Models/Profile.swift, Packages/Model/Sources/Models/FeedItem.swift, Packages/Model/Sources/Models/PostItem.swift, Packages/Model/Sources/User/CurrentUser.swift, Packages/Model/Sources/Client/BSKyClient.swift, Packages/Features/Sources/AuthUI/AuthView.swift, Packages/Model/Sources/Models/PostContext.swift, Packages/Model/Sources/Destinations/AppTab.swift, Packages/Model/Sources/Models/RecentFeedItem.swift, Packages/Model/Sources/Destinations/AppRouter.swift.
What it can do
View Bluesky timeline and posts
Bluesky account credentials → Formatted feed of posts and updates
Create and publish posts to Bluesky
Text content and optional media → Published post on Bluesky network
Follow and unfollow Bluesky users
User profile or handle → Updated following list and personalized feed
Like and repost Bluesky content
Selected posts from timeline → Engagement interactions on posts
Search Bluesky users and content
Search terms or hashtags → Filtered results of users and posts
View user profiles and post history
Bluesky user handle or profile link → User profile information and post timeline
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
