May 24, 2026 Tangents

Vibe Coded, Never Finished

May 2026 | Tangents Tangents is engawa’s shorter-form series: one object, one idea, examined closely.

On building something before you know how.

I have a rule when I start a new project: understand what you are trying to make before you decide how to make it.

It sounds obvious. It is not always what happens.

A few years of working inside a Japanese tile manufacturer taught me something about the gap between an object and its explanation. We discuss the firing temperature, the glaze chemistry, and the clay source for the product we offer. While I was working as a brand person, I felt that what we couldn’t articulate was why the finished piece felt the way it did to someone holding it for the first time. That knowledge lived in the object. It rarely survived the translation into language.

I remember that gap several years later when I was thinking and writing about crafts. What would it mean to give an object a voice, not as a label or a description, but as something closer to an interior? What if a lacquerware tradition from Aizu or a washi technique from Echizen could introduce itself, the way the craftsperson might if they were standing in the room?

That was the starting point. Everything else was a question of how.

The Hypothesis

Japan has 249 officially designated traditional crafts, each tied to a region, a material, a lineage. I decided to capture all the information and build a map, not a list. The map would locate them, and adding the voice layer would bring them closer without using shiny words.

The tool hypothesis followed from the vision: RAG and vector search seemed like the right architecture. Semantic retrieval, craft-specific embeddings, and a persistent database that could show the relevant context for any query. I had never built any of this before.

So I built it anyway. A FastAPI backend, a ChromaDB vector database, LangChain orchestration, and a Railway deployment. The kind of stack that looks right when you are reading about AI engineering in 2024. Any developer looking at this would have immediately identified the problem. You’re boiling the ocean to make a cup of tea. A dataset of 249 entries does not need a vector database. It needs a well-structured JSON file and a clear head.

They would not have been wrong. But they would have been looking at what it was, not what it was supposed to become. The 249 entries are just a starting point. What I was actually building toward was something harder to describe: a layer in which the voice of an object carries not just its classification but the accumulated context around it. The craftsperson’s reasoning. The regional history. The particular kind of knowledge that never gets written down because the people who hold it assume it does not need to be. That version does not exist yet. It may take years to build, if it gets built at all.

What the Constraint Revealed

The deployment failed because the container ran out of memory. The Docker image exceeded Railway’s size limits. The whole thing collapsed. In retrospect, it was entirely predictable.

I stripped it back to a simple, viable form. No vector database. No persistent embeddings. A lightweight serverless function, context passed directly to the model at query time. The 249 craft entries are structured and loaded on demand.

The user experience difference was smaller than I expected at this scale. The architectural complexity difference was enormous.

The constraint did not degrade the outcome. It clarified it. When the expensive solution was no longer available, I had to locate the actual bottleneck. And the actual bottleneck was not retrieval. It was the quality of the craft descriptions themselves. The richness of what each object could say. The pipeline I had spent two weeks building was optimizing a layer that was not the limiting factor.

The decision to abandon the original architecture was not difficult once I saw this. The question was never which stack was more sophisticated. It was which approach brought me closer to the thing I was actually trying to make.

What the Object Taught Me

What I learned in building it was not primarily technical. That sounds like humility. It is actually a more specific claim.

When you build something without a technical background, you cannot default to the engineer’s instinct, which is to optimize the impressive-sounding layer. Every decision had to be evaluated against the experience I was trying to create, because that was the only fixed point I had. The question was never which approach was more sophisticated. It was which one brought the object closer to having a real presence for the person on the other side.

There is a version of learning where someone teaches you about someone else’s experience. A tutorial. A lecture. A framework derived from mistakes that were made before you arrived. Useful, sometimes. But there is something it cannot give you: the memory of having been wrong yourself, in a specific way, at a specific moment, with something real at stake.

The deployment failed at two in the morning. I was tired. The architecture was wrong. I rebuilt it without hesitation. What I learned was not the solution. It was the texture of how I found it.

Never Finished

The map that is live today is not what I meant to make. The voice layer works well enough to test the core question. But the deeper version is still ahead. It will probably always be ahead. That is not a failure condition. Completion was never the point.

The urushi lacquer craftspeople I have watched in interviews were not talking only about the dedication needed for finishing. They were talking about continuation. Passing something forward in a time when fewer people are willing to carry it. That is a different category of commitment than anything I brought to this project, and I am not going to pretend otherwise.

But what stayed with me is this: they are not asking whether the work is done. That question does not seem to occur to them. The discipline is in showing up to something you know is larger than you, and moving toward it anyway.

That mentality is probably not unique to Japanese craft. It might just be what craft means, in any tradition, at its most serious, and warm, and genuine.

Which leaves me with a question: what would it mean to bring that orientation, not the skill, not the years, just the refusal to treat completion or the achievement of short-sighted goals as the point, into the way we build things now?

Further Reading & Resources

engawa: In Praise of Friction — On why resistance and constraint produce better outcomes than the frictionless path.

engawa: Who Owns the Curiosity — On what gets lost when we outsource the thinking, not just the output.

engawa: Why the Best AI Models Are Built Like Japanese Ceramics — On what a kiln and a language model have in common: the interesting thing didn’t come from the instructions.

FAQ

What is vibe coding? Vibe coding refers to building software by feel and iteration rather than formal training, typically using AI tools to generate and adjust code in real time. The term captures a mode of development where intuition and experimentation replace architectural planning.

What is Japan’s Craft Map? The Craft Map is an interactive map of Japan’s 249 officially designated traditional crafts, each located by region and given a conversational voice layer powered by an AI model. It was built as a thesis test for whether an object can carry something closer to an interior than a label.

What is RAG in AI development? RAG stands for Retrieval-Augmented Generation. It combines a language model with a search layer that retrieves relevant context from a database before generating a response. For small datasets, simpler context-passing approaches often achieve comparable results with far less infrastructure.

What does “never finished” mean in the context of craft? In Japanese craft traditions, completion is not the goal. The discipline lies in continuing to move toward something, not arriving at it. This piece applies that orientation to software and product development.

Taishi Okano writes about the intersection of technology, craft, and culture from New York and Tokyo. engawa is where he works things out.

Originally published at https://taishiokano.com on May 24, 2026.

The Craft Map is at taishiokano.com/map. The full build log across four sessions, including what failed and why, is here.

Support engawa on Buy Me a Coffee