Vinarium app icon

Vinarium · native iOS

Your cellar,
understood.

I built Vinarium because I kept finding bottles in my cellar too late, past their peak. Now every bottle is scanned, located, valued, and opened at the right moment.

The magic trick

Adding a bottle takes one photo.

You photograph the label. Claude reads it and fills the producer, the appellation, the vintage and the grapes; Gemini searches the web and estimates the price. You correct one field maybe, you save. Ten seconds. That is why the cellar stays up to date.

Vinarium camera view scanning a wine label
Scan result: a fully pre-filled wine record with estimated price

The scan on the right is real: a Grange des Pères 2016, read from one photo.

Every bottle has an address.

Row A, column 4. The app mirrors my real cellar, bottle by bottle, so I take the right one without moving ten others to check the labels.

Physical cellar map with bottles by row and column

Your cellar's worth, live.

Total value, what is in stock, what needs attention. When a wine enters its drink window, the app tells me. Today it says 10 bottles and 1 263 €.

Wine collection with prices, filters and favorites

A sommelier's memory.

Grapes, appellations, classifications, purchase price, tasting notes. The kind of details you promise to remember about a bottle, and never do.

Wine detail: color, estate, vintage, appellation, classification, grapes

In and out, remembered.

Every bottle that comes in or goes out, with the date and a note. Ask me what we opened at Christmas two years ago: I can tell you.

Journal of cellar entries and exits by date

On your home screen

Your cellar, without opening the app.

iOS widget showing total cellar value
Cellar value
iOS widget showing bottles in the cellar
In the cellar
iOS widget showing wines ready to drink
Ready to drink
iOS widget showing latest cellar activity
Journal

And everything else

It went further than I planned.

Global search

One search across names, producers, regions, vintages, even people. Ranked by relevance, refined with combinable filters.

Drink windows

Every wine carries its window, and the dashboard shows what is ready. "Before 2027" is not something I have to remember anymore.

Gifts, both ways

Bottles received and bottles offered, with who and when. Never offer a wine back to the person who gave it to you.

Beyond wine

Port, rum, sake, beer. Anything worth keeping gets proper structured fields, with the same care as a grand cru.

Tasting journal

Notes and ratings on every bottle opened. A searchable history of what I really liked, not what I think I liked.

Your data, yours

Full JSON export and import, Sign in with Apple, per-user isolation in Firestore. If one day I want to leave my own app, there is a door.

The app is in French because I built it for myself, and I am French. The screenshots are the real app.

The craft

The part only
developers will care about.

SwiftUI · Swift 6iOS 26GraphQL typed end-to-end Nitro on Cloud FunctionsFirestoreDDD & CQRS Pure FP coreTerraform one-shotClaude vision Gemini search

Same method as everything I ship: domain-driven design with strict CQRS, business rules as pure functions (all of them tested), and a GraphQL schema typed end-to-end from Firestore to SwiftUI. The whole GCP infrastructure starts with a single Terraform command. Architecture and reviews by me, code written by Claude under close supervision.