<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: hoosber neo</title>
    <description>The latest articles on DEV Community by hoosber neo (@hoosber_neo_a01c7e4da0e7c).</description>
    <link>https://dev.to/hoosber_neo_a01c7e4da0e7c</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3886338%2F16f57160-fbb6-42ce-91c4-b0f2bebb4511.png</url>
      <title>DEV Community: hoosber neo</title>
      <link>https://dev.to/hoosber_neo_a01c7e4da0e7c</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hoosber_neo_a01c7e4da0e7c"/>
    <language>en</language>
    <item>
      <title>Shipped my first iOS app entirely with Codex — what worked, what surprised me</title>
      <dc:creator>hoosber neo</dc:creator>
      <pubDate>Wed, 06 May 2026 19:52:41 +0000</pubDate>
      <link>https://dev.to/hoosber_neo_a01c7e4da0e7c/shipped-my-first-ios-app-entiiosiosrely-with-codex-what-worked-what-surprised-me-53il</link>
      <guid>https://dev.to/hoosber_neo_a01c7e4da0e7c/shipped-my-first-ios-app-entiiosiosrely-with-codex-what-worked-what-surprised-me-53il</guid>
      <description>&lt;p&gt;Just shipped Rushi — my first iOS app, built solo with Codex over the past 4 months. Wanted to share what I learned, especially for anyone considering Codex as their primary coding partner for an iOS project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;I'd never written Swift before. Started with Codex as my pair-programmer, learning Swift by doing as I built. The app is a Buddhist toolkit — sutra reader + 108-bead mala counter + sutra calligraphy practice. Free for the first week, then $1.99 — early users keep it free forever via App Store purchase history.&lt;/p&gt;

&lt;h2&gt;
  
  
  What worked surprisingly well with Codex
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SwiftUI scaffolding from natural-language descriptions&lt;/strong&gt; — first iteration was usable; ~80% of layouts hit on first generation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Localizing 17 languages&lt;/strong&gt; — Codex generated all the .strings files from English seeds with cultural awareness (e.g. it correctly chose Vietnamese honorifics for Buddhist terms; same for Tibetan transliteration)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SwiftData migration code&lt;/strong&gt; when I changed schemas mid-project&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CoreText fallback chain for CJK fonts&lt;/strong&gt; — UIFont in iOS 17 has bugs with Chinese serif fonts, and Codex correctly recommended bypassing it with CTFontDescriptor explicit fallback&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple Search Ads keyword research&lt;/strong&gt; — Codex generated competitive keyword lists that matched what ASA actually showed as high-volume&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where I had to take over
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Apple-specific UX nuances&lt;/strong&gt; (haptic timing, large title behavior, dynamic type quirks) — needed multiple rounds with screenshots&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio concurrency&lt;/strong&gt; — Codex tended to over-engineer with actors when AVAudioPlayer would do&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App Store metadata&lt;/strong&gt; (privacy labels, age rating) — Codex would sometimes suggest things that didn't match actual data flow ("data collection: false" while suggesting analytics SDK in another file)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Codex-specific tips for iOS solo devs
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Show Codex the entire SwiftUI view file when iterating&lt;/strong&gt; — partial context leads to half-broken layouts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;When testing, paste the exact Xcode error text including line numbers&lt;/strong&gt; — Codex maps stack traces well&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;For App Store review, ask Codex to write your privacy label statements based on your actual data flow, not your intent&lt;/strong&gt; — it catches "I think we don't collect X" mistakes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't let Codex pick your dependency list&lt;/strong&gt; — it prefers "popular" libraries over "minimal" ones; for a solo iOS app you want the latter&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Outcome
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Apple review: 2 days, no rejections&lt;/li&gt;
&lt;li&gt;17 UI languages, 9 full-text languages&lt;/li&gt;
&lt;li&gt;0 crashes in TestFlight beta&lt;/li&gt;
&lt;li&gt;Open-sourced everything: sutra texts CC0 1.0, app source on GitHub&lt;/li&gt;
&lt;li&gt;Codex token usage during development: ~50M input tokens, ~3M output tokens&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Repo (with the open-source sutra texts): &lt;a href="https://github.com/hooosberg/Rushi" rel="noopener noreferrer"&gt;github.com/hooosberg/Rushi&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vibe coding made me anxious; building this calmed me down. Happy to answer specific Codex/SwiftUI/CoreText questions in the comments.&lt;/p&gt;

</description>
      <category>swift</category>
      <category>ios</category>
      <category>ai</category>
    </item>
    <item>
      <title>DOMPrompter: The hardest part of AI UI coding is pointing at the right element</title>
      <dc:creator>hoosber neo</dc:creator>
      <pubDate>Sat, 18 Apr 2026 17:26:00 +0000</pubDate>
      <link>https://dev.to/hoosber_neo_a01c7e4da0e7c/domprompter-the-hardest-part-of-ai-ui-coding-is-pointing-at-the-right-element-1k7g</link>
      <guid>https://dev.to/hoosber_neo_a01c7e4da0e7c/domprompter-the-hardest-part-of-ai-ui-coding-is-pointing-at-the-right-element-1k7g</guid>
      <description>&lt;p&gt;When people talk about AI coding, they usually talk about generating whole components, pages, or features.&lt;/p&gt;

&lt;p&gt;But in real front-end work, the painful part is often much smaller.&lt;/p&gt;

&lt;p&gt;It is the last 10%:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;move this button a little to the right&lt;/li&gt;
&lt;li&gt;increase the gap between these two cards&lt;/li&gt;
&lt;li&gt;make this tag less cramped&lt;/li&gt;
&lt;li&gt;tighten the spacing between a heading and the supporting copy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That sounds simple, but the communication overhead is brutal. You know what you want to change. The AI does not know exactly which element you mean, what context matters, or what "a little" means in this layout.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why screenshots and vague prompts still fail
&lt;/h2&gt;

&lt;p&gt;Screenshots help, but they are still missing structure.&lt;/p&gt;

&lt;p&gt;A screenshot does not tell the model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;which DOM node you are referring to&lt;/li&gt;
&lt;li&gt;what the surrounding hierarchy looks like&lt;/li&gt;
&lt;li&gt;whether the spacing problem is margin, padding, gap, or alignment&lt;/li&gt;
&lt;li&gt;how the target element relates to its siblings and container&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Natural language alone is even worse.&lt;/p&gt;

&lt;p&gt;"Move the tag down a bit" quickly turns into a guessing game. And once the AI guesses wrong, you burn both time and tokens correcting the correction.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part I wanted to improve
&lt;/h2&gt;

&lt;p&gt;So I built &lt;strong&gt;DOMPrompter&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It is a macOS tool specifically for interface micro-tuning in DOM-based UIs.&lt;/p&gt;

&lt;p&gt;Instead of trying to describe the target from memory, I can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;click the exact element I want to change&lt;/li&gt;
&lt;li&gt;inspect the DOM context around it&lt;/li&gt;
&lt;li&gt;see the tag, spacing, position, and hierarchy information that actually matters&lt;/li&gt;
&lt;li&gt;write the specific change I want&lt;/li&gt;
&lt;li&gt;generate a more structured prompt for Cursor, Claude Code, Copilot, or any other AI coding tool&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That shift matters because the workflow stops being "describe and hope" and becomes much closer to "point, explain, generate."&lt;/p&gt;

&lt;h2&gt;
  
  
  Not just for browser pages
&lt;/h2&gt;

&lt;p&gt;One thing I wanted to get right is that this workflow should not be limited to a normal website.&lt;/p&gt;

&lt;p&gt;If the interface is DOM-based, the same micro-tuning problem shows up in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;localhost front-end projects&lt;/li&gt;
&lt;li&gt;static HTML prototypes&lt;/li&gt;
&lt;li&gt;desktop apps built with web technology&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the product is a macOS app, but the adjustment workflow is useful anywhere the UI itself is DOM-driven.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I still think this is worth building
&lt;/h2&gt;

&lt;p&gt;This week I noticed that tools like Codex and Claude Code are also adding pieces of this experience.&lt;/p&gt;

&lt;p&gt;That makes sense. The problem is real.&lt;/p&gt;

&lt;p&gt;But my own feeling is that UI micro-adjustments still deserve a more complete workflow than "the model kind of knows what you clicked."&lt;/p&gt;

&lt;p&gt;What helps in practice is not just selecting an element. It is carrying over the context around that element:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;tags&lt;/li&gt;
&lt;li&gt;gap&lt;/li&gt;
&lt;li&gt;spacing&lt;/li&gt;
&lt;li&gt;position&lt;/li&gt;
&lt;li&gt;hierarchy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Then turning that into a prompt that is tailored to the exact edit you want.&lt;/p&gt;

&lt;p&gt;That is the core idea behind DOMPrompter.&lt;/p&gt;

&lt;h2&gt;
  
  
  The principle
&lt;/h2&gt;

&lt;p&gt;The principle I keep coming back to is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;click the element, stop guessing&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If AI is going to be part of front-end iteration, the handoff between "what I see" and "what the model edits" has to get more precise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/hooosberg/DOMPrompter" rel="noopener noreferrer"&gt;https://github.com/hooosberg/DOMPrompter&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Mac App Store: &lt;a href="https://apps.apple.com/us/app/domprompter-ai-coding-prompt/id6761685716?mt=12" rel="noopener noreferrer"&gt;https://apps.apple.com/us/app/domprompter-ai-coding-prompt/id6761685716?mt=12&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use AI for front-end work, I would genuinely love to know: how are you handling the last-mile UI tweaks today?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>frontend</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
