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.
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.
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.
Sticker calendar: each day is a tile, today gets the roast pill, and a caffeine meter sits below.
Day detail: a drag-to-arrange sticker board over a receipt-style log of each cup.
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.
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.
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.
Period totals, daily averages and the month's favorite drink.
Wrapped turns monthly logs into a shareable recap.
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.
Capture
A cup photo enters with local metadata and the selected day.
↓
Lift the sticker
Vision tries the clean cutout, then flood-fill and rounded crop fallbacks step in.
↓
Read the drink
The drink name, size, shots, and caffeine estimate are resolved locally.
↓
Save and refresh
The image, JSON entry, widget snapshot, and optional Health sync update together.
Atomic backup
Manifest protects the image and entry
Widget refresh
Snapshots update after save
Private by default
No account and no server round trip
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.
An iOS coffee journal and caffeine tracker, built solo in SwiftUI. Capture, sticker, and calendar. All on device.















