Native iOS app for location-based check-ins using the AT Protocol
Drop anchor at your favorite places with structured data storage on your home PDS and optional social sharing via Bluesky.
- Native iOS App - Full-featured mobile experience with native location services
- StrongRef Architecture - Store address records and check-ins with content integrity on your home PDS
- Optional Social Sharing - Choose to share check-ins as posts on Bluesky to notify your followers
- Global Feed - Discover check-ins from around the world via the Anchor AppView feed
- Place Discovery - Find nearby climbing gyms, cafes, and points of interest via OpenStreetMap
- Privacy-First - All data stored on your own PDS, no tracking or analytics
- AT Protocol Native - Uses community lexicon standards for structured location data
Global feed, check-in interface, nearby places discovery, and message composition
- iOS 18.6 or later
- Location Services enabled
App Store: Coming soon
Build from Source:
git clone https://github.com/dropanchorapp/Anchor.git
cd Anchor
# Open in Xcode
open Anchor.xcodeproj
# Or build from command line
make build- Browse the global feed (no sign-in required)
- Sign in to Bluesky via Settings to create check-ins
- Enable location services when prompted
- Tap "Check In" to discover nearby places and drop anchor
Anchor stores check-ins on your Personal Data Server (PDS) using a StrongRef architecture:
- Address Record (
community.lexicon.location.address) - Reusable venue data - Check-in Record (
app.dropanchor.checkin) - References address via StrongRef (URI + CID)
This approach provides content integrity verification, data efficiency through reusable addresses, and full ownership of your data on your PDS.
Example Records
Address Record:
{
"$type": "community.lexicon.location.address",
"name": "Klimmuur Centraal",
"street": "Stationsplein 45",
"locality": "Utrecht",
"country": "NL"
}Check-in Record:
{
"$type": "app.dropanchor.checkin",
"text": "Great session!",
"createdAt": "2025-01-30T14:30:00Z",
"addressRef": {
"uri": "at://did:plc:user123/community.lexicon.location.address/abc123",
"cid": "bafyreigh2akiscaildc..."
},
"coordinates": {
"$type": "community.lexicon.location.geo",
"latitude": "52.0705",
"longitude": "4.3007"
}
}Anchor/
├── ATProtoFoundation/ # Generic AT Protocol & OAuth library
├── AnchorKit/ # App-specific business logic
└── AnchorMobile/ # iOS app (SwiftUI)
- Swift 6 with strict concurrency
- SwiftUI with NavigationStack and TabView
- AT Protocol with community lexicon standards
- CoreLocation for native location services
The global feed is provided by Anchor AppView, a separate backend project.
# Build and test
make build # Build iOS app
make test # Run all package tests
make lint-fix # Fix SwiftLint issues
# Or directly
cd AnchorKit && swift test
cd ATProtoFoundation && swift testSee CLAUDE.md for detailed development instructions.
- All check-in data stored on your home PDS
- No tracking or analytics
- Location access only when needed
- Open source for full transparency
Contributions welcome. See CONTRIBUTING.md for guidelines.
Developed with assistance from Claude Code under human oversight. All design choices and quality control guided by human developers.
MIT License - see LICENSE for details.




