Speed was real because the system was visible
AI helped move the idea from a simple requirement into a working static web app quickly. It generated theme tokens, transliteration helpers, reading layouts and JSON data structures. Because the app is purely client-side, the implementation is open to inspection: the app logic, data shape and rendering decisions are all visible rather than hidden behind a backend.
The hard part was hierarchy
The difficult work was not making code run. It was making the interface and the data model respect the domain. Category headings rendered smaller than their child folders. Simple lists were wrapped inside redundant navigation levels. The application functioned, but the hierarchy told the wrong story.
Script handling is not decoration
A multi-script reader is not a generic text viewer with different fonts. Script choice, transliteration, numerals, line grouping and mobile reading rhythm all affect whether the experience feels usable. One example was numeral handling: script-specific digit conversion looked technically clever, but cross-language consistency called for standard English numerals.
The issues were about use, not console errors
Several problems did not appear as JavaScript failures. Toggle controls looked dated. Long desktop reading flows made navigation feel heavy. Deep navigation nodes did not always collapse in a way that matched how a reader expected to move through the text. The code was alive; the experience was still unfinished.
What the workflow actually required
The useful loop was generate, inspect, challenge and refine. Visual hierarchy had to be judged in the browser, not in the prompt. Data nesting had to be simplified where it made the navigation worse. Mobile screens had to be treated as the primary reading surface, not as an afterthought.
The practical lesson
AI makes syntax generation fast. It does not inherit domain precision, visual taste or the patience of a real reader. In an open static app, value shifts from writing code to editing the experience: correcting hierarchy, removing redundant structure, handling script edge cases and refining the interface until it is clean enough to use.