Back to Work
Mugshot app iconMugshot

A coffee journal built on stickers.

Mugshot photographs a cup, cuts it into a sticker, estimates its caffeine, and records it on a calendar day. The capture, the cutout, and the drink analysis all run on device.

iOS · SwiftUIOn-device · No accountSolo build · Jun 2026
Mugshot's monthly sticker calendar
Overview

Mugshot is an iOS coffee journal and caffeine tracker. The core loop is: photograph a cup, the app cuts it into a die-cut sticker and estimates the caffeine, then you place that sticker on a calendar day.

Three tabs: a Home calendar, Statistics, and Settings. It also covers a daily caffeine meter, home-screen widgets, a weekly logging goal, optional reminders, Apple Health sync, and shareable daily and monthly recaps. There is no account and nothing leaves the device.

EspressoLatteIced LatteCold BrewCappuccinoFlat WhiteAmericanoCortadoMochaMatcha LatteChai LatteNitro Cold Brew
01A calendar you collect

Home is a monthly board of tappable sticker tiles. Open a day and the stickers grow into a board you can drag to arrange, with a receipt-style log of every cup: drink, time, and caffeine, stacked underneath.

The monthly sticker calendar with today highlighted

Sticker calendar: each day is a tile, today gets the roast pill, and a caffeine meter sits below.

Day detail with a drag-to-arrange sticker board and receipt log

Day detail: a drag-to-arrange sticker board over a receipt-style log of each cup.

02Caffeine estimation

How the meter is computed

Caffeine is estimated per drink: 65 mg a shot, about 120 for a latte, 200 for cold brew, then adjusted by serving-size, shot count, and decaf controls. The daily limit defaults to 400 mg. A five-hour half-life is used to estimate how much caffeine is still active at a given time.

Caffeine today
247mg
92 mg still active3 cups logged
153 mg left todayLimit 400 mg
03Home-screen widgets

The meter outside the app

WidgetKit snapshots reuse the same caffeine model as the app. The wide widget shows today's total, cups, streak, and daily limit. The compact widget keeps active caffeine visible at a glance.

04Stats & share cards

The Statistics tab aggregates totals, daily averages, the most-popular drink, and a lifetime trend across week, month, and year. The monthly Wrapped recap derives a coffee persona from those numbers. Daily and monthly recap exports turn the same logs into shareable cards.

Statistics dashboard with totals, averages and most popular drink

Period totals, daily averages and the month's favorite drink.

Monthly Wrapped recap card with a coffee persona

Wrapped turns monthly logs into a shareable recap.

Certified Caffeine Fiend· 25+ cups in a monthIced Latte Loyalist· one drink rules them allThe Marathoner· 4 cups in a single dayThe Explorer· spread across the menuSteady Sipper· coffee, no fuss
05Under the hood

Capturing a sticker runs two passes concurrently: the cutout and the drink analysis, so the “Making sticker” moment stays short. Everything that follows is local, resilient, and private by default.

01 · Camera or library

Capture

A cup photo enters with local metadata and the selected day.

PhotoTimestamp

02 · best tier first

Lift the sticker

Vision tries the clean cutout, then flood-fill and rounded crop fallbacks step in.

VisionFlood-fillCrop

03 · on-device model

Read the drink

The drink name, size, shots, and caffeine estimate are resolved locally.

NameShotsCaffeine

04 · local first

Save and refresh

The image, JSON entry, widget snapshot, and optional Health sync update together.

JSONWidgetKitHealth

Atomic backup

Manifest protects the image and entry

Widget refresh

Snapshots update after save

Private by default

No account and no server round trip

Mugshot settings screen for appearance, caffeine goal, logging goal, reminders, and Health sync
Controls

Settings keep the tracker practical: appearance modes, caffeine goal controls, weekly logging targets, gentle reminders, and Apple Health sync all live in one quiet panel.

Built with
SwiftLanguage
SwiftUIUI
VisionCutout & OCR
Core ImageImaging
Apple IntelligenceOn-device model
WidgetKitWidgets
HealthKitHealth sync
PhotosUIPhoto import
Mugshot app iconMugshot

An iOS coffee journal and caffeine tracker, built solo in SwiftUI. Capture, sticker, and calendar. All on device.

All Projects「قهوة」