In 2007 two friends and I printed a tasting notebook based on 8 years of experience at that point running a whiskies tasting group. This October the iPhone app went to the App Store, with its Android twin self-hosted delivery close behind.
Editor: AU: whisky or whiskey?
Author: Both. It depends on the bottle.
What does a 98-point whisky taste like? You can’t tell me. Neither can the reviewer who scored it, at least not in any way that helps you pick a bottle. Is it thick or thin? Loud or polite? Does it tell a long story or a short one? Would you want it on a hot afternoon or a cold night?
Editor: Rhetorical question. Keep?
Author: Keep. It’s rhetorical.
The 3 Drunken Celts (Raz, Fergus, and yours truly, Seamus) had a long-standing personal beef with that number. So in February 2007 (eight years after starting our little group) we wrote our own tasting notebook, Form 3DCA.2510, and printed our motto across the top: never forget the funny. To this day it is the hard-copy notebook I use for all my focused tastings.
Editor: Serial comma: present.
Author: Always.
01 · The intent
The 3DC method is a deliberate rebellion against opaque scores. Three semi-objective measures, each on a 1–5 scale:
- Viscosity: how thick the dram is. As Raz and I wrote in the foreword, if it drinks like 10W-40 motor oil, it’s a 5. Thin as water, a 1.
- Boldness: how strong the taste is.
- Length of Story: how long the finish keeps talking.
Then, “lastly and least importantly,” a Personal Taste grade from A to F, with a plus or minus. The three measures are things two drinkers can agree on. The grade is yours alone. Put them together and you can learn a friend’s palate well enough to try something you’d never have picked, simply because someone with your taste liked it.
Around 2011 we wrote a spec for an app and an online database, and mocked up screens on top of Urbanspoon to show what we meant. Then life happened… as it does.
Editor: That’s one.
When I picked it back up this summer, I made one decision that shaped everything after it: a private notebook first. No accounts, no backend, no network dependency. The social features we dreamed about in 2011 went on the back burner. If the app couldn’t be excellent as a notebook in your pocket, nothing else mattered.
02 · The process
The first commit landed on July 6. Two native apps, built side by side and kept in feature parity: SwiftUI on iPhone, Jetpack Compose on Android. Between them sits one file, TastingEntry.md, the parity contract that both apps must mirror field for field. A single source of truth… possibly the most knowledge-management sentence I’ve ever written into a codebase.
Editor: That’s two.
Claude Code did most of the typing. I did the parts that don’t compress: deciding what the app is for, what it refuses to do, and when something is good enough to put in a friend’s hand. Testers had a beta on July 20.
A few things from the workbench I’m still pleased about:
- Byte-for-byte across platforms. Anything both apps must compute identically (grade points, share codes, number formatting) is checked against a tiny Java reference program first, then baked into both test suites as the same fixture. It caught real traps. Kotlin and Swift round negative halves differently, and ™ quietly becomes “TM” on one side.
- Continuous integration on a Raspberry Pi. Android builds and tests run on a Raspberry Pi of mine which I bemusingly call the-bakery. iOS builds run locally on a self-hosted Mac, because GitHub bills macOS minutes at ten times the rate on private repos and I ran out of “free” credits. Self-hosted costs me “nothing” more than I already have.
- Nineteen phases of features, none of them needing a server. Backup and restore, label reading with the camera, dictation into the nose and finish fields, Insights, flavor tags, cellar value, app lock, Blind Flights with a Label Bias Index, bottle life, QR shelf tags, pass-the-phone group tastings, a Consistency Drill, guided curricula, and The Snug, where you swap palate cards with friends by link or QR code (that social bit snuck in after all). The card travels inside the link.
editor: A “Hacker” theme? For a whisky app?
author: Stet. Somebody (its me, I’m somebody) at the table drinks from a terminal.
Editor: Set as display. Bigger.
Author: Bigger.
In October I ran a pre-launch review with six parallel AI reviewers, each with one job: iOS security, Android security, iOS usability, Android usability, data integrity, and store readiness. Every finding was checked against the code before it was fixed, and an independent reviewer re-read the combined fixes looking for regressions. Unit tests went from 114 per platform to 151 on iOS and 150 on Android.
The headline finding was humbling.
Choosing a backup folder on a new phone could write an empty notebook over your only good backup. The review’s own words became the rule for everything after: the worst thing this app can do is lose someone’s notebook. Auto-backup now never writes an empty notebook, keeps the previous copy, and offers to restore.
Other fixes were about honesty. A playful “drink me” nudge became a factual “Oxidizing” label, and the weekly tasting streak went away. The Android app is built without permission to touch the internet at all. Shared links carry their data after the #, which browsers never send to a web server, so opening a friend’s tasting doesn’t leave it in anyone’s logs.
03 · The outcome
On October 15, 2026, version 1.0.0 (build 9) of 3DC Tasting Notes went to Apple for App Review, set for manual release. That build, and the first public release the day after it went to review) is the accessibility build: VoiceOver, Voice Control, and TalkBack support on both platforms, and cues that don’t depend on colour alone. Google Play is next, with the distribution plan already written, but self-delivered through the 3drunkencelts.com host in the meantime.
What surprised me most is how much the “no server” rule improved the product rather than limiting it. Sharing had to work through the phone’s own share sheet, through links, and through QR codes, so it works everywhere and leaks nothing. Privacy stopped being a policy page and became a property of the build. There’s simply nowhere for your tasting notes to go.
The other lesson is older than any of this. The rating method held up for nineteen years because it was honest about what can be measured and what can’t. Three boxes two people can agree on, and one letter that belongs to you. I’d like to think the app is honest in the same way.
So here’s my challenge: next time a bottle wears a big number on its neck tag, ask what it would score on viscosity, boldness, and length of story. Then pour one and find out for yourself if the number matches your truth.
Editor: Starting with ‘So’?
Author: And why not.
Never forget the funny.
Sláinte.
Transparency note: drafted with Claude from the 3DC repository, its roadmap, and the October launch review, then read, cut, edited heavily, rewritten, and finally approved by me. As always: AI drafts, humans ship.
AI drafts, humans ship. This entry has been through the human.




You must be logged in to post a comment.