Building Products and Software with Craft

Building Products and Software with Craft

July 18, 202612 min readBack to home

Building Products and Software with Craft

Introduction

We are living through a turning point in software. With tools like Codex, Claude, and a new generation of AI agents, writing code or building a technical product is no longer the barrier it used to be. One person can now launch, in hours, what used to require a full team and weeks of work.

The direct result is an explosion in the number of software products. Tools and applications are multiplying at a pace the industry has never seen before. But behind that growth sits a paradox worth pausing on: as the number of products increases, the average demand for each individual product falls, while demand rises sharply for products that are built with real craft.

This article is an attempt to understand that paradox. The focus will be on the dimension I believe is both the most neglected and the most influential today: design and user experience.

First: The Abundance Paradox, When Supply Explodes and Demand Concentrates

The economic root of the phenomenon

In economics, there is a familiar principle: when the cost of production approaches zero, the market changes completely. When the marginal cost of producing one more copy of something becomes extremely low, the main barrier to entering the market collapses, and the market is flooded with supply. This is what economists describe as declining marginal cost, and it has now happened almost literally in software after AI agents.

The logical result is not equal prosperity for every product. It is almost the opposite. When everything becomes abundant, quality becomes the scarce thing. This is where we can talk about a redistribution of demand, not simply an increase or decrease in demand.

How demand gets redistributed

Demand does not disappear, and it does not spread evenly across all new products. What happens is more precise:

Generic, fast products, the ones built to fill a temporary gap or ride a current trend, lose demand very quickly. From the user’s perspective, the reason is simple: they can find ten similar alternatives within minutes, so each version becomes replaceable at almost no cost. That replaceability destroys its market value. In some cases, the user may even build their own small product to solve the problem instead of looking for another product.

Well-crafted products move in the opposite direction. Products whose features work together and reinforce one another become more valuable because they are the rare exception inside the noise. Their relative scarcity increases the user’s perception of their value.

The precise conclusion is this: AI agents made it extremely easy to reach a working product, but at the same time they raised the user’s expectations for what deserves to be used, paid for, and kept. The distance between those two levels is exactly what I mean by craft.

Chart: Demand Shift Over Time

Demand shift between well-crafted products and generic products

The chart shows two opposing lines over time. The first line rises and represents the share of demand for well-crafted products, moving from around forty percent to nearly eighty-eight percent. The second line falls and represents demand for generic, fast products, dropping from around fifty-five percent to nearly fifteen percent. The crossover point sits roughly between 2024 and 2025, the moment when AI agents started spreading widely.

The horizontal axis represents time, and the vertical axis represents relative demand. The core message is that simply existing in the market is no longer enough to attract demand. Craft has become the strongest variable explaining how demand is distributed across products.

Methodological note about the chart

The exact percentages in this chart are illustrative. The goal is to show the direction of the phenomenon, not to present a precise measurement. But the direction itself, the shift from competing on speed of production to competing on product quality as the primary differentiator, is supported by real data from several sources:

  • CodeRabbit describes 2025 as the year of speed and expects 2026 to become the year of quality, as engineering leaders shift their metrics from output volume to health, maintainability, and quality as the true competitive differentiator. [4]
  • METR research and the 2025 Stack Overflow survey show a gap between expectations and reality: less than forty-four percent of AI-generated code is accepted as-is, and two-thirds of developers describe its output as close to correct but not quite correct. [1]
  • Precedence Research estimates the custom software market will grow from around 53 billion dollars in 2025 to nearly 334 billion dollars by 2034, with annual growth of about twenty-two percent. That is roughly twice the growth rate of off-the-shelf software, reflecting market preference for differentiated, well-crafted solutions. [2]

Second: What Craft Really Means

Craft is often misunderstood. It is sometimes reduced to having many features or making the interface look beautiful. The truth is much deeper. A well-crafted product is one whose features feel like they were designed together as one system, not pasted next to each other over time. Features are not just buttons that perform isolated actions. They are parts of a coherent system that communicate with one another.

This integration appears across five connected dimensions. A weakness in any one of them threatens the user’s overall impression of the product:

The first is user experience design, which is the center of this article and will get its own section.

The second is system performance: speed, responsiveness, and stability under pressure. Users rarely give a product a second chance after noticeable slowness, and AI agents often write code that is functionally correct but not optimized for performance unless they are guided very carefully.

The third is external integrations. Modern products do not live in isolation. Their ability to work smoothly with authentication, payments, storage, notifications, and other tools is what makes them part of the user’s workflow rather than a separate island.

The fourth is security and data protection. It is the most dangerous dimension and often the least visible one. A single vulnerability can destroy trust in a moment. This is one of the areas most often neglected by blind reliance on agents, because agents tend to achieve the function before securing it.

The fifth is overall coherence: the way all previous dimensions come together into one consistent product. This kind of coherence cannot be generated by an agent alone. It comes from a human view of the product as a whole, not from treating every part separately.

Third: Design and User Experience, the Heart of Craft

This is the core of the article. Among all the dimensions, design and user experience remain the most resistant to automation and the clearest signal of the difference between a product built carefully and a product generated without enough supervision. Let’s break it into layers.

Layer one: cognitive load

In cognitive psychology, there is an important concept called cognitive load. It refers to the amount of mental effort a user spends to complete a task. Good design systematically reduces this load, so the user’s attention is not wasted on understanding the interface and can instead stay focused on the goal.

Interfaces generated without design awareness often increase cognitive load unintentionally: too many crowded choices, unclear labels, and unexpected paths. The user feels tired before achieving what they came for, then leaves. A well-crafted product gently guides the user’s attention toward the next needed action, so the path feels obvious before it is explained.

Layer two: discoverability and affordances

There is a deep design principle called affordance. It means that the form of an element suggests its function without needing instructions. A button looks pressable. A field looks writable. A draggable element suggests that it can be dragged. When the affordance matches the user’s mental expectation, learning becomes immediate and almost unconscious.

Broken products often violate this principle. Some elements look interactive but are static. Others are interactive but do not look like it. The user gets trapped between what they think is possible and what is actually possible. This mismatch between appearance and function is one of the clearest symptoms of missing design thinking.

Layer three: consistency and mental models

Users build an internal model of how a product works. This is called a mental model. The more consistent the product is, the faster this model forms, and the more the user feels in control. Consistency means the same element behaves the same way everywhere, the visual language is unified, and reactions are predictable.

One of the most common problems in AI-generated products is internal contradiction. A button behaves one way here and another way somewhere else. A term changes meaning from one screen to another. Visual patterns conflict inside the same product. This contradiction keeps breaking the user’s mental model and leaves them in an exhausting state of uncertainty.

Layer four: information architecture

Before any pixel is drawn, there is a deeper question: how should content and functionality be organized, grouped, and prioritized? This is information architecture. A good structure lets users know where to find what they need without thinking, because the categorization matches their natural expectations.

An agent can draw a decent single screen, but it often struggles to design the larger structure that connects dozens of screens into one coherent logic. That is why we see products that look good at the screen level and feel confusing at the journey level.

Layer five: edge cases

Good design is not measured in the ideal path. It is measured in edge cases. What happens when a field is empty, when the network drops, when the user enters unexpected data, or when a list becomes longer than expected? These moments separate a product designed with care from a product generated in a hurry.

The empty state is a perfect example. A strong designer turns an empty screen into an opportunity to guide and motivate the user. A generated interface often leaves it as a frustrating blank space or breaks completely. Error messages are another example. There is a huge difference between a message that explains what happened and what the user can do next, and a dry technical message that increases confusion.

Why this layer specifically resists automation

User experience is, at its core, an act of empathy. The designer imagines being a person who does not know the product, anticipates confusion, hesitation, and mistakes, then designs for that person instead of designing only for the ideal case. This human empathy, combined with taste built through experience, is what an agent cannot generate on its own. The agent knows common patterns, but it does not have intuition for how a user feels in a specific moment in front of a specific screen.

Fourth: The Visible Chaos, Products Exposed by the Way They Were Built

What stands out today is not only the number of products, but a specific type of product that is easy to recognize. These are products that you can tell, from the outside, were built with an AI agent in the worst possible way.

You recognize them through visible signs: repeated components with no soul, default templates with no customization that reflects the product’s identity, surface-level consistency that suggests quality at first glance, and a generic visual language that belongs to nothing in particular.

Then comes the decisive moment. When you actually try the product, you run into a surprising number of problems: inactive buttons, states that were never considered, raw error messages that reveal the code behind them, and flows that collapse at the first realistic use case outside the ideal path. The product looks ready from the outside, but it has not gone through the testing that any carefully built product would go through.

This gap between a polished exterior and a fractured inner experience is the defining mark of products generated without enough human supervision. The paradox is that the exterior is the easiest part for an agent to generate, while the real experience is the hardest part to craft. That is where the danger sits.

Visual Examples

A comparison between a generated dark interface and a more mature product interface

In the dark example, you can almost tell from the first look that the interface came from a single prompt more than from a deep understanding of the product. It has surface polish, but the details do not carry a clear identity or coherent design logic. Compared with a more mature interface, the difference appears between an image that looks good in one screenshot and an experience built around real use.

Cofounder as an example of design that starts from the product itself

The important point is that product design should start from the nature of the features themselves, not from copying a global design style and then forcing your features to fit inside it. A product like Cofounder shows this idea clearly: the interface is not just a beautiful template, but an attempt to translate the product’s nature, roles, and flows into a visual structure that serves the core idea.

Mudeer as an example of an Arabic product with a strong first impression

One Arabic product I liked in this context is Mudeer. From the first impression, you feel that the product is not trying to be a local copy of global tools. It is trying to compete with them through clear care in organization, language, and visual detail. This is exactly what we need to see more often in Arabic products.

Fifth: AI Is an Accelerator, Not a Replacement

It is only fair to acknowledge the huge value of these tools without exaggerating or dismissing them. I believe AI agents have already accelerated product development by more than eighty-five percent. What used to take weeks can now be done in hours, and that is a real gain that changes the economics of building products from the ground up.

But there is a fundamental difference between speed and full reliance. At this moment, we still cannot fully depend on agents across the four dimensions mentioned earlier. The following table shows the limits of that reliance:

DimensionWhat the agent does wellWhere deep human supervision is needed
User experienceGenerating fast, reasonable initial interfacesLogic, flow, empathy with the user, and handling edge cases
System performanceFunctionally correct codeOptimization under real load and high pressure
External integrationBasic connection with common toolsHandling rare failures and exceptions
Security and data protectionApplying common security patternsFinding deeper vulnerabilities and protecting sensitive data

The conclusion is that the agent builds the structure with incredible speed, and the human gives it the craft that makes the difference. Whoever believes the agent removes the need for human supervision produces exactly the fractured products described in the previous section.

Sixth: The Real Concern, Arabic Products

The reason I am writing this article is not purely technical. I worry that Arabic products may fall behind in craft even more than they fall behind technically.

The difference between the two kinds of decline is subtle but important. Technical decline can be fixed relatively easily. The tools are available to everyone, code has become accessible to almost anyone, and the technical gap is shrinking. But decline in craft is more dangerous, because it is about culture, taste, and patience with small details. These are qualities an agent does not generate and cannot be bought ready-made.

When launching a product becomes this easy, the strongest temptation is to stop at the first working version and publish it immediately. If this mindset becomes common in the Arabic market, we will drown in a huge number of weak products, while demand, as the chart at the beginning shows, moves toward the small number of well-crafted products. We will likely not be among them unless we correct the path early.

The danger, then, is cultural before it is technical. The issue is not whether we can build. That is now available to everyone. The issue is whether we insist on craft at a time when everything encourages us to settle for the minimum.

Conclusion: Craft Is the New Competitive Advantage

In a world where everyone can build almost anything at record speed, building itself is no longer the challenge. The new challenge is craft, especially craft in design and user experience, the dimension most resistant to automation and the one that reveals the difference most clearly.

The tool in our hands is stronger than ever. The question is no longer whether we can build. The question is whether we have enough taste, patience, and empathy to build with craft.


Sources

[1] Analysis of the 2025 Stack Overflow Developer Survey, GitHub Octoverse, and METR research on the productivity gap and acceptance rates for AI-generated code. USM Systems, March 2026. https://usmsystems.com/ai-in-software-development-statistics/

[2] Precedence Research, custom software development market estimates from 2025 to 2034. https://www.precedenceresearch.com/custom-software-development-market

[3] Modall, AI in software development trends and statistics 2026, covering growth in multi-agent systems and agentic software session length. https://modall.ca/blog/ai-in-software-development-trends-statistics

[4] CodeRabbit, 2025 was the year of AI speed and 2026 will be the year of AI quality, on quality becoming the competitive differentiator. December 2025. https://www.coderabbit.ai/blog/2025-was-the-year-of-ai-speed-2026-will-be-the-year-of-ai-quality

[5] Qodo, State of AI Code Quality 2025, on the trust gap and the need for continuous review and testing. https://www.qodo.ai/reports/state-of-ai-code-quality/

Read more articles

Back to home