Helping Dad With Excel Turned Into Building an App
My father needed help with a wine spreadsheet. Just under a week later, he had a production web app with photo recognition and recipe generation — not because I planned it, but because one experiment kept leading to the next.
"Hey Lou, can you take a look at the spreadsheet for me?"
A fairly innocuous question that turned into something a little bit bigger.
My father has a wine collection — more bottles than I'll publicly say — and he'd been managing it across a sprawling spreadsheet. A couple of years back, I helped him by introducing pivot tables to replace the duplicated tabs he'd been maintaining by hand. That fix held for a while. But as ever with my dad, new ideas start to flow in. When I asked him what "help with the spreadsheet" actually meant, he told me he wanted tasting notes, drinking windows, proper metadata for each bottle.
I said I'd take a look. Just under a week later, he had a production web application with AI-powered photo recognition and recipe generation.
I didn't set out to build that. But the story of how a spreadsheet favour turned into my first full-stack app says something about what building looks like right now.
Early Iterations With Gemini
For the record, I didn't go straight from that question to thinking I was going to build an app. It was a series of escalating experiments that got us there. And the first one was pretty simple: can Gemini (Google's AI) actually tell me useful things about wine?
My father and I tested it with two specific bottles from his collection. We checked the metadata Gemini returned — tasting notes, varietal breakdowns, drinking windows — against what we knew about those wines. It was accurate. Not perfect, but accurate enough to trust at scale.
That validation step matters more than it looks. I've fallen victim myself to jumping straight into automation — wire up the API, loop through everything, hope it works. We tested capability on real examples first, confirmed the output was trustworthy, then took the next step. Validate first, automate second.
Having done that, I knew I could do the same thing at scale. I'd been playing around with Apps Script for years, so I knew I could build something that would call Gemini's API and loop through all 500 rows of wine data for metadata enrichment. The thing I thought would be interesting was whether we could actually get an image for each bottle — so I used Google Custom Search Engine to pull bottle image URLs based on wine name and vintage. The whole thing took about six hours to build, and a lot of that was just debugging really annoying errors coming back from the API. But we got there.
Twenty-six columns of enriched data per wine. Functionally complete. Also overwhelming to actually look at.
Building the Interface Layer
One of the things I've done a lot throughout my career is essentially simulate an application inside Google Sheets. You can get pretty creative with formulas — index matches, vlookups, conditional formatting — when it comes to displaying information. So I thought a dropdown that would render a single wine's data and bottle image in a cleaner format would be plenty for my dad. And as you can see below, it does the job.
At this point, Dad was already pretty happy with things. But I was curious — I wanted to see if I could go a step further. So I had a go at building a little interface using some HTML deployed over the Apps Script to create a simple web-based view. This is where people started to get really excited.
For those of you who are starting to spend time reading my articles, you'll probably start to see that I have a slight streak of perfectionism. And I hated the idea that my family would have to access this through a gross Apps Script URL — something like script.google.com/macros/s/AKfycbx8Jd7nQ.... I started thinking about proper user authentication, about the family actually using this on their phones, and I started to wonder — what if I actually did this properly?
Building a Proper App With Claude Code
I'd taken December off projects specifically to upskill. Not a vague "learn some new stuff" intention — I'd blocked the calendar and committed to building things I hadn't built before. The wine app became my first experiment.
This was my first foray into full-stack development. And my first serious project with Claude Code.
I want to be precise about what that collaboration actually looked like, because the lazy version of this story is "I told AI to build me an app." That's not what happened.
Claude handled technical scaffolding — page architecture, component structure, database setup. It had genuine intuition about how to structure a Next.js application. When I described what I wanted the data to do, Claude would suggest infrastructure patterns I wouldn't have known to ask for. What I brought was product thinking — data flow design, UX decisions, visual identity direction. The why and the what were mine. The how was collaborative.
The grape varietal data is a good example of this. Each wine has a blend — maybe 60% Shiraz, 30% Grenache, 10% Mourvèdre. That needed to be stored as key-value pairs mapping grape types to percentages, structured so the app could both render them cleanly and let my father edit them in the database. Claude didn't magically get this right. We workshopped the JSON schema together, going back and forth on how to structure it so it would work across display, editing, and search contexts. Not autonomous generation — collaborative problem-solving with clear roles. I was figuring out what to ask for as much as I was implementing known patterns. The learning was the building.
When the Family Got Involved
For the longest time, my family has associated me with spreadsheets. Good with data, good with formulas — but I don't think any of them would have imagined I could do what I ended up doing with this. For anyone that knows the Razuki clan, wine is a very big part of our family culture. So when they started to see what I was working on, everyone wanted to chip in.
The visual identity went through six or seven iterations. I'd generate options using Claude and Gemini, then bring my father in to evaluate each design system. He'd tell me what felt right, what felt off, what he'd actually want to look at every day. Then I'd go back and iterate.
My younger brother is a chef. When he saw the app, his immediate reaction was: "Can it suggest food pairings?" He mentioned it at midday. By 2pm, he was looking at a working prototype — users select cuisine type, cooking style, and food preferences, and the system generates three recipe options with AI-generated food photos using Imagen.
I also built a photo recognition feature using Gemini's Vision API. You photograph or scan a wine bottle, the system identifies it, and matches it against the existing database. It sounds like a neat trick, but it's actually the most natural way to interact with a wine collection — you're standing in front of the rack, you grab a bottle, you want to know what you're holding.
This was really a family exercise. Not in the heartwarming-holiday-project sense — in the practical sense that having real stakeholders who cared about the outcome shaped every decision. My father's feedback kept the interface honest. My brother's expertise expanded what the app could do. Their opinions carried weight because they were the actual users, not hypothetical personas in a product brief.
What Came Out the Other End
My dad asked for help with a spreadsheet. He got a production web application that enriches new wines automatically, recognises bottles by photo, and generates recipes to pair with dinner. It runs. He uses it. Every new wine he adds is processed without him lifting a finger — the system he asked me to help with now maintains itself.
I was experimenting, I was having fun, and it worked.
The Takeaway
I'll be honest — this experience was a little bit life-changing. I've had a lot of instances in my life where taking the leap to try something — even when it feels like a big unknown, particularly with technical things — has escalated really quickly. Can I do this formula? became can I write this line of code? became can I build an app? But this was one was definitely the most impactful.
Giving myself the space through December to tinker has unlocked a whole new set of possibilities for this next phase of my career.
I wasn't starting from nowhere, though. Those days built on years of Apps Script experience, years of automation and data structures and API thinking. Not a computer science degree, but adjacent technical work that gave me enough foundation to stand on. The tools didn't let me build from zero. They let me build from almost enough.

Louis Razuki
Founder & Guide
I write about working with AI — the tools, the mindsets, the builds that actually deliver. Three years of daily AI practice distilled into experiments, insights, and honest takes on what's real and what's just hype.