GitHub


What it does

You land in São Paulo. Let's Get Coffee already knows, because your calendar said so. Before you've even cleared passport control, it's surfacing the three people in your contacts who live within 25 km — and offering a one-tap email with a "hey, I'm in town" template pre-filled with your dates and neighborhood.

It's the feature every traveler eventually wishes their phone had. Built with a strict rule: your contacts never leave your device.

Highlights

  • Universal city search. Type a city name, a full address, or an IATA airport code (GRU, JFK, FCO). Adjustable radius, map view, airport code resolution from an embedded 6,000-airport database.
  • Multi-source contact import. Apple Contacts natively. LinkedIn via a Chrome extension that talks to the macOS app through native messaging — no scraping, no ToS violations.
  • On-device trip detection. Apple FoundationModels scans your calendar for flight/hotel/conference events, groups them into named itineraries, and lets the app know when you're traveling.
  • Arrival notifications. Opt-in low-power city-level detection wakes the app when you land and surfaces nearby contacts.
  • Smart outreach. Travel-aware templates for email, text, and phone. "Starred," "Suggest," and "Don't Suggest" flags keep the noise down.
  • Dual-platform, single codebase. iOS and macOS share a unified SwiftUI Shared/ target.

Stack

Layer Tech
App Swift 6, SwiftUI, @Observable models
Persistence SwiftData, optional CloudKit sync
Platform APIs EventKit, CoreLocation, Contacts
ML Apple FoundationModels (on-device)
Auth Sign in with Apple via Supabase (RLS-secured, optional)
Integration Chrome extension (Manifest V3) ↔ Swift native messaging host
Testing Swift Testing, 890+ tests across 41 files
Platforms iOS 26+ and macOS 26+

Privacy, as a design constraint

  • No analytics. No third-party tracking. No server-side copy of your contacts or calendar.
  • All data persists locally in SwiftData. iCloud sync, if you turn it on, moves it only between your own devices.
  • The Chrome integration uses native messaging specifically to avoid web scraping and keep everything on the local machine.

Status

Production-ready, App Store-bound. 890+ tests passing, accessibility (VoiceOver) wired, onboarding complete, network-resilience patterns in place, version 1.0.0 tagged. Next up: Google/Outlook calendar integration.

Why the source is private

This repo is a public-facing description of a working app. Implementation details — particularly around contact deduplication, calendar classification, and the native-messaging bridge — live in a private repository. Reach out below for a deeper look.

Contact

Mark Porter@marklovestech · mark@marklovestech.com

Read the original on github.com ↗