The Smallest Useful Unit of Software Is Changing
Hatched by 石川篤
Aug 03, 2026
9 min read
3 views
84%
When “complex” becomes the wrong unit of design
What if the biggest mistake in software right now is not that we lack intelligence, but that we keep asking intelligence to operate at the wrong scale?
For years, the default dream was the same: build a bigger platform, a smarter framework, a more comprehensive system. If a problem was messy, the answer was usually to wrap it in abstraction. But a different pattern is emerging. The most interesting tools are no longer trying to swallow complexity whole. They are doing something subtler and, in many ways, more radical: they are shrinking the unit of creation until a person and an AI can actually hold it in working memory.
That shift matters. Because once software becomes small enough, a new kind of collaboration becomes possible. Not the fantasy of one prompt producing a finished empire, but the reality of quickly assembling one useful piece, testing it, refining it, and connecting it to other pieces. The question is no longer, “Can AI build an entire app?” The better question is, “What is the smallest thing that can be built well, understood well, and recombined safely?”
That question sounds technical. It is actually philosophical.
The myth of the giant application
Modern software culture has often rewarded bigness. Big codebases, big teams, big roadmaps, big suites of features. Yet the larger a system grows, the more it becomes a coordination problem disguised as engineering. Each new feature adds not only capability, but also coupling, ambiguity, and maintenance cost. Complexity compounds faster than comprehension.
This is why the dream of a fully autonomous AI building complex applications so quickly runs into friction. The issue is not that AI is weak at generating code. It is that software is not just code. It is constraints, context, integration, semantics, tradeoffs, and taste. A model can draft pieces of a system, but a mature application lives inside a web of decisions that only makes sense when broken into manageable parts.
This is where the old Unix instinct suddenly feels new again. Small programs. Clear interfaces. Do one thing well. Connect through simple, composable boundaries. The point was never minimalism for its own sake. It was cognitive tractability. If a system is small enough to understand, it can be changed safely. If it can be changed safely, it can evolve.
The same logic is showing up in modern data tools too. A system like DuckDB becomes powerful not because it tries to replace every database pattern in existence, but because it makes a specific slice of analysis deeply usable inside the place where work already happens. It is feature rich, yes, but more importantly it is close to the problem. It lives in the flow of the client, the notebook, the application, the local environment. In other words, it respects the scale of the task.
That is the hidden pattern: the winning tool is not always the most general one. It is often the one that reduces the distance between intent and execution.
AI does not erase Unix thinking, it rewards it
The seductive idea in AI product design is that natural language makes structure optional. If the model can infer what I mean, why bother with boundaries, modules, or workflows at all?
Because inference is not the same as reliability.
A useful mental model is to think of AI as a very fast junior collaborator with extraordinary breadth and uneven judgment. It is brilliant at suggesting possibilities, but it becomes dramatically more effective when the task has edges. Give it a small, well shaped problem and it can sprint. Give it a sprawling, ambiguous system and it starts to hallucinate structure where none exists. The result can be impressive in the moment and brittle in production.
That is why a “small web app” paradigm is so interesting. It acknowledges a truth that many AI ambitions ignore: the best AI experiences may not be the ones that do everything, but the ones that sharply reduce the surface area of everything they do. A focused tool, a narrow workflow, a clear output format, a constrained environment. These are not limitations to be tolerated. They are the scaffolding that lets intelligence act reliably.
Think of it this way:
- A giant application is like a city. Powerful, but impossible to redesign on a whim.
- A small app is like a workshop. Limited, but immediately usable.
- AI is not the architect of the city. It is the astonishingly fast apprentice in the workshop.
That analogy changes the design problem. Instead of asking AI to become a universal builder, we should ask it to become a force multiplier for modular creation. The value is not in replacing structure. The value is in making structure cheap enough to produce that more people can use it.
This is where no code becomes more than a convenience layer. In its strongest form, no code is not about avoiding software design. It is about compressing the distance between idea and a small, testable artifact. If a person can describe one narrow job, and AI can help assemble that job into a functioning interface with data, logic, and deployment, then the bottleneck shifts. The bottleneck is no longer implementation. It is judgment.
And judgment is the real scarce resource.
The new competitive edge is not scale, it is composability
A subtle but important consequence follows. If AI makes small applications cheap, then the winners will not be the teams that create the largest monoliths fastest. They will be the teams that create the best building blocks and the clearest seams between them.
This is a profound change in software economics. For decades, many companies optimized for accumulation: more features, more users, more surface area. But in an AI assisted world, the premium increasingly goes to recombinability. Can this piece be reused? Can it be understood in isolation? Can it be replaced without breaking the rest? Can it plug into another context with minimal translation?
DuckDB points to this future in the data world. It is not just that it runs queries well. It is that it integrates deeply with client APIs, which means it can be embedded into actual workflows instead of forcing users into a separate shrine of complexity. It lives where the work is. That is composability in practice.
The same logic applies to AI generated apps. A small tool that solves one problem elegantly may seem modest compared to an all in one platform. But if it can be combined with five other small tools, each with a clear responsibility, the total system becomes far more adaptive than a single sprawling product ever could.
The future does not belong to the biggest app. It belongs to the most legible ecosystem.
Legibility matters because AI is excellent at producing variation, but humans still need to govern intent. When interfaces are clear, the human can supervise many small systems. When interfaces are vague, even a powerful model becomes a liability. That is why the strongest AI products may look less like magic wands and more like well organized toolkits.
There is a deeper organizational lesson here too. Teams often equate ambition with breadth. But breadth without modularity creates drag. The better ambition is not to expand the product until it is impressive. It is to shrink each unit until it is high leverage and independently operable. That is how speed compounds without chaos.
A practical framework: build for the smallest closed loop
If this all sounds abstract, here is a useful test.
Before building anything with AI, ask whether you can define a smallest closed loop. A closed loop is a task that starts with a clear input, produces a clear transformation, and ends with a verifiable output. The smaller that loop, the better AI tends to perform, and the easier the result is for humans to trust.
Examples:
- Not “build a business dashboard,” but “turn a CSV of weekly sales into three charts and a summary paragraph.”
- Not “create a full internal platform,” but “let support agents search recent tickets and generate draft replies.”
- Not “make a complete app for event management,” but “collect registrations, confirm attendance, and send reminders.”
Why does this matter? Because a closed loop creates feedback. The model does something. You inspect it. You refine the prompt, schema, or component. The system gets better because it is small enough to learn from. Without the loop, you get wandering complexity and vague disappointment.
Here is the deeper principle: the quality of an AI system is often determined less by model capability than by the quality of the boundaries around the task.
That leads to a design checklist that is surprisingly old fashioned:
- Define one job.
- Define the input format.
- Define the output format.
- Define what “good” looks like.
- Make it easy to run again.
That sounds almost boring. It is not. It is the difference between a dazzling prototype and a durable tool.
The temptation in the age of AI is to treat every successful demo as evidence that systems no longer need discipline. In reality, AI makes discipline more important, not less. The more generative the system, the more essential the constraints. Otherwise you are not building software. You are staging improvisation and hoping it becomes infrastructure.
Key Takeaways
- Prefer small, closed loops over ambitious open ended systems. If you cannot define the input and output clearly, AI will struggle to be reliable.
- Design for composability, not completeness. A set of small tools with clear boundaries is usually more powerful than one giant feature suite.
- Treat constraints as enablers, not limitations. Clear interfaces let AI collaborate effectively with humans.
- Move judgment upstream. If implementation gets cheaper, the real advantage shifts to choosing the right problem and the right shape of solution.
- Build where the work already happens. Deep integration into existing workflows beats forcing users into a separate, heavier environment.
The real revolution is not automation, it is scale reduction
The biggest misconception about AI is that its ultimate destiny is total automation. That is too crude. The more interesting possibility is that AI makes software more humanly inhabitable by reducing the scale at which useful things must be understood.
This is why the convergence of small, embedded systems and AI assisted creation matters so much. It suggests that future software may be built from many narrow, intelligent, interoperable units rather than a few enormous ones. The work will not disappear. It will become more granular, more local, and in many cases more legible.
That is good news. Because the goal was never to create systems no one can understand. The goal is to create systems that can evolve without becoming oppressive. Smallness, in this context, is not a retreat. It is a strategy for preserving agency.
So the next time someone asks whether AI can build something complex, consider answering differently. Ask instead whether the thing has been made small enough to deserve intelligence. That question may decide not just what gets built, but what kind of software civilization we end up living in.
Sources
Hatch New Ideas with Glasp AI 🐣
Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)
Start Hatching 🐣