
- Status
- LiveShipped and publicly available.
- Started
- Updated
- Role
- Product Design, Architecture, Development Orchestration, Validation Planning
- Built with
Overview
How Many Beers is an iPhone-only social beer tracker built around one intentionally small interaction: take a fresh photo of a beer, confirm what you are drinking, and add one to your history.
Traditional beer apps often ask for ratings, tasting notes, ABV, search, or detailed metadata. I wanted the opposite. The target loop is closer to camera → photo → confirm → +1. A repeated order can be logged through “Same as Last,” while each photo gradually builds a visual beer history, personal statistics, group activity, and a global count across the service.
Product Choices
The first concept included beer-drinking leaderboards. I removed them early. Tracking consumption is fundamental to the product, but ranking people by how much they drink would create the wrong incentive. The social layer stayed; achievements and shared statistics shifted toward variety, discovery, and participation instead of high-volume drinking.
I made a similar choice around photo verification. The product does not need to solve fraud. A system that rejects a legitimate draft beer because it cannot distinguish a stout from a Coke is worse than one that occasionally allows an ambiguous drink through.
Recognition therefore provides evidence rather than pretending to be perfect proof.
On-Device Recognition
How Many Beers uses a custom Swift Expo module around Apple Vision instead of calling an LLM or cloud vision API for every photo.
VNRecognizeTextRequest reads visible packaging text, while VNClassifyImageRequest provides general image labels. OCR results are matched locally against a bundled 141-beer catalog using brand and product aliases, normalization for common OCR mistakes, space-insensitive matching, and fuzzy edit distance.
Strong packaging text can suggest a specific beer. An unlabeled glass can soft-pass and let the user choose a recent beer or “Same as Last.” Only clearly contradictory images are intended to trigger a retake.
That architecture keeps recognition fast, local, and free of a per-photo AI bill.
Privacy and Backend Boundaries
Supabase is the shared backend for authentication, profiles, beer logs, groups, reports, and image storage.
Privacy rules live in Row Level Security and storage authorization rather than only in the interface. Profiles are private by default, and private beer-photo access follows the visibility of the associated beer log.
Age verification is also designed to minimize retained identity data: the application sends a date of birth to a database function that determines 21+ eligibility without requiring the exact birthdate to remain part of the long-term profile.
Building the Baseline
The initial implementation produced a substantial V1 codebase: 24 routes, a 141-beer catalog, nine Supabase migrations, the native Vision bridge, and a 174-test suite.
The toolchain itself became one of the harder problems. Jest/Expo skew, Babel configuration, React Native presets, and a Supabase typing issue all produced failures that looked unrelated at first. One shell-parsing mistake even reported a false clean TypeScript state while real errors remained.
I froze the baseline only after authoritative Jest, TypeScript, ESLint, Prettier, Expo Doctor, and native-module autolinking checks passed.
Current State
How Many Beers is live on the App Store, published as a free iPhone download on 19 August 2026.
Getting there meant closing out the work the source baseline could not prove on its own. The custom Swift module had to be compiled and exercised on a physical iPhone, recognition thresholds had to be tuned against real beer photos rather than catalog images, and the RLS policies had to hold up against a live Supabase project with more than one account in it.
The shipped V1 covers the full loop: camera-first logging, on-device recognition against the bundled catalog, personal history and statistics, profiles, groups, and shared activity.
What is interesting now is not whether the app runs but how it behaves in a bar. Recognition quality against dim lighting, wet labels and half-finished glasses is the kind of thing only real logging exposes, and it is where the next round of tuning will come from.
Milestones
Product concept defined
Reduced beer tracking to a camera-first Open → Snap → Confirm → +1 loop.
Local Apple Vision architecture selected
Rejected per-photo cloud AI in favor of on-device OCR and image classification.
V1 source baseline completed
Reached a validated Windows-side baseline with the app, backend schema, native bridge, and automated test suite in place.
Released on the App Store
How Many Beers 1.0 was published as a free iPhone download after device validation of the native Vision module and the live Supabase backend.

How Many Beers


