windowing: using a transparent nswindow hosting swiftui views for the floating call ui, and nspopover for the menu bar dropdown. we also toggle nsapp.activationpolicy to hide the dock icon when it's just running in the background
networking: livekit handles the webrtc video/audio (it’s been rock solid), with firebase cloud functions generating the tokens and firestore handling the signaling and presence state
security: standard firebase auth for user management, and we use the native macos keychain (ksecclassgenericpassword) to securely store credentials so you don't have to login every time
mac apis: lots of avfoundation for camera/mic permissions, nsstatusitem for the menu bar integration, and unusernotificationcenter to make sure you actually see incoming calls
Looks nice. Maybe share a bit about the implementation (windowing, networking, security, Mac APIs, …)?
thanks!
windowing: using a transparent nswindow hosting swiftui views for the floating call ui, and nspopover for the menu bar dropdown. we also toggle nsapp.activationpolicy to hide the dock icon when it's just running in the background
networking: livekit handles the webrtc video/audio (it’s been rock solid), with firebase cloud functions generating the tokens and firestore handling the signaling and presence state
security: standard firebase auth for user management, and we use the native macos keychain (ksecclassgenericpassword) to securely store credentials so you don't have to login every time
mac apis: lots of avfoundation for camera/mic permissions, nsstatusitem for the menu bar integration, and unusernotificationcenter to make sure you actually see incoming calls