Privacy-first, self-hosted CalDAV task manager for iOS.
Feature Highlights • Installation • Technical Details • Contributing
Important
NowThis is built natively in Swift, SwiftUI, and SwiftData.
NowThis is a powerful, local-first iOS task manager that seamlessly syncs with any CalDAV server (including Nextcloud). Manage your to-dos, set geofence reminders, link journal entries, and keep your data 100% yours.
- 🔒 Local & Synced Modes: Use Vault Mode for a purely offline experience, or connect to a CalDAV server (Nextcloud, etc.) to sync across devices.
- 📍 Geofence Reminders: Location-based task notifications (e.g., "Remind me when I get home").
- 🔄 Reliable CalDAV Sync: Robust background sync with ETag-based conflict detection to prevent silent overwrites.
- 📝 Journal Links: Attach journal entries to tasks for extended context.
- ⚡ Native Performance: Built from the ground up with SwiftUI and SwiftData for lightning-fast responsiveness.
The easiest way to get NowThis is through the App Store (coming soon!).
NowThis uses XcodeGen to manage its project structure.
- Clone the repository:
git clone https://github.com/asecretcompany/nowthis-source.git cd nowthis-source - Install XcodeGen if you don't have it:
brew install xcodegen
- Set your Apple Developer Team ID:
cp Local.xcconfig.template Local.xcconfig # Edit Local.xcconfig and add your TEAM_ID - Generate the Xcode project:
xcodegen generate
- Open
NowThis.xcodeprojand build!
(Note: The bundle identifier defaults to com.asecretcompany.nowthis. If you are building for your own physical device, you may need to update the bundle identifier prefix in project.yml.)
- Architecture: iOS client leveraging SwiftData for local persistence and CloudKit (via App Groups) for widget/app target data sharing.
- Sync Engine: Custom-built
CalDAVClientusingos.Loggerfor observability and actor-based concurrency for safe data handling. - Security:
KeychainManagersecurely stores server credentials withkSecAttrAccessibleAfterFirstUnlockThisDeviceOnly.
We welcome contributions! Please check out our GitHub Pages site for more detailed documentation.
All code is licensed under the GPLv3 License.