Limit - Bluesky Client for iOS
A modern, native iOS client for the Bluesky social network built with SwiftUI and the latest iOS technologies.
π± Screenshots
Main timeline and lists with posts and interactions

User profile with posts and following

Save posts and links locally
β¨ Features
- 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
π Getting Started
Prerequisites
- Xcode 15.0 or later
- iOS 17.0 or later
- macOS 14.0 or later (for development)
- Apple Developer Account (for device testing)
Installation
- Clone the repository
git clone https://github.com/zdenekindra/limit.git
cd limit
- Open in Xcode
- 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+R to build and run
First 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
π οΈ Technology Stack
- 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
π Project Structure
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
π§ Configuration
Bundle ID
The app uses a default bundle identifier. For personal use, update it in Xcode:
- Target β General β Identity β Bundle Identifier
- Recommended:
com.yourname.limit
Development Team
For testing on physical devices:
- Target β Signing & Capabilities β Development Team
- Select your Apple Developer account
π€ Contributing
We welcome contributions! Please see our Contributing Guidelines for details.
Development Setup
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
π Support
Having issues or questions? Weβre here to help!
π Bug Reports & Feature Requests
π Before Reporting Issues
Please check if your issue already exists in open issues.
π‘ Frequently Asked Questions
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.
π± When Reporting Bugs
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
π Version History
- 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.