AI-assisted development · Product workflow

Building AI products with Claude, Codex, and human review.

The useful question is not which coding assistant is best. It is how different tools can support design, engineering, testing, and deployment without taking ownership away from the person building the product.

By Matthew TuccioAugust 202613 min read

My current development workflow did not begin as a planned toolchain. It evolved while I was building real products, encountering changing token limits and pricing, and learning which assistants were most useful for product thinking, interface design, backend work, integrations, and review.

The result is not a process in which one model writes an entire product. Claude, Codex, ChatGPT, GitHub Copilot, VS Code, GitHub, and Figma each occupy different parts of the work. I still decide what should be built, examine the code and commits, test the behavior, and determine whether an output belongs in the product.

Ask Swedenborg began as a two-week project

Ask Swedenborg began as a focused two-week build: a working research application for exploring Swedenborg’s writings while keeping the source material visible. The initial stack was intentionally pragmatic—PHP, HTML, CSS, JavaScript, MariaDB, semantic retrieval, and a controlled theological corpus.

The application did not stay frozen after that first release. It grew into a bilingual research workspace with corpus search, paragraph citations, saved passages, notes, authentication, and an early source-grounded writing workflow. As the scope expanded, the development environment expanded with it.

The product lesson: an AI-assisted prototype can be fast, but every additional workflow introduces real decisions about data, state, privacy, failure conditions, and what the interface should let a person verify.

The toolchain changed with the work

The project was maintained in a GitHub repository from the beginning, giving the work a durable history outside any individual assistant. I initially updated the application in VS Code with Codex support. In a second coding stage, I adopted GitHub Copilot while generous credit and token allocations made that workflow practical. When those conditions changed, I added the Continue extension in VS Code and connected it to models through OpenRouter. That created flexibility, but also introduced another layer of configuration and context management.

When Codex developed its own working interface and GitHub integration, I began using it more directly. The conversation, repository context, file changes, validation, and deployment work could remain part of one continuous product task instead of being split across editor prompts.

Later, limits attached to monthly usage again influenced the balance. I started using Claude more extensively for design exploration and complex backend work. Figma remains useful as a visual canvas, but for my current projects Claude is increasingly the place where interface behavior, user flows, edge cases, and their relationship to the implementation are worked through together.

My current division of work

The present workflow is deliberately mixed. It assigns work according to the kind of reasoning and context required rather than forcing every task through one assistant.

Design is not separate from implementation

AI-assisted design is most useful to me when it goes beyond producing an attractive frame. A research workspace, evidence inspector, payment flow, or legal decision interface has states that a static mockup can hide: empty results, uncertain evidence, authentication boundaries, interrupted requests, mobile navigation, consent, and changes that must persist across sessions.

Using Claude for design and UX integration makes it possible to discuss those states in the same context as the implementation. The design question becomes not only what should this look like?, but also what is the user trying to understand, what data supports it, what can fail, and what must remain visible when it does?

That does not eliminate visual design tools. It changes when I need them. Figma is strongest when a shared canvas, exact composition, or design-system view is the primary artifact. A conversational coding environment is stronger when the interaction and its technical conditions need to evolve together.

Different products require different stacks

The workflow crosses several products, but it does not force them into one technology stack. Each product uses languages and deployment infrastructure that fit its maturity and problem.

This variety matters because “AI product development” is not a programming language or deployment model. AI can assist across discovery, interface work, application code, database integration, testing, documentation, and release operations. The engineering choices still have to fit the product.

Integrations expose the difference between a demo and a product

A generated interface can look complete while avoiding the difficult boundaries around it. Stripe payments require product and price configuration, webhook behavior, test and live modes, and a reliable relationship between billing state and access. Supabase work requires database structure, authentication, policies, and care around which operations a user is allowed to perform.

This is where I use Codex as an implementation partner rather than a code-completion tool. A useful task includes inspecting the existing system, defining the smallest safe change, updating the relevant surfaces, validating the result, and preserving a clear GitHub history. The command-line integration is only one part of the work; the product behavior remains the acceptance criterion.

Agent work can fail after it looks aligned

One of the most expensive failure modes appears before any obvious error. A conversation can feel aligned: the agent restates the goal, produces a credible plan, and begins coding. The implementation can still encode a different assumption, touch more of the system than intended, or build a polished version of the wrong behavior.

The tokens and subscription allocation spent reaching that point cannot be recovered. Neither can the time required to understand the resulting changes. If the implementation is too broad to review safely, continuing to patch it may cost more than returning to a known state and restating the task with tighter boundaries.

This changes how I define agent work. Alignment is not demonstrated by a convincing conversation. It is demonstrated by small, inspectable changes that satisfy explicit acceptance criteria and survive testing.

The cost-control principle: spend context on defining the boundary before spending tokens on implementation. A smaller correct change is less expensive than an impressive change that cannot be trusted.

Testing is where generated confidence meets the product

Testing occupies far more of the workflow than a coding-assistant demonstration suggests. Generated code can be syntactically correct and still fail at a product boundary. The test burden grows with every authentication flow, database rule, webhook, retrieval path, language variant, mobile layout, deployment target, and third-party service.

Testing is also how agent scope is audited. When a previously working behavior changes unexpectedly, the failure is evidence that the task affected more of the system than the plan acknowledged.

Deployment is engineering, not the final upload

The original Digital Democracy deployment made this lesson concrete. Soon after the new server was provisioned and the application deployed, the server was compromised and the hosting account was blocked. The first deployment therefore failed—not because the interface could not render, but because the operating environment was not yet sufficiently protected.

I used an agent to help investigate the incident, identify the likely path of failure, rebuild the deployment approach, configure a firewall, and introduce additional server and access protections. The lesson was not that an agent makes infrastructure secure. It was that deployment needs its own threat model, verification steps, monitoring, and recovery plan.

Production delivery also includes services that disappear from a screenshot. Digital Democracy needs Mailgun for signup and transactional email flows. iApply places Cloudflare in front of the application and combines edge protection with application-level access controls, Supabase policies, secret management, and deliberate deployment checks. These are not decorative integrations; they determine whether a user can safely create an account and whether the system can be operated responsibly.

Digital Democracy is being designed with control patterns associated with SOC 1- and SOC 2-oriented operations, including access boundaries, change traceability, audit records, secrets handling, backups, and incident response.

Human review is the control layer

Using multiple assistants does not distribute accountability to multiple companies. The human operator still has to decide whether a suggestion is correct, whether the scope has drifted, and whether a change should reach production.

What an independent AI workflow actually costs

Ask Swedenborg, iApply, and Digital Democracy are privately funded products built alongside limited available time. The visible AI-tool budget is roughly the cost of monthly Claude and OpenAI subscriptions. Hosting, domains, email delivery, databases, monitoring, and security create a second operating cost. The largest cost, however, is still the time required to inspect, test, correct, deploy, and sometimes recover the work.

Tool access is now part of production planning. On the plans I use, five-hour usage windows can be consumed quickly by sustained design or complex implementation. The useful response is not to rush more work through the remaining allowance. It is to build a setup that can move between tools without losing the product decision, repository state, or quality bar.

This changes how the work is sequenced. Security, testing, deployment, documentation, and recovery compete with visible feature development, even though those less visible tasks often determine whether a product is credible. GitHub issues, commits, and explicit operating rules provide continuity when subscriptions, interfaces, model choices, or limits change.

That continuity is also why the product-owner conversation matters: it keeps the purpose and next decision available while individual coding and design sessions pause, change tools, or move to a different model.

The assistant is part of the team, not the owner

Calling Codex or ChatGPT a product owner is useful shorthand for how I use conversation: maintaining context, turning broad intentions into bounded work, sequencing the backlog, and checking that implementation still matches the goal. It is not a transfer of accountability. I choose the outcomes, provide domain knowledge, resolve tradeoffs, and approve what becomes part of the product.

The same boundary applies to Claude’s role in design and backend work. A strong assistant can reveal options, connect details, and complete substantial implementation. It cannot decide what is responsible to ship without the product context, evidence, and human judgment around that decision.

The operating principle: use AI to expand the amount of work that can be understood and completed, while keeping scope, evidence, review, and release authority human-led.

A practical AI-assisted product loop

The workflow I use now can be summarized as a repeatable loop:

This is less dramatic than asking one model to build an application from a sentence. It is also more useful. The aim is not maximum generated code. It is a working product whose decisions, implementation, and evidence remain understandable.

Explore the products behind the workflow

See the languages, infrastructure, design principles, and current condition of the products discussed here.

View current projects →

More research: Browse all articles and product briefs →