Save anything
Web links, videos, social posts, images, and screenshots. One tap from the iOS Share Sheet or paste from the macOS menu bar.
Save links, images, and notes. Organize with folders and tags. Search everything. All on your device, with optional encryption.
Web links, videos, social posts, images, and screenshots. One tap from the iOS Share Sheet or paste from the macOS menu bar.
Hierarchical folders with custom icons and colors. Flexible tagging. Full-text search across titles, notes, tags, and metadata.
Local-first by default. Optional AES-256-GCM encryption. No analytics, no tracking, no AI training on your data. Export anytime.
Built for the Apple ecosystem with modern Swift and privacy in mind.
| UI | SwiftUI |
| Persistence | SwiftData |
| Encryption | CryptoKit (AES-256-GCM) |
| Keys | Keychain Services |
| Biometrics | LocalAuthentication |
| Networking | URLSession (ephemeral, metadata only) |
Single codebase with platform-specific views (iOS / macOS). Shared models (Item, Folder, Tag), services (Search, Thumbnail, Security, Export), and SwiftData schema. Share Extension uses an App Group and Darwin notifications to hand off pending items to the main app.
Concrete choices, no buzzwords.
AES-256-GCM (authenticated). Keys derived with HKDF-SHA256 from your passphrase. Random values from SecRandomCopyBytes. Keys live in the Keychain; data in the app sandbox.
No telemetry or crash reporting. No upload of your library. Metadata fetches (e.g. link previews) use ephemeral URLSession; no cookies or persistent identity. Dangerous URL schemes (e.g. javascript:, data:) are blocked.
Clone, open in Xcode, configure signing, and run.
git clone https://github.com/kaanuluer/RecallMate/RecallMate.git
cd RecallMate
open RecallMate.xcodeproj
Select the RecallMate-iOS or RecallMate-macOS scheme, set your development team under Signing & Capabilities, then build (Cmd+R). For the Share Extension, ensure the App Group group.com.recallmate.shared is enabled for both the main app and the extension.