Home About Contact LinkedIn
All work
Coming soon · Updated 2026

Building a full-stack AI app solo — and discovering where AI-native tooling breaks down for non-engineers

Sous Pantry is an AI-powered pantry and meal planning app. This is the story of building it with Claude Code — and what that experience revealed about where the tool breaks down for non-engineers.

Platform
iOS · Android · Express.js
Build tool
Claude Code
Role
Solo designer & builder
Timeline
December 2025 – Present

The problem I lived every week

I'd open the fridge after a long day and have no idea what was actually in there. Not roughly — truly no idea. Things buried at the back. Duplicates I'd bought because I forgot I already had them. Ingredients quietly expiring while I ordered takeaway instead.

And when I did try to cook, standing in front of a full pantry felt worse than an empty one. Too many options, no clear path. I'd scan the shelves looking for something that clicked, trying to mentally map what went with what — after a day that had already used up every bit of cognitive bandwidth I had.

The mental load of meal planning isn't the cooking. It's the inventory problem nobody has solved well. What do I have? What can I make with it? What am I missing? Three questions that should take seconds. Instead they take twenty minutes of staring, Googling, and second-guessing — or they don't happen at all and you over-buy at the weekend shop again.

Sous Pantry is my attempt to solve that. Not with a recipe app, not with a shopping list — with a kitchen that actually knows what's in it.

Sous Pantry

Sous Pantry helps households reduce food waste and take the friction out of meal planning. A handful of core workflows drive the experience:

Up-to-date pantry list so you always know what you have Recipe suggestions based on current pantry inventory and preferences Assisted restocking of your shopping list based on pantry gaps and suggested items Supermarket receipt import

The design challenge was building a genuinely useful product solo — no engineering co-founder, no agency — using AI as my primary collaborator. What I didn't expect was that the most valuable design work would happen not inside the product, but in observing the tool I was building it with.

Key design decisions — informed by research

The Mum Test — what research revealed
"Pantry chaos isn't a personality flaw. It's a universal household condition."
Interviewed working mums and dads about how they manage their pantry, shop, and decide what to cook. The finding wasn't what I expected — organisation wasn't a personality trait, it was a function of time and cognitive load. Almost no one truly knew what they had. The rare organised household was the exception, not the norm. My own experience — somewhere between the two extremes — turned out to be the exact middle of the spectrum Sous Pantry needed to design for.
M

The organised mum

Rare
~10% of households

Organised
Shops with a list. Knows roughly what's in the pantry. Restocks deliberately. Meal plans weekly — or at least attempts to.
→ Sous Pantry still reduces effort but isn't solving a crisis. Not the primary user.
D

The winging dad

Common
majority of households

Winging it
No list. Doesn't know what's in the pantry. Shops by memory and mood. Over-buys duplicates. Decides what to cook by staring at shelves.
→ The highest-friction user. Every Sous Pantry feature exists to solve this scenario.
Me

The in-between

The design target
most households

Primary persona
Tries to stay on top of it. Sometimes succeeds. Knows roughly what's there but not precisely. Buys duplicates occasionally. Cooks well when organised, orders takeaway when not.
→ This is who Sous Pantry is designed for. Capable, just under-supported by their tools.
What this changed in the design
Onboarding via photo scan — not manual entry Research confirmed nobody would manually enter a full pantry inventory. The entry point had to be frictionless — point, scan, done. Manual entry exists but it's not the designed default.
AI suggestions matched to what you actually have "What can I make tonight?" is the real question. Not "show me recipes." Matching suggestions to live inventory — not a generic recipe library — became the core AI workflow.
Shopping list generated from gaps, not wishes Most shopping apps are wishlists. Research showed the real need was restocking gaps — things you've run out of or are running low on. The list builds itself from pantry state, not from manual additions.
Designed for the middle — not the extremes The organised mum doesn't need Sous Pantry. The completely chaotic household won't change habits. The "in-between" — capable but under-supported — is the person who'll actually use and benefit from this.

The App

Pantry to Meal to Shopping.
One cohesive experience.

Sous Pantry — Home screen showing Kitchen Health and Fresh from Coles summary

Home

Sous Pantry — My Pantry screen with categorised inventory list

My Pantry

Sous Pantry — Plan & Cook AI chat suggesting steak recipes

Plan & Cook

Sous Pantry — Recipe detail showing all pantry ingredients matched

Recipe Detail

Auditing Claude Code as a designer

This case study is about two things: the app I was building, and the experience of building it. Every friction point I hit became a design observation. Every workaround I invented pointed to something missing.

What follows is an honest field report from a designer who spent months inside Claude Code — not as a developer, but as someone who thinks in systems, flows, and user journeys.

Chapter 01

I didn't know where to start — and nothing told me

My first session with Claude felt like every other AI chat interface. I genuinely didn't understand what Claude Code was, or how it differed from Claude Chat, or what Claude Cowork was for. Three products, one brand, almost no explanation of how they relate.

I ended up doing what no product should require: I enrolled in external courses. Online classes on vibe-coding for designers. YouTube tutorials on Cursor terminal workflows. A separate course on iOS app building with Xcode and Claude Code. Three third-party learning experiences just to understand what Anthropic's own product did.

That's not a user problem. That's an onboarding gap.

"I had to take online classes to understand what Claude Code was. That's not a user problem — that's a missing first-run experience."

For any AI tooling product, the first-session experience is the product. If a capable user needs three external courses to understand what they're using, the onboarding isn't incomplete — it's absent. This is the highest-leverage design problem in the AI tools category right now.

Chapter 02

Three platforms, one project, and a loop I couldn't escape

My working setup: Claude Code in Cursor's terminal, Xcode for building and running the iOS app, and Claude Chat open in a browser tab for when things broke. Three windows. Three contexts. One feature.

For a while it was manageable. Then I hit the Plan & Cook tab — where meal suggestions needed to match against live pantry inventory. Claude Code started looping. Builds succeeded. Outcomes didn't reflect the code. Working features got silently overwritten.

I ended up creating a .cursorrules file just to protect code that was already working — a config file acting as a guard rail against the tool I was relying on to build with. That felt backwards. Eventually the Cursor terminal degraded badly enough that I had to reset it entirely.

"I created a rules file to protect working code from the tool I was using to write it. That's a workaround. It should be a designed behaviour."

The multi-surface problem isn't unique to Claude Code. Any AI-assisted development workflow that spans more than one tool creates integration debt that the user has to carry. Designing for session continuity — keeping context alive across surfaces — is the next frontier for AI developer tools.

Claude Code in Cursor terminal showing .cursorrules file and freezing issues
Chapter 03

Three models, no map

Somewhere mid-build I discovered there wasn't just one Claude — there were three. Haiku, Sonnet, Opus. Each apparently different, each with almost no explanation of what that difference meant in practice for a designer trying to ship a product.

I experimented with all three against real Sous Pantry build tasks. The differences weren't obvious enough to guide my decisions confidently. There was no moment where I thought "this is clearly an Opus problem" or "Haiku is right for this."

The auto-sync receipt feature showed this most clearly. Claude Code in Cursor built it confidently and completely. The build succeeded. It just didn't work in the real world — and the tool didn't tell me why. It built what I asked for without flagging what it couldn't do, or what constraints existed outside the sandbox.

"Cursor's Claude Code built the feature confidently. It just didn't work. Claude Code in the Claude app told me why — and that's the more valuable thing."

Model selection is becoming a core UX problem across the entire AI tools category. As capabilities diverge between models, the design challenge shifts from "how do we explain the difference" to "how do we make the right model invisible — automatically chosen based on what the user is trying to do."

Chapter 04

The moment everything clicked — accidentally

Frustrated, I typed a question directly to the model inside Cursor: "Which one are you — Chat or Code?"

It responded: Code.

That single exchange unlocked something. I'd been managing platforms, not building a product. On a hunch, I opened the Claude app directly and found Claude Code. It asked me which folder to connect to — I didn't understand why at first, but I picked one. Then I asked whether it had access to my working files.

It did. No more Cursor. Less Xcode context-switching. One surface, direct file access, a tool that reasoned with me instead of just executing for me.

The workflow I'd been trying to build across three platforms had been sitting in the Claude app the whole time. I had no way to discover it.

"I asked the AI which one it was. That one question collapsed three months of platform confusion into one clear answer. That moment should have happened in minute one — not month three."

Discovery by accident is a design failure. The most powerful capability in a tool should be the most discoverable one — not something a user stumbles into after months of frustration. Progressive disclosure, not hidden depth, is the pattern AI tooling products need to adopt.

Chapter 05

No fuel gauge — working blind on borrowed time

Every serious build session carried an invisible timer. Claude Code's usage limits reset on a rolling window, but there was no ambient signal — no progress bar, no "you've used 70% of your session" — nothing that let me plan my work around the constraint.

To check where I stood, I had to leave the build environment entirely, open the Claude Console in a separate browser tab, and manually check my usage. Half the time it hadn't updated yet. I'd go back to building, hit a wall mid-task, and only then discover the session had run out.

For a designer building complex features across iOS and Android simultaneously, this isn't just inconvenient — it breaks flow at the worst possible moment. You can't plan a build sprint around a limit you can't see.

"I had to leave my build, open a separate console page, and hope the number had updated. There's no designed feedback loop for something that directly controls how much you can work."

Usage limits are a business reality for AI products. But an invisible constraint is a broken experience. Every AI tool with a usage model needs a designed feedback loop — one that helps users plan their work around the constraint rather than discover it mid-task.

Chapter 06

Fixing errors across four tools — a workflow I built by accident

When something broke in Claude Code inside Cursor, there was no designed path to resolution. The error existed in one place. The fix required four.

My accidental workflow: read the error in Cursor, manually copy it into a bash command in Terminal to inspect the exact line, switch to Claude Chat in a browser tab to get a plain-language explanation of what went wrong, then jump to Xcode to test whether the fix actually held.

Cursor → Terminal → Claude Chat → Xcode. Four context switches for one error. None of these tools knew about each other. None of them shared state. I was the integration layer, manually carrying information between surfaces that should have been connected.

The irony: I was using Claude Chat — a completely separate product — to debug work I was doing in Claude Code. The answer was always in the same model. The experience forced me to bounce between products to access it.

"I was the integration layer between four tools that didn't talk to each other. That's not a workflow — that's a workaround wearing a workflow's clothes."

The error-resolution workflow is where AI tooling products lose their most motivated users. When the fix to a problem requires four context switches, the tool has failed — not the user. AI-native development tools need to own the full error lifecycle — from detection to explanation to resolution — without exporting that burden to the user.

Chapter 07

The non-developer path doesn't exist — so the market built one

When I started, I had something most beginners don't: a design background, some understanding of codebases, and access to ADPList's AI Designer School — one of the few communities specifically teaching designers how to use tools like Claude Code. Without that, I genuinely don't know where I would have started.

That's the gap. There is no designed pathway inside Claude Code for someone who wants to build but doesn't think in terminals. No guided mode. No "start here if you're not an engineer." Nothing that says: here's what's possible for you, here's where to begin, here's what each tool is for.

The market has noticed. Replit, Lovable, Framer, Bolt — these platforms exist precisely because this gap is real. They've built the on-ramp that Claude Code hasn't. I tried Replit to test this firsthand. The experience was more approachable — until the paywalls arrived. Every meaningful action required an upgrade. The accessibility was a funnel, not a philosophy.

Claude Code is more powerful than any of them. But power without a designed entry point for non-engineers means the audience self-selects to people who already know how to start. That's a significant segment left behind.

"Replit, Lovable, Framer exist because Claude Code hasn't designed for the person who wants to build but doesn't speak terminal. That's not a criticism — it's the next design brief."

Every AI coding tool faces the same strategic question: who is this for? The answer shapes everything — onboarding, interaction model, error language, session design. Tools that default to developers will keep developers. Tools that design for the builder who doesn't speak terminal will define the next wave of AI-native creation.

What I'd fix

These aren't feature requests. They're designed experiences that don't exist yet — gaps I identified from the inside, as a user who lived through them.

01
A first-run experience that explains the ecosystem

Claude Chat, Claude Code, Claude Cowork — three tools, one brand, almost no designed explanation of how they relate. A two-minute interactive setup — "What are you trying to build? Here's which tool fits." — would have saved weeks of confusion and three external courses.

02
A visible signal for file access

When Claude Code connected to my project folder it was transformative — but I discovered it by accident. A simple onboarding moment showing what Claude Code can now see would make this the first thing new users experience, not a hidden capability they stumble into.

03
Protected code / working state awareness

Claude Code overwrote working features repeatedly because it had no concept of "this is good, don't touch it." A designed behaviour — flagging before modifying a previously-passing component — would eliminate the most frustrating part of my entire build experience.

04
A model selection guide that actually helps

Haiku, Sonnet, Opus — three models with no designed explanation of when to use which. Even a single decision-tree tooltip with a concrete example per model would eliminate the confusion entirely. Right now users have to experiment their way to an answer Anthropic already knows.

05
Platform onboarding, not just tool onboarding

The confusion wasn't just about how to use Claude Code — it was about which Claude to use. Onboarding that maps the ecosystem, even a single diagram, would reduce the activation energy for the exact users Anthropic needs to reach next: designers, PMs, and technical non-engineers who want to build.

The model is remarkable.
The experience around it is where the next design work lives.

A solo designer can ship a full-stack AI product in 2026. The tools exist. The capability is genuinely world-class.

But the onboarding, the platform clarity, the day-one experience for non-engineers — that gap is real. I lived it. And it's exactly the problem I know how to solve.

Next: completing Sous Pantry and shipping it publicly.

Where Sous Pantry is now

iOS build
Approved for distribution
Android
In progress
AI workflow
Shipped
Receipt sync
Completed
Market
Global
Backend
Express + Anthropic API