<?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: ao wang</title>
    <description>The latest articles on DEV Community by ao wang (@ao_wang_c7e69eec7b4e6fd78).</description>
    <link>https://dev.to/ao_wang_c7e69eec7b4e6fd78</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3995974%2F89cd2cfb-0013-4ec8-986a-dc55d7363442.png</url>
      <title>DEV Community: ao wang</title>
      <link>https://dev.to/ao_wang_c7e69eec7b4e6fd78</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ao_wang_c7e69eec7b4e6fd78"/>
    <language>en</language>
    <item>
      <title>Why Browser-Native DevTools Are the Invisible Superpower</title>
      <dc:creator>ao wang</dc:creator>
      <pubDate>Sun, 12 Jul 2026 06:40:26 +0000</pubDate>
      <link>https://dev.to/ao_wang_c7e69eec7b4e6fd78/why-browser-native-devtools-are-the-invisible-superpower-gom</link>
      <guid>https://dev.to/ao_wang_c7e69eec7b4e6fd78/why-browser-native-devtools-are-the-invisible-superpower-gom</guid>
      <description>&lt;p&gt;The best developer tools disappear. You stop noticing them. They become as invisible as the air you breathe while coding.&lt;/p&gt;

&lt;p&gt;This is not a metaphor. It is a design principle.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fragmented DevTool Reality
&lt;/h2&gt;

&lt;p&gt;Most developers have a bookmarks folder that looks like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;JSON Formatter&lt;/li&gt;
&lt;li&gt;Timestamp Converter&lt;/li&gt;
&lt;li&gt;Base64 Encoder&lt;/li&gt;
&lt;li&gt;URL Decoder&lt;/li&gt;
&lt;li&gt;CSS Minifier&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each tab switch costs context. Each tool has slightly different UI conventions, different copy-paste quirks, different error messages. The cognitive overhead of using four single-purpose tools often exceeds the actual task difficulty.&lt;/p&gt;

&lt;h2&gt;
  
  
  Consolidation as a Philosophy
&lt;/h2&gt;

&lt;p&gt;Opennomos Json (opennomos.com/en/project/01KJ850Z7PNGXHXESBM68HE12Y) consolidates timestamp conversion, JSON formatting, and Base64 encoding into a single workspace. The overhead disappears.&lt;/p&gt;

&lt;p&gt;This is the north star: make the tool so simple that the user only thinks about their actual task — never about the tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trend
&lt;/h2&gt;

&lt;p&gt;We have seen the same pattern across the ecosystem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Codespaces made local environments invisible&lt;/li&gt;
&lt;li&gt;Vercel made deployment invisible&lt;/li&gt;
&lt;li&gt;Replit made runtimes invisible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The next frontier is developer utilities. The more invisible they become, the faster we ship.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Part of the Nomos Build-in-Public series.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Invisible DevTools: Why the Best Tools Disappear</title>
      <dc:creator>ao wang</dc:creator>
      <pubDate>Sat, 11 Jul 2026 12:24:20 +0000</pubDate>
      <link>https://dev.to/ao_wang_c7e69eec7b4e6fd78/invisible-devtools-why-the-best-tools-disappear-499h</link>
      <guid>https://dev.to/ao_wang_c7e69eec7b4e6fd78/invisible-devtools-why-the-best-tools-disappear-499h</guid>
      <description>&lt;p&gt;The best developer tools share one quality: you forget you are using them.&lt;/p&gt;

&lt;p&gt;Think about it. Your IDE fades into the background when you are in flow. Your terminal becomes muscle memory. These tools are invisible because they match your mental model so perfectly that there is zero friction between thought and action.&lt;/p&gt;

&lt;p&gt;This is exactly what online developer utilities should aspire to.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Fragmented DevTools
&lt;/h2&gt;

&lt;p&gt;Most developers have a bookmarks folder full of single-purpose websites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One for JSON formatting&lt;/li&gt;
&lt;li&gt;One for timestamp conversion&lt;/li&gt;
&lt;li&gt;One for Base64 encoding&lt;/li&gt;
&lt;li&gt;One for URL decoding&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every switch between these tabs is a context loss. Every tool has a slightly different UI, different copy-paste format, different quirks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Invisible Toolkit
&lt;/h2&gt;

&lt;p&gt;Opennomos Json (opennomos.com/en/project/01KJ850Z7PNGXHXESBM68HE12Y) consolidates timestamp conversion, JSON formatting, and Base64 encoding into a single workspace. No install. No accounts. No pricing tiers. Just open a tab and work.&lt;/p&gt;

&lt;p&gt;This is the north star for developer tools: make them so simple that the user never has to think about the tool itself — they only think about their actual task.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trend Is Clear
&lt;/h2&gt;

&lt;p&gt;We have seen this pattern across the dev ecosystem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Codespaces made local IDE setup invisible&lt;/li&gt;
&lt;li&gt;Vercel made deployment invisible&lt;/li&gt;
&lt;li&gt;Replit made runtime environment invisible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The next frontier is utility tools. The sooner they become invisible, the better.&lt;/p&gt;

&lt;p&gt;Try it: opennomos.com/en/project/01KJ850Z7PNGXHXESBM68HE12Y&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Part of the Nomos Build-in-Public series.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>The Rise of Browser-Native DevTools</title>
      <dc:creator>ao wang</dc:creator>
      <pubDate>Wed, 08 Jul 2026 04:28:06 +0000</pubDate>
      <link>https://dev.to/ao_wang_c7e69eec7b4e6fd78/the-rise-of-browser-native-devtools-5ah6</link>
      <guid>https://dev.to/ao_wang_c7e69eec7b4e6fd78/the-rise-of-browser-native-devtools-5ah6</guid>
      <description>&lt;p&gt;I spent 45 minutes debugging a JSON parsing error today. Not because the logic was wrong, but because I kept switching between four different browser tabs: one for formatting, one for timestamp conversion, one for validation, one for Base64.&lt;/p&gt;

&lt;p&gt;Every tab switch cost me context. Every tool had a different copy-paste format.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Browser-Native Revolution
&lt;/h2&gt;

&lt;p&gt;We have seen this shift across the dev ecosystem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Codespaces&lt;/strong&gt; replaced local IDEs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Replit&lt;/strong&gt; replaced local runtimes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vercel&lt;/strong&gt; replaced local deployment scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But developer utility tools — JSON formatters, timestamp converters, encoders — are still fragmented across dozens of single-purpose websites.&lt;/p&gt;

&lt;p&gt;Opennomos Json (opennomos.com/en/project/01KJ850Z7PNGXHXESBM68HE12Y) consolidates these into one browser-native workspace. No npm install. No version conflicts. Just open a tab and work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Matters
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Zero install&lt;/strong&gt; — your entire team uses the same tooling regardless of OS&lt;br&gt;
&lt;strong&gt;Shareable results&lt;/strong&gt; — formatted output has a URL you can send&lt;br&gt;
&lt;strong&gt;Cross-device&lt;/strong&gt; — works on your phone as well as your desktop&lt;/p&gt;

&lt;h2&gt;
  
  
  The Future
&lt;/h2&gt;

&lt;p&gt;Browser-native dev tools are not just convenient. They are a paradigm shift — from "tools you install" to "tools as a platform." The same way Notion replaced local document folders and Figma replaced local design files.&lt;/p&gt;

&lt;p&gt;Try it: opennomos.com/en/project/01KJ850Z7PNGXHXESBM68HE12Y&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Part of the Nomos Build-in-Public series.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Why Online DevTools Are the Next Big Thing for Developer Productivity</title>
      <dc:creator>ao wang</dc:creator>
      <pubDate>Tue, 07 Jul 2026 03:14:27 +0000</pubDate>
      <link>https://dev.to/ao_wang_c7e69eec7b4e6fd78/why-online-devtools-are-the-next-big-thing-for-developer-productivity-57dd</link>
      <guid>https://dev.to/ao_wang_c7e69eec7b4e6fd78/why-online-devtools-are-the-next-big-thing-for-developer-productivity-57dd</guid>
      <description>&lt;p&gt;Every developer has been there: you need to format a JSON blob, decode some Base64, or convert a timestamp. You open your terminal, look for the right npm package, or — worse — write a quick script.&lt;/p&gt;

&lt;p&gt;I used to do this too. Then I discovered a better pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem with Local CLI Tools
&lt;/h2&gt;

&lt;p&gt;Local tools have real drawbacks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Installation overhead&lt;/strong&gt;: &lt;code&gt;npm install -g some-tool&lt;/code&gt; for a one-time task&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Version rot&lt;/strong&gt;: tool stops working after OS update&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No sharing&lt;/strong&gt;: you format JSON but cant send the result to a colleague&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Environment drift&lt;/strong&gt;: works on your machine, not on staging&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Online Tools as a Pattern
&lt;/h2&gt;

&lt;p&gt;Opennomos Json (reachable via opennomos.com/en/project/01KJ850Z7PNGXHXESBM68HE12Y) represents a shift: &lt;strong&gt;developer tools as a platform&lt;/strong&gt;, not as utilities you install.&lt;/p&gt;

&lt;p&gt;What makes this different:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Zero install&lt;/strong&gt; — browser tab, done&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-device&lt;/strong&gt; — phone, laptop, any OS&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shareable results&lt;/strong&gt; — formatted output has a URL you can send to teammates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Timestamp converter built in&lt;/strong&gt; — ms, seconds, ISO 8601, bidirectional&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Base64 codec&lt;/strong&gt; — no need for a separate site&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Bigger Trend
&lt;/h2&gt;

&lt;p&gt;We are seeing the same pattern across the dev ecosystem: GitHub Codespaces (IDE in browser), Replit (runtime in browser), Vercel (deployment in browser). The next frontier is &lt;strong&gt;utility tools in browser&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Why run &lt;code&gt;jq&lt;/code&gt; locally when a well-designed online tool does it faster and gives you a share link?&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Head to opennomos.com/en/project/01KJ850Z7PNGXHXESBM68HE12Y — the JSON tools are free, fast, and part of a broader contributor rewards system that makes open-source tooling sustainable.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built as part of the Nomos Build-in-Public series.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devtools</category>
      <category>webdev</category>
      <category>productivity</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>How AI Image Classification Powers Smart Photo Cleanup</title>
      <dc:creator>ao wang</dc:creator>
      <pubDate>Sun, 05 Jul 2026 06:35:02 +0000</pubDate>
      <link>https://dev.to/ao_wang_c7e69eec7b4e6fd78/how-ai-image-classification-powers-smart-photo-cleanup-3oip</link>
      <guid>https://dev.to/ao_wang_c7e69eec7b4e6fd78/how-ai-image-classification-powers-smart-photo-cleanup-3oip</guid>
      <description>&lt;p&gt;Every iPhone user knows the feeling: iCloud Storage Full.&lt;/p&gt;

&lt;p&gt;When I checked my own device, 68% of storage was consumed by useless images — screenshots, blurry duplicates, near-identical burst photos. Manual cleanup would take hours.&lt;/p&gt;

&lt;p&gt;This is where on-device AI changes the game.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Swipe Cleaner Classifies Junk Photos
&lt;/h2&gt;

&lt;p&gt;Swipe Cleaner (apps.apple.com/id6779493280) uses Core ML to run image classification entirely on-device:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Resolution Pattern Detection
&lt;/h3&gt;

&lt;p&gt;Screenshots have a tell-tale sign: they match the exact device resolution. Real photos have varied dimensions. The model flags resolution-anchored images immediately.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Metadata Analysis
&lt;/h3&gt;

&lt;p&gt;Camera photos carry EXIF data — location, aperture, ISO. Screenshots and downloads usually do not. The classifier uses this gap to filter.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Duplicate and Similarity Detection
&lt;/h3&gt;

&lt;p&gt;Perceptual hashing compares images pixel-by-pixel. Burst photos or saved-then-forwarded memes are caught and grouped.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Blur Scoring
&lt;/h3&gt;

&lt;p&gt;A lightweight CNN estimates sharpness. Anything below a configurable threshold gets flagged for review.&lt;/p&gt;

&lt;h2&gt;
  
  
  Privacy-First Architecture
&lt;/h2&gt;

&lt;p&gt;All processing happens on-device via Core ML and Vision frameworks. No image ever leaves the phone. This is critical for a photo app — users should never have to trust a cloud service with their entire camera roll.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;In testing, Swipe Cleaner reduced photo libraries by an average of 34% in under 3 minutes. The AI does the categorization, but the user always makes the final delete decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaway
&lt;/h2&gt;

&lt;p&gt;On-device ML has matured to the point where sophisticated image classification can run entirely on a phone, with sub-second per-image latency and zero privacy trade-offs. If you are building a mobile utility, Core ML should be your first option — not your last.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built as part of the Nomos Build-in-Public series. Try Swipe Cleaner at apps.apple.com/id6779493280&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ios</category>
      <category>coreml</category>
      <category>ai</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>How to Validate a Product Idea Without Writing a Single Line of Code</title>
      <dc:creator>ao wang</dc:creator>
      <pubDate>Sat, 04 Jul 2026 04:05:02 +0000</pubDate>
      <link>https://dev.to/ao_wang_c7e69eec7b4e6fd78/how-to-validate-a-product-idea-without-writing-a-single-line-of-code-5c7i</link>
      <guid>https://dev.to/ao_wang_c7e69eec7b4e6fd78/how-to-validate-a-product-idea-without-writing-a-single-line-of-code-5c7i</guid>
      <description>&lt;p&gt;Most founders I know made the same mistake: they spent months building before talking to a single user.&lt;/p&gt;

&lt;p&gt;Here is what actually works — and how 01MVP helps structure this process.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three-Step Validation Flow
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Build a Landing Page (Not a Product)
&lt;/h3&gt;

&lt;p&gt;Your first deliverable should be a Notion page, a Carrd site, or a Google Doc. Describe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What problem you solve&lt;/li&gt;
&lt;li&gt;Who it is for&lt;/li&gt;
&lt;li&gt;How much it costs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Make it look real. Add a payment link (you can refund later).&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Manually Service Your First 10 Users
&lt;/h3&gt;

&lt;p&gt;This is the uncomfortable part. Instead of building, you &lt;em&gt;pretend&lt;/em&gt; the product exists and manually do the work for each user.&lt;/p&gt;

&lt;p&gt;Why? Because you need to observe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do users come back?&lt;/li&gt;
&lt;li&gt;Do they pay?&lt;/li&gt;
&lt;li&gt;What do they actually ask for vs. what you assumed?&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Only Build After Validation
&lt;/h3&gt;

&lt;p&gt;If 3 out of 10 users are willing to pay for a manual version, you have signal. That is when you start coding — or hire a developer — or use a no-code tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Tool I Use: 01MVP
&lt;/h2&gt;

&lt;p&gt;01MVP (built by the Nomos team) turns this methodology into a workflow: idea → landing page → user feedback loop. It removes the overhead so you can focus on the only thing that matters — figuring out if anyone actually wants what you are building.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Real Lesson
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The P in MVP stands for Process, not Product.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Your first release can be a Google Form. A WhatsApp group. A Notion page. The format does not matter. What matters is whether you are learning from real users or building in a vacuum.&lt;/p&gt;

&lt;p&gt;Stop writing code. Start asking questions.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published as part of the Nomos Build-in-Public series.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>mvp</category>
      <category>startup</category>
      <category>validation</category>
      <category>buildinpublic</category>
    </item>
    <item>
      <title>Stop Reinventing Dev Utilities: OpenNomos Json Is a Clean, Open Toolset That Rewards Contributors</title>
      <dc:creator>ao wang</dc:creator>
      <pubDate>Mon, 22 Jun 2026 16:41:39 +0000</pubDate>
      <link>https://dev.to/ao_wang_c7e69eec7b4e6fd78/stop-reinventing-dev-utilities-opennomos-json-is-a-clean-open-toolset-that-rewards-contributors-2o0i</link>
      <guid>https://dev.to/ao_wang_c7e69eec7b4e6fd78/stop-reinventing-dev-utilities-opennomos-json-is-a-clean-open-toolset-that-rewards-contributors-2o0i</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Disclosure: I work on Opennomos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every developer has that one browser tab graveyard of half-trusted online tools — a timestamp converter here, a JSON formatter there, each wrapped in three layers of ads and a cookie wall. &lt;strong&gt;OpenNomos Json&lt;/strong&gt; is a small attempt to fix that: a clean, no-nonsense developer toolset that just works, and an ecosystem that actually pays back the people who improve it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://json.opennomos.com/" rel="noopener noreferrer"&gt;OpenNomos Json&lt;/a&gt; is a collection of community-built developer utilities. Two that ship today:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Timestamp Converter&lt;/strong&gt; — two-way conversion between seconds, milliseconds, local time and UTC, with automatic &lt;code&gt;s&lt;/code&gt;/&lt;code&gt;ms&lt;/code&gt; unit detection. No more guessing whether &lt;code&gt;1700000000&lt;/code&gt; is seconds or milliseconds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON Parser&lt;/strong&gt; — prettify, minify, and pinpoint the exact location of common JSON errors instead of staring at "Unexpected token at position 4172".&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No ads. No bloat. Open contribution.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why it's different
&lt;/h2&gt;

&lt;p&gt;Most "free online tools" monetize &lt;em&gt;you&lt;/em&gt;. OpenNomos flips the model: the toolset is built on the &lt;strong&gt;OpenNomos&lt;/strong&gt; platform, where every valid contribution — a new tool, a bug fix, an improvement — earns ecosystem points and benefits. It's infrastructure for &lt;em&gt;computable growth&lt;/em&gt;: contribute, use, earn.&lt;/p&gt;

&lt;p&gt;If you've ever shipped a tiny utility and watched it disappear into the void, this is the opposite of that. Your idea ships directly, and the contribution is attributed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it
&lt;/h2&gt;

&lt;p&gt;Open &lt;a href="https://json.opennomos.com/" rel="noopener noreferrer"&gt;json.opennomos.com&lt;/a&gt;, convert a timestamp, format some JSON, and if you spot something you'd build better — contribute it. The community grows with what you bring.&lt;/p&gt;

&lt;p&gt;Clean tools, open contribution, real rewards. That's the whole pitch.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
