Cappture

Client
Personal
Year
2026
Role
MacOS • Photography/Videography
Repository
GitHub
Homebrew
brew install --cask yusufdiallo1/tap/cappture
Homebrew
brew upgrade --cask yusufdiallo1/tap/cappture
Contact
Contact Us
Cappture cover

The problem

Photo Booth is the only camera app that ships with macOS, and it has barely changed in fifteen years: one mode, a fixed window, effects that look like 2007. Meanwhile the iPhone camera is one of the most refined interfaces Apple makes — zoom pills you can hold and drag, a shutter that slides into video, a mode carousel — and none of it exists on the Mac. If you want to take a decent photo with a Mac you use the webcam through a video-call app and screenshot it.

There's also a hardware gap nobody acknowledges honestly. A Mac has no depth sensor, most Mac cameras cap at 30 fps, and videoFieldOfView is unavailable on macOS entirely. Apps that offer "Portrait mode" on a Mac are synthesising it and not saying so.

What I built

Test-first where it's testable, and measurement over assumption — which has repeatedly changed the plan:

I intended to swap createCGImage for an IOSurface render for speed. Measuring showed 1.82ms vs 3.86ms — the "optimisation" was 2× slower. Didn't do it. I suspected the gallery scan was causing UI lag. At 500 files it's 2.6ms, under one frame. Left it alone; the real cause was 1.8ms of Core Image work on the main thread between every click and its effect. Crop appeared to work and did nothing. The writer's output size was pinned to the source's natural size, so cropped frames were rendered into full-size buffers. There was no video-editing test at all, which is how it shipped.

Cappture screen 1
Cappture screen 2
Cappture screen 3
Cappture screen 4
Cappture screen 5
Cappture screen 6
Cappture screen 7
Cappture screen 8
Cappture screen 9
Cappture screen 10
Cappture screen 11
Cappture screen 12
Cappture screen 13
Cappture screen 14

Tech stack

  • AVFoundation
  • Core Image
  • ScreenCaptureKit
  • Vision
  • Photos
  • Swift
  • Combine
  • Carbon
  • Metal
  • WidgetKit
  • Next.JS
  • Stripe
  • Shadcn UI
  • SwiftUI
  • Homebrew
  • Github
  • Convex
  • UI/UX