A modern, native iOS client for the Bluesky social network built with SwiftUI and the latest iOS technologies.
Main timeline and lists with posts and interactions

User profile with posts and following
- Modern Timeline: Infinite scrolling timeline with real-time updates
- Lists & Feeds Support: Browse your lists and custom feeds seamlessly
- Smart Caching: Intelligent post caching for offline reading
- Thread View: Full conversation threading support
- Profile Management: View and manage user profiles
- Favorites System: Save posts and URLs for later
- Dark Mode: Full dark mode support
- Native iOS Design: Built with SwiftUI following iOS design guidelines
- Bluesky Integration: Full AT Protocol support via ATProtocol library
- Xcode 15.0 or later
- iOS 17.0 or later
- macOS 14.0 or later (for development)
- Apple Developer Account (for device testing)
-
Clone the repository
git clone https://github.com/zdenekindra/limit.git cd limit -
Open in Xcode
open Limit.xcodeproj
-
Configure Bundle ID (Optional)
- Open project settings in Xcode
- Change Bundle Identifier to your own (e.g.,
com.yourname.limit) - Update Development Team in Signing & Capabilities
-
Build and Run
- Select your target device or simulator
- Press
Cmd+Rto build and run
- Launch the app
- Enter your Bluesky handle (e.g.,
@yourname.bsky.social) - Enter your App Password (not your main password)
- Tap "Login" to start using the app
- SwiftUI: Modern declarative UI framework
- SwiftData: Local data persistence
- ATProtocol: Official Bluesky AT Protocol library
- KeychainSwift: Secure credential storage
- SDWebImage: Efficient image loading and caching
Limit/
├── Views/ # SwiftUI views
│ ├── Timeline/ # Timeline-related views
│ ├── PostUI/ # Post display components
│ ├── ActorUI/ # Profile and user views
│ └── TabUI/ # Tab bar views
├── Model/ # Data models
├── Network/ # Network layer and API client
├── Utils/ # Utilities and helpers
├── DesignSystem/ # Colors and design tokens
└── Assets.xcassets/ # App icons and images
The app uses a default bundle identifier. For personal use, update it in Xcode:
- Target → General → Identity → Bundle Identifier
- Recommended:
com.yourname.limit
For testing on physical devices:
- Target → Signing & Capabilities → Development Team
- Select your Apple Developer account
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Bluesky for the amazing social platform
- ATProtocol for the open protocol
- SwiftUI community for inspiration
Having issues or questions? We're here to help!
- GitHub Issues: https://github.com/P24L/Limit/issues
- New Issue: Create Issue
Please check if your issue already exists in open issues.
Q: App crashes on startup
A: Try restarting your device and updating to the latest iOS version.
Q: Can't login to Bluesky
A: Make sure you're using an App Password from Bluesky settings, not your main account password.
Q: Lists or feeds not loading
A: Check your internet connection and try refreshing the timeline.
Q: Images not displaying
A: This might be a temporary network issue. Try refreshing or switching networks.
Please include:
- Device model (e.g., iPhone 15)
- iOS version (e.g., iOS 17.5)
- App version (found in Settings)
- Steps to reproduce the issue
- Screenshots if applicable
-
v1.1.0 - Lists & Feeds Support
- Browse user-created lists and custom feeds
- Unified timeline picker for Timeline/Lists/Feeds
- Position management for lists and feeds
- Seamless content switching
-
v1.0.0 - Initial release
- Basic timeline functionality
- User authentication
- Post interactions
- Profile management
Note: This is an unofficial Bluesky client. Bluesky and AT Protocol are trademarks of their respective owners.
