How I ship products with Claude Code

How I use Claude Code to ship production apps: tight scope, reviewed slices, and the decisions I keep human.

Claude Code is part of how I build. It is not the product, and it is not a substitute for a decision. I am an AI technical product manager and delivery lead, based in Islamabad and used to UK and EU remote delivery. I have spent more than twenty-five years in telecom, healthcare, retail, analytics, and construction. The habit that still matters is the same one: name the outcome, cut the scope to what a real user will actually do, and ship something you can open in a browser.

This note is the working process. There is no sample prompt and no sample repository here, because a copied prompt is not a delivery method. What follows is how I move from a problem to a live app, and what I refuse to hand to the tool.

Scope before the tool

I write the boundary before I ask an assistant to implement anything. Three questions are enough, and I answer them in plain sentences.

Who is this for, and what are they doing instead today? For TaskCue, the answer was people who needed to share tasks and reminders without adopting a heavy project tool. For Medical Claims, it was families logging medical spend and exporting a claim, not a clinic deploying an EHR. For Circles Finance, it was billing windows, leave, and a budget ledger drifting across spreadsheets.

What is explicitly out? TaskCue is not a programme office. Medical Claims is not Meaningful Use software and not a substitute for a clinical record. Circles Finance is not a general ledger. Writing the "not" down is what stops a GenAI session from inventing a platform I did not ask for.

What does done look like for a first release? A live URL, a login that matches the audience, and one workflow that finishes. TaskCue ships shared calendars and operational workflows, with mobile, email, and Google sign-in. Medical Claims is a PWA with private per-account records and a monthly claim PDF. Circles Finance connects timesheets, invoicing, and the budget ledger so a billing cycle does not depend on someone's personal spreadsheet.

If I cannot say those three things without adjectives, I am not ready to generate code.

One slice, then a review

Once the boundary is written, I work in small slices. A slice is one behaviour a person can finish: create a shared reminder, export this month's claim, record a billing window. I describe that behaviour as acceptance criteria — what goes in, what the person should see, and what must not happen — and I use Claude Code to implement that slice in a stack I have already chosen.

The stacks stay ordinary on purpose. TaskCue is Claude Code with React, Node.js, and MySQL. Circles Finance is Claude Code with React and MySQL. Medical Claims was built with Google AI Studio as a PWA, because the job was mobile capture and a PDF, not a large server surface. I pick the stack for the product, then I keep the session inside it. I do not let a convenient suggestion introduce a second framework in the middle of a slice.

Review is the part I do not delegate. I read the change. I click the path. I check empty states, a failed login, and the boring edges. If a slice adds a feature that was not in the boundary, I take it out, even when the code looks tidy. Speed that widens scope is not speed. I would rather delete a session than merge a confused one.

The same review habit shows up where I was the product owner and builder but the result is a delivery metric, not a demo. On Dental EHR, GenAI-assisted research and development and a tighter product scope reduced QA effort by 35 percent. On BarkCrush, AI-assisted delivery across web and mobile made releases 22 percent faster. I cite those figures as programme results. I do not generalise them into a claim that a model replaced QA, product judgment, or a release owner.

What stays a human decision

Four decisions stay with me.

Priority. If two slices compete, I pick the one that removes the workaround people are using today. TaskCue is optimised for speed of capture and follow-through, not for a catalogue of enterprise project-management features.

Risk. On anything that touches health information or money, I slow the loop. Medical Claims keeps records private to the account. A generated screen is not a privacy design, and I do not treat it as one.

Release. A change I have not clicked through does not get a production URL. The three live tools are TaskCue, Circles Finance, and Medical Claims. They are free. I built them for my own use and to share with anyone who finds them useful. They are not commercial products, and I do not describe them as more than they are.

Fit with the day job. Since January 2026 I have been at Systems Ltd as senior technical project manager and delivery lead for a major telecom client. There I align engineering, QA, business analysis and product, and business stakeholders on scope, risk, and release velocity, and I embed GenAI into how delivery gets done. The personal apps are where I keep the building muscle current. The telecom programme is where the same discipline has to live on a real release train. I do not copy a personal-app workflow into that programme and skip the review gates the programme already has.

How I talk to the tool

Sessions stay narrow. One slice, the files that slice should touch, and the acceptance criteria. When the output drifts, I stop and restate the boundary. I do not negotiate with a long thread.

Prompt craft matters, and it is not mystique. Concrete nouns beat adjectives. "A shared calendar entry visible to the people on this list" is a requirement. "Make it seamless and AI-native" is not. Vague prompts produce vague products. The fix is a clearer sentence, not a longer one, and not a second tool.

What is worth copying

Copy the sequence, not a stack and not a prompt library.

Write the user, the current workaround, and the non-goals. Choose a stack you can operate. For me that is often React, Node.js, and MySQL with Claude Code in the loop, or Google AI Studio when a PWA is the right shape. Implement one slice. Review it yourself. Ship it or delete it. Repeat until the live URL does the job you named before you opened the tool.

The portfolio at samikhanapps.com is that record: live tools first, then the enterprise outcomes behind them. If you are comparing notes on GenAI delivery — especially if you are early in product or business analysis work — I am on LinkedIn.

More

Keep reading

All notes are on the blog index, and the shipped work is on the projects overview.