Skip to main content
← BACK TO PROJECTS

Contact Sheet

personal
Swift · SwiftUI · Kotlin · Jetpack Compose · Claude Code · Cursor
Contact Sheet

What it is

I shoot film. I wanted a way to make contact sheets from scans without opening Photoshop or messing with print templates. Nothing on the App Store did what I needed, so I built it. Then I built it again for Android.

Contact Sheet takes photos from your camera roll and lays them out the same way a darkroom would -- grid rows on a sheet, ready to print or mark up. Pick 35mm or 120 format, add your camera and film stock info, export at 300 PPI.

Available on iOS and Android.

What it does

  • 35mm (36 exposures) and 120 film formats (645, 6x6, 6x7)
  • Film borders with sprocket holes and rebate markings
  • Markup tools -- keeper, reject, maybe selections plus a 3x loupe
  • Save camera and film stock presets for reuse
  • Exports at 8.5" x 11" / 300 PPI with optional EXIF metadata baked in
  • Shake your phone to apply a B&W filter

How it was built

Both apps were built with Claude Code and Cursor. iOS is Swift and SwiftUI. Android is Kotlin and Jetpack Compose with Material 3.