Whisky, wine, and what's in the glass tonight — tasted, scored, remembered.
—Expressions
—Bottles
—Flights
—Tastings
—🍺 In Cellar
—Beer Reviews
—Beer Flights
🏠
You're at home
—
Suggested for tonight
Finding a flight…
A curated pour for the evening, matched to your library.
Featured tonight
Loading a featured bottle…
—
Pick something to read about — Adam's tasting notes, the AI-aggregated critic spread, and the flavor radar are one tap away.
Most members visit from a distance. Browse reviews, take the palate quiz, read about the flights and the wines, or use the AI tools — none of it requires standing in front of the bottles.
What you can do
The Collection
—
—
—
—
—
—
—
A private cellar tracker with AI tasting notes, blind sessions, flight curation, and a unified pour ledger for home and away.
Features at a Glance
Open
🥃
Browse the Collection
Every bottle, filterable by region, style, or distillery. Click any name for an AI-pulled review.
Open
✨
Flight Finder Quiz
Five questions about your palate, experience, and mood — and out comes a flight tailored to you.
Open
🕶️
Blind Tasting Sessions
An admin sets up a flight — AI-curated or hand-picked — and invites guests to sign in for their own blinded scoring cards. Everyone's impressions come together live across the event, then the bottles are revealed.
Open
⚖
Side-by-Side Compare
Stack any two bottles — from the collection or anywhere else — and see their critic-aggregated profiles, flavor radars, and recommended-order suggestion side by side.
Open
✨
Tour the Collection
A consumption-first walk-through of the cellar's highest-scored bottles — host notes, flavor radars, and pour pairings as if you were being walked around the bar.
Sample
Radar Flavor Profiles
Available within the review sections — every tasting maps nose, palate, and finish on interactive axes like this Islay-style nose:
Members
🍷
Wine Cellar & Sommelier AI
Log tried wines, save your palate profile, and get food-paired wine picks from a Claude-backed sommelier.
Members
🤖
AI Tools & Suggestions
Generate AI-curated flights and pick tonight's dram with a single click. Plus:
Capture entire liquor-store shelves with a photo for instant analysis and recommendations
Aggregate external ratings from across the internet into averaged scoring and tasting profiles
Add new bottles and expressions just by snapping a photo of the label
What this is
A vibe-coding experiment built around a real whisky collection and a growing wine cellar. The goal: build every feature a hardcore enthusiast would actually want — proper tasting notes with radar flavor profiles, blind sessions you can host, AI-assisted flight building, palate quizzes for guests, and a unified ledger of every pour at home, at a bar, or by the glass at dinner.
New features land all the time. Take a look around.
Get in touch
Questions, feedback, or want an account to log your own tastings? Reach out:
Answer 5 questions and get personalized tasting flight recommendations from Adam's collection, matched to your palate, experience level, and occasion
📚 Browse by region & categorytap to expand
Scotch Whisky
—
Islay · Highland · Speyside · Campbeltown · Lowland · Island, single malts and blends, plus dedicated Balvenie bottlings
American Whiskey
—
Kentucky & NY bourbon, Maryland rye, Utah craft, Tennessee, and American single malt
Japanese & World
—
Japan · India · France · Wales · Taiwan, plus Irish whiskey, Cognac, and liqueur
Collection by Category
Category / Region / Style
Expr.
Bottles
Loading…
—Avg Rating
—Finished Cellar
—Tastings Logged
—Drinks Elsewhere
Collection by Region & Category
Rating Distribution
Occasion
Age Statements
Top Rated
Actionable Insights
💡 Click any expression name to open its online review panel with community ratings and scores.
Scotch — Islay
Scotch — Highland
Scotch — Speyside
The Balvenie
Scotch — Campbeltown
Scotch — Lowland
Scotch — Island
Blended Malt Scotch
Blended Scotch
Irish Whiskey
Japanese Whisky
World Whisky
American — Bourbon
American — Rye & Blended
Liqueur
Tour the Ledger
The Collection
A walk through the bar, top to bottom — no edit chrome, just the pours.
—Bottles
—Expressions
—Distilleries
—Regions
—Oldest
Greatest hits
The whole collection
Sorted by rating. Tap a tile to see its review.
Groups:Difficulty:
⏳ Loading flights…
Step 1 of 5
Your Recommended Flights
Based on your answers, these are the flights from Adam's collection most likely to match your palate.
🥃 Flights from the Collection
✨ You Might Also Enjoy
Whiskies outside the collection that match your palate — sourced via Perplexity AI
Finding recommendations…
🍷 Drinks Log
Open the camera, scan a bottle label, and we'll fill in the details automatically.
Loading…
📦 Inventory
or paste ⌘V
Showing —
Bottle description:
🧾 Scan Results
1 of 1
Brand
Expression
Category / Region
Age
ABV
Btls
Adam's Rating
Adam's Drinking Frequency
Added
$/L
Loading…
Combined Average · Adam's Rating + Tastings
Rating Distribution
Every expression ranked by its combined average score. Click any name to open its online review panel.
💡 Click an expression to open community ratings
Loading…
🧠 AI-Curated Flights
Claude analyzes your full collection and builds thematic tasting flights — by region, style, age, or flavour arc. Regenerate anytime your collection changes.
⚠ Flights were generated less than 7 days ago. Regenerating will replace all current flights.
🥃
No AI flights yet
Click "Generate Flights" and Claude will curate 6 thematic tasting flights from your collection — grouping by region, style, age, or flavour profile.
🕶️ Blind Tasting
Taste blind. Judge honestly. Then face the truth.
An admin sets up a flight — AI-curated or hand-picked — and invites guests to sign in for their own blinded scoring cards. Everyone's impressions come together live across the event, then the bottles are revealed.
Loading sessions…
Session
🔑 Host Setup — bottle identities (visible to admin only)▼
👥 Tasters
🎉 Revealed! Tap 👥 Tasters to see everyone's results.
🕶️ New Blind Session
🕶️ Join Blind Tasting
Enter your name so your notes and guesses are saved under your identity.
🧠 Purchase Strategy Agent
Strategic analysis of prospective bottles against your collection — gap-fill vs. vanity, archetype match, irreplaceability score, and a Buy / Wait / Pass verdict per bottle. Photograph a shelf, paste a screenshot, or drop in a URL.
1 Paste a Bottle URL
Retail page, distillery site, review, or auction listing. Perplexity fetches the page and extracts the bottle; the strategic analyzer then judges it against your collection.
1 Photograph the Shelf — or paste an image (⌘V / Ctrl+V)
Add up to 5 shelf photos, or paste a screenshot of a website / online listing. Wide shots work well — Claude will extract every identifiable bottle and any visible prices.
2 Identified Bottles
Claude's read of the shelf. Remove any misidentified bottles before analysis.
Bottle
Region / Age
Price
In Collection
Corrections
★ Strategic Analysis
📚 Considered Purchases
Every analysis (shelf scan or URL) is auto-saved here. Filter by verdict to triage what you should still chase.
Click ⟳ Refresh to load past analyses.
⚖ Head-to-Head Comparison
📈 Price History
Want to Acquire
Wish List
Bottles on your radar — sorted by priority
Loading…
Loading Agent Finds…
—
Loading…
Add to Wish List
Your Notes
Tasting
Every note, tag, and score you've logged — from the collection, the bar, and the cellar
Loading…
Custom Flights
Flight Builder
Hand-pick your own tasting sequence from the collection
Add Bottles
Loading collection…
Your Flight (0 pours)
Click bottles on the left to add them to your flight.
Saved Flights
🍾 My Wine Cellar
Quality
Window
Loading profiles…
🍽
Food Pairing Filter
⏳
Loading…
🍷 Wines I've Tried
Loading…
📍Detecting location…Switch
1 Set the Scene
Describe what you're eating and what you're in the mood for — style, weight, anything you want to avoid. Tap 📷 to attach a wine list photo, a screenshot from Vivino or a menu, or any saved image; or just describe what's available. Your full tasting history and palate profile are already loaded into the sommelier. Press Shift+Enter for a new line, Enter or Ask → to send.
📷
2 Recommendations
Your sommelier is ready — describe the scene above and tap Ask →.
Step 2b — React & Refine: Push back, ask a follow-up, or tell me what surprised you. The sommelier has the full conversation in context and will adjust. Reply as many times as you like, then tap Ready to choose → when you've settled on a direction.
3 Confirm Your Selection
Tell me which wine you ordered — name, grape, position on the list, whatever you remember. The sommelier will confirm why it's a good fit for what you described, then extract the structured details (producer, grape, vintage, region) so the log form fills itself in automatically. You'll get a chance to correct anything before it saves.
4 Tasting Notes
Step 4a — On Arrival: Capture your first impressions now, while the wine is fresh and before the food changes the palate. All fields are optional — fill in what stands out. Tap Save & enjoy your meal → to lock these in; you'll return after eating to add the finish and food pairing.
✓ Arrival notes saved — color, nose, and first impression are locked in. Come back after eating to capture the finish and how it paired with the food. Or log it now if you're done.
Step 4b — With Food: Now that you've eaten — how did the wine hold up? Did it open up or close down? How did it interact with the dish? These notes, combined with your arrival impressions, build the richest possible entry in your wine history and update your palate profile.
5 Log Tonight's Wine
After confirming your selection in Step 3 and completing tasting notes in Step 4, the log form will open pre-filled — wine details from the AI extraction and your tasting notes already populated. Review, adjust if needed, and save. You can also tap + Log a Glass at any time to add a wine manually. Entries appear below and feed into your Wines Tried history.
No entries yet tonight — complete Steps 3–4 or tap + Log a Glass.
🍺 Beer Cellar
Color
Loading…
📋 Beer Tasting Log
Loading…
🍻 Beer Flights
Loading…
🧬 Palate Finder
Loading…
📊 Beer Stats
Loading…
New Beer Flight
Flight
Add to Beer Cellar
Color preview:—
Log Beer Tasting
BJCP Scoresheet (optional)
—
—
—
—
—
Total: —/100
Admin
Settings
Personalise your collection app
Collection Identity
Used in column headers, tasting forms, and AI prompts.
Shown in the browser tab, sidebar, and overview hero.
Appears below the title in the sidebar.
Shown in the overview "Est." tag.
Labels
Column header in List View and bottle modal.
Column header for occasion/frequency in List View.
✓ Settings saved
🏠 My Home Location
The Overview uses this pin to decide when you're home vs. out.
Radius default 100m covers backyard and garage. Stored locally in
user_geofences; never sent to a third party.
Loading current setting…
100 m
25 m = front door only. 100 m = house + yard. 300 m = whole block.
Tasting Flights
Regenerates all 40 Core flights (Groups I–III) using Claude AI, based on your current inventory. User-built flights are untouched. This takes ~15–20 seconds.
Checks every pour name in every flight against the active inventory. Reports unmatched pours (names Claude generated that don't resolve to a bottle) and orphaned bottles (active inventory items in zero flights). An audit also runs automatically after every reshuffle.
Data Export
Exports all databases — inventory, tasting notes, drinks log, wine cellar, wishlist, and flights — in your chosen format. Excel exports all tables as separate worksheets; CSV downloads one file per table.
Restore Data
Choose a snapshot, preview what it contains, then select which tables to restore. A safety backup is created automatically before anything is overwritten.
⚠ This will DELETE and replace all rows in the selected tables. A safety backup will be saved to R2 first.
Upload a CSV or Excel file — columns are matched to a table and rows are upserted by ID. Existing records not in the file are untouched. A safety backup runs first.
No file selected
Target table:
⚠ Rows will be upserted (INSERT OR REPLACE) by ID into the selected table. A safety backup runs first.
Cloud Backup (Cloudflare R2)
All databases are automatically backed up to Cloudflare R2 every night at 04:00 UTC. Backups are stored as latest.json plus a timestamped archive copy. Use the button below to trigger a backup immediately.
Last backup: Loading…
Schema Migrations
Run once per new column — safe to re-run (idempotent)
Adds bottles_opened INTEGER DEFAULT 0 to the whiskies table. Required for tracking how many bottles of a given expression are currently open. Run once after deploying the v3.6 worker.
Collection Valuation
Insurance replacement value estimate
🔍 Inventory Reconciliation
Field-by-field AI review — approve before anything is written
Perplexity searches each bottle's missing fields and presents the proposed values here. Nothing is written to the database until you review and commit. Uncheck any field you don't trust before committing.
💾 Unsaved preview from
Fetching…
📷 Photo Population
Find web images for bottles without photos — preview before saving
Uses Perplexity to find a product image URL for each bottle that lacks a photo. Images are previewed below — accept the ones that look right, skip any that don't. Accepted URLs are saved directly to the database; no base64 is stored.
Searching…
User Management
0 pending
Loading…
Loading…
Sort by
—
Security — Two-Factor Authentication
Loading…
Scan the QR code with Google Authenticator or Authy, then enter the 6-digit code to activate 2FA on your account.
Can't scan? Manual entry:
⚠ Save these recovery codes now
Each code can be used once instead of your authenticator. Store them in your password manager.
✓ Two-factor authentication is active
Security — Trusted Devices
Devices marked as trusted skip the login screen and silently re-authenticate when your session expires. Admin-only.
Loading…
📝 Library Bulk Edit
id · brand · expression are locked — use the bottle modal to change those
No pending changes
Loading…
🧪 Tastings Bulk Edit
id · whisky_id · flight_id · date are locked
No pending changes
Loading…
🧠 Strategic Rules Engine
Editable guiding-principles prompts that drive the Purchase Strategy Agent and the Sommelier. Each card shows the current prompt; placeholders like {{owner_name}} are substituted at request time. Save to override the worker's default; Reset to revert.
Loading prompts…
🤖 Agent API
Expose the catalog and your strategic priorities to external LLM agents (Perplexity, ChatGPT custom GPTs, n8n, custom workflows). Agents authenticate with an X-Agent-Key header. Strategic priorities schema is still being worked out — set it from this tab once it lands.
Loading…
📊 Click Analytics
Where visitors are clicking on the new feature deck, lead panels, and CTAs. Tile clicks, CTA clicks, and page views are recorded server-side with role + username; guest clicks are anonymous. Open to debug what's resonating and what's getting ignored.
Window:
Loading click analytics…
Admin
Changelog
Version history and feature log for Pour & Palate Ledger
Loading changelog…
Access
🛡 Role Access
What each role can see and do in Pour & Palate Ledger
API
🤖 Agent Context
A stable public URL that returns your live inventory as Markdown — for Perplexity, ChatGPT, Claude, or any agent.
Loading…
Add Wine to Cellar
Set manually to override the AI-assigned rating.
AI reads label → fills fields
Log a Wine
Camera, photo roll, or screenshot — label, Vivino, menu photo, anything works.
🥂 Log a By-the-Glass Wine
tap to rate
📍No location captured
Wine Details
Wine Profile
Loading…
Loading wine profile…
🔒 Purchase Strategy Agent
Enter the access code to use the Purchase Strategy Agent without signing in.
📊 Why These Picks?
Your palate profile and wine history driving tonight's recommendations
Loading…
📜 Pairing History
Loading…
Loading history…
Brewery Profile
Loading…
Fetching brewery profile…
Beer Ratings
Loading…
Fetching external ratings…
Review aggregator
Why I Bought It
Select a whisky to load its reviews.
Flight
Click a flight card to explore tasting notes.
Log a Drink
Point your camera at the bottle to auto-fill type, brand & expression.
Point your camera at the bottle label to auto-fill the form below.
📍No location captured
🔍 Research with PerplexityDescribe what you know — or just click Search. Suggestions fill the form; nothing saves until you hit Save Bottle.
🥃 Select a Whisky to Taste
⚖ Compare Whiskies
Select 2–3 whiskies to compare their flavor profiles, stats, and ratings side by side.
🏷 Your Tag Patterns
📝 AI Tasting Notes
🔎 You May Also Like
Log Tasting
Record your impressions
Reviewer
Location
📍No location captured
Score
02.557.510
Flavor Profile
Drag along a spoke to set its value
Notes
How to Safely Test Restore
Follow these phases in order — each one is safer than the next, with a built-in undo at every step.
Phase 1 — Zero Risk
No data touched
Open Settings → hit Backup Now to snapshot your current state as a known-good baseline.
Hit Download Excel — open the file and confirm all your data looks right.
Open the Restore section, select the snapshot you just made, click Preview — this is a dry run only, shows table counts, nothing is changed.
Phase 2 — Low Risk
Upsert, not wipe
From the Excel you downloaded, open the Whisky Inventory sheet, change one field on one row (e.g., a note or ABV), save as CSV.
In Restore from File, upload that CSV — it upserts just the changed row, leaving everything else untouched.
Check that the change took effect in the app, then restore from your known-good snapshot to undo it.
Phase 3 — Full Restore
Destructive — but safe
Select your known-good snapshot, check only one table (e.g., Whisky Inventory), click Restore Selected Tables.
The worker saves a safety backup to R2 before it wipes — so you have two undo points: the pre-restore backup and your original snapshot.
Verify the table restored correctly.
Open the snapshot list — you should see a new entry (the auto-safety backup that fired just before the restore).
The key safety net: every restore — cloud or file — creates a new R2 backup of the current state before touching anything. The worst case at any point is "restore from the most recent snapshot." You can always undo a restore by doing another restore.
One thing to expect: if you restore flights or flight_groups, the Core 40 flights will revert to whatever was in that snapshot — not harmful, just worth knowing.
📬 Request Access
Fill in your details below. Adam will review your request and email you a link to activate your account.
🔑 Activate Your Account
Welcome! Set a password to activate your account.
🔒 Admin Sign In
Open your authenticator app and enter the 6-digit code.