<?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>Forem: David Ang</title>
    <description>The latest articles on Forem by David Ang (@papayaahtries).</description>
    <link>https://forem.com/papayaahtries</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%2F3594173%2F093ad950-fb7c-41a7-8a3a-f639f6958653.jpg</url>
      <title>Forem: David Ang</title>
      <link>https://forem.com/papayaahtries</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/papayaahtries"/>
    <language>en</language>
    <item>
      <title>Performance Monitoring with Lighthouse and Kiro.dev</title>
      <dc:creator>David Ang</dc:creator>
      <pubDate>Fri, 05 Dec 2025 16:57:50 +0000</pubDate>
      <link>https://forem.com/papayaahtries/performance-monitoring-with-lighthouse-and-kirodev-j66</link>
      <guid>https://forem.com/papayaahtries/performance-monitoring-with-lighthouse-and-kirodev-j66</guid>
      <description>&lt;p&gt;Let’s make the internet fast for everyone. With AI editors everywhere helping us to write code, it feels like the right time to put a bit more care and that extra effort into how our sites and apps perform.&lt;/p&gt;

&lt;p&gt;I've built PerfMon-a Lighthouse powered tool that provides performance audits on any URL, track your history locally with IndexedDB, and get instant feedback with mobile/desktop emulation. &lt;/p&gt;

&lt;p&gt;When you're like me and don't check every line the AI writes but still want to feel like the architect, you open Kiro.dev, write down what you want, and I let Kiro.dev do it's thing. Created the steering docs after—and that's actually better. The docs reflect what actually works, not what you think might work.&lt;/p&gt;

&lt;p&gt;As Kiroween wrapped up, I had more ideas for features, so I asked Kiro to create the specs—a structured way to document requirements, design, and implementation tasks. Instead of losing track of ideas, I now have them properly written down to come back to later.&lt;/p&gt;

&lt;p&gt;You’d argue that we can use Lighthouse from DevTools, and you’re right. But I get tired of opening it every time when all I want is to click a restart button.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tooling</category>
      <category>lighthouse</category>
      <category>kiro</category>
    </item>
    <item>
      <title>React Media Library – Fast, headless asset picker for your React app</title>
      <dc:creator>David Ang</dc:creator>
      <pubDate>Fri, 05 Dec 2025 03:37:28 +0000</pubDate>
      <link>https://forem.com/papayaahtries/react-media-library-fast-headless-asset-picker-for-your-react-app-c75</link>
      <guid>https://forem.com/papayaahtries/react-media-library-fast-headless-asset-picker-for-your-react-app-c75</guid>
      <description>&lt;p&gt;With AI editors like #kiro, it finally feels realistic to aim for a faster web. I can spend less time wiring boilerplate and more time making sure the UI is light, accessible, and scores well on Lighthouse.&lt;/p&gt;

&lt;p&gt;React Media Library – fast, lightweight, headless library you can drop into any app, with a near-perfect Lighthouse score.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro3j4rs5moccjjzjzvpr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fro3j4rs5moccjjzjzvpr.png" alt=" " width="800" height="943"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;React Media Library will provide you with a focused media flow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Headless provider hooks for assets, selection, and uploads
&lt;/li&gt;
&lt;li&gt;A Tailwind and Mantine presets that works out of the box&lt;/li&gt;
&lt;li&gt;Drag &amp;amp; drop and file input uploads and hooks for dragging or selecting from the media library.&lt;/li&gt;
&lt;li&gt;Simple media viewer to maintain the speed and lightweight of the library&lt;/li&gt;
&lt;li&gt;Swappable icons (Lucide, your own SVGs, or text-only)
&lt;/li&gt;
&lt;li&gt;Basic image editing like cropping, rotation and panning.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Building it with Kiro.dev
&lt;/h2&gt;

&lt;p&gt;Like most of my vibe-coded projects, I’m a visual person, I start by dumping ideas and immediately I want to see them. I opened Kiro and described the idea in plain language: a headless media library that’s rich but lightweight and performance-first.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Used vibe coding to get the first &lt;code&gt;MediaLibraryProvider&lt;/code&gt;, &lt;code&gt;useMediaLibrary&lt;/code&gt; hook, and &lt;code&gt;MediaGrid&lt;/code&gt; wired up.
&lt;/li&gt;
&lt;li&gt;Turned that into steering docs: keep the core headless, avoid heavy dependencies, don’t force any icon library, and respect Lighthouse constraints. That gave me confidence that Kiro understood the architecture I wanted and kept the style consistent across the app.&lt;/li&gt;
&lt;li&gt;Generate specs for current and future features in tiny bits - provider API, grid behavior, upload flow, presets, and reiterate with #kiro.&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.npmjs.com/package/@reactkits.dev/react-media-library" rel="noopener noreferrer"&gt;NPM package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/papayaah/react-media-library" rel="noopener noreferrer"&gt;GitHub repo&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reactkits.dev/react-media-library/" rel="noopener noreferrer"&gt;Live demo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you like what I’m building and want to follow along:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/david-ang-0932bb4a/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/papayaahtries" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.reddit.com/user/Prize-Coyote-6989/" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kiro</category>
      <category>react</category>
      <category>webdev</category>
      <category>socialmedia</category>
    </item>
    <item>
      <title>AppFrames - Creating beautiful store screenshotss</title>
      <dc:creator>David Ang</dc:creator>
      <pubDate>Thu, 04 Dec 2025 17:32:36 +0000</pubDate>
      <link>https://forem.com/papayaahtries/appframes-creating-beautiful-store-screenshotss-1cji</link>
      <guid>https://forem.com/papayaahtries/appframes-creating-beautiful-store-screenshotss-1cji</guid>
      <description>&lt;p&gt;With AI coding assistants everywhere, we're shipping apps faster than ever. But then comes the tedious part - creating those perfect App Store screenshots with device frames, captions, and exact dimensions that Apple and Google demand.&lt;/p&gt;

&lt;p&gt;I got tired of wrestling with Figma templates and Photoshop layers every time I needed to update a screenshot. I built AppFrames - a web tool that just handles it.&lt;/p&gt;

&lt;p&gt;Being a visual person and get satisfaction when I see things - I open #kiro and started building. Got the core working - drag screenshots onto device frames, mix any canvas size with any frame, export at 2x for crisp store submissions. &lt;/p&gt;

&lt;p&gt;With Kiroween coming to a closem, I just had more ideas. Used #kiro specs so I'd remember. Started writing down future features like cross-canvas dragging, device rotation, landing pages. Now those ideas are properly documented and ready to build.&lt;/p&gt;

&lt;p&gt;Offline-first, runs entirely in your browser, and handles all those annoying App Store dimension requirements automatically. Built with Next.js 16, React 19, and Mantine. Stores your data in IndexDB and files in OPFS. &lt;/p&gt;

&lt;p&gt;You could use design tools for this but I just wanted something that's tailored made to create framed screenshots.&lt;/p&gt;

&lt;p&gt;Try it at &lt;a href="//appframes.dev"&gt;https://appframes.dev&lt;/a&gt; &lt;br&gt;
or check out the &lt;a href="https://github.com/papayaah/appframes" rel="noopener noreferrer"&gt;repo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you like what I'm building would you follow me please?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/david-ang-0932bb4a/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;br&gt;
&lt;a href="https://x.com/papayaahtries" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.reddit.com/user/Prize-Coyote-6989/" rel="noopener noreferrer"&gt;Reddit&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>webdev</category>
      <category>wecoded</category>
      <category>react</category>
    </item>
  </channel>
</rss>
