<?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: GXY Gomi</title>
    <description>The latest articles on DEV Community by GXY Gomi (@gxy_gomi_316f14abb66c18e9).</description>
    <link>https://dev.to/gxy_gomi_316f14abb66c18e9</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%2F3560466%2Fcf8cd97b-6f8e-496c-9467-89f843fe6ec0.jpg</url>
      <title>DEV Community: GXY Gomi</title>
      <link>https://dev.to/gxy_gomi_316f14abb66c18e9</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gxy_gomi_316f14abb66c18e9"/>
    <language>en</language>
    <item>
      <title>Addfox: Build Better Browser Extensions for Developers and AI</title>
      <dc:creator>GXY Gomi</dc:creator>
      <pubDate>Sun, 22 Mar 2026 16:41:41 +0000</pubDate>
      <link>https://dev.to/gxy_gomi_316f14abb66c18e9/addfox-build-better-extensionsfor-developers-and-ai-30cc</link>
      <guid>https://dev.to/gxy_gomi_316f14abb66c18e9/addfox-build-better-extensionsfor-developers-and-ai-30cc</guid>
      <description>&lt;p&gt;🚀 A new open-source browser extension framework just dropped: &lt;strong&gt;Addfox (beta)&lt;/strong&gt;&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%2Fbrey0fnbhow112hddthi.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%2Fbrey0fnbhow112hddthi.png" alt=" " width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://addfox.dev/" rel="noopener noreferrer"&gt;https://addfox.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 github: &lt;a href="https://github.com/addfox/addfox" rel="noopener noreferrer"&gt;https://github.com/addfox/addfox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 npm: &lt;a href="https://www.npmjs.com/package/addfox" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/addfox&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’ve built extensions recently, you’ve probably used tools like WXT or Plasmo.&lt;br&gt;&lt;br&gt;
They’ve pushed the ecosystem forward a lot — better DX, faster builds, less boilerplate.&lt;/p&gt;

&lt;p&gt;But I built something a bit different: &lt;strong&gt;Addfox("Addon + Fox").&lt;/strong&gt; I want to "Build Better Extensionsfor Developers and AI".&lt;/p&gt;

&lt;h1&gt;
  
  
  ⚡ What is Addfox?
&lt;/h1&gt;

&lt;p&gt;Addfox is a browser extension framework built on top of &lt;strong&gt;Rsbuild / Rstack&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;⚡ &lt;strong&gt;Rust-powered build performance&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;More predictable bundling behavior&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Content UI support. Built-in createContentUI method for easy integration of Iframe, ShadowDom, and native content.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Framework agnostic. Vanilla, Vue, React, Preact, Svelte, Solid — use what you like&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Zip on build. Build automatically outputs an extension zip package&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Enable terminal error output with --debug. Capture all extension errors without browser DevTools, so you can Ask AI directly in any editor&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;Skills support for Agents&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧩 &lt;strong&gt;llms.txt and markdown metadata support&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;For more features, please visit the official website&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  📦 Current status
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;Beta released&lt;/li&gt;
&lt;li&gt;Core workflow is stable&lt;/li&gt;
&lt;li&gt;Not supporting Safari right now&lt;/li&gt;
&lt;li&gt;Still iterating based on real-world usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’ve ever felt constrained by existing extension frameworks,&lt;br&gt;&lt;br&gt;
or just want something faster and more transparent, give it a try:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://addfox.dev/" rel="noopener noreferrer"&gt;https://addfox.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Would love to hear how it compares to your current setup.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Supercharge Your Bun Workflow with bun-tasks</title>
      <dc:creator>GXY Gomi</dc:creator>
      <pubDate>Sun, 12 Oct 2025 11:35:30 +0000</pubDate>
      <link>https://dev.to/gxy_gomi_316f14abb66c18e9/supercharge-your-bun-workflow-with-bun-tasks-4lp2</link>
      <guid>https://dev.to/gxy_gomi_316f14abb66c18e9/supercharge-your-bun-workflow-with-bun-tasks-4lp2</guid>
      <description>&lt;h2&gt;
  
  
  Supercharge Your Bun Workflow with &lt;code&gt;bun-tasks&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;If you’ve ever wished Bun had a drop-in parallel runner like &lt;code&gt;concurrently&lt;/code&gt;, meet &lt;a href="https://www.npmjs.com/package/bun-tasks" rel="noopener noreferrer"&gt;&lt;code&gt;bun-tasks&lt;/code&gt;&lt;/a&gt;—a Bun-first CLI that streamlines multi-command orchestration without leaving the Bun ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why &lt;code&gt;bun-tasks&lt;/code&gt;?
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bun-native:&lt;/strong&gt; Designed specifically for the Bun runtime—no Node shims, no compatibility hacks. Just run &lt;code&gt;bun --version&lt;/code&gt; to make sure Bun is ready and you’re good to go.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Simple parallelism:&lt;/strong&gt; Launch any combination of scripts or executables in a single line using the intuitive &lt;code&gt;:::&lt;/code&gt; separator. Quoting, environment variables, and script expansions are handled for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart env handling:&lt;/strong&gt; Apply global flags with &lt;code&gt;--args/-a&lt;/code&gt;, then fine-tune each command with its own variables. Local overrides always win, so tweaking command-specific settings is effortless.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Package-script aware:&lt;/strong&gt; Referencing &lt;code&gt;dev&lt;/code&gt;, &lt;code&gt;serve&lt;/code&gt;, or another package script? &lt;code&gt;bun-tasks&lt;/code&gt; automatically expands it to &lt;code&gt;bun run &amp;lt;script&amp;gt;&lt;/code&gt;, keeping your commands DRY.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe programmatic API:&lt;/strong&gt; Import the exported &lt;code&gt;BunTasksCLI&lt;/code&gt; class for custom orchestration inside your own tools—nothing auto-executes on import.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;Install the CLI (and make sure Bun is installed first):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bun add &lt;span class="nt"&gt;-D&lt;/span&gt; bun-tasks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add a script that fans out to multiple tasks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"dev"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bun-tasks --args NODE_ENV=dev api ::: docs --args PORT=4000"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Define your commands in &lt;code&gt;package.json&lt;/code&gt; or point to executables directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"api"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bun run src/api.ts"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"docs"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"bun run docs:watch"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;bun run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;bun-tasks&lt;/code&gt; merges your environment variables, launches both tasks in parallel, and prefixes their output—so you know exactly which command produced which logs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Advanced Usage
&lt;/h3&gt;

&lt;p&gt;Need fine-grained control? Import the CLI class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;BunTasksCLI&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;bun-tasks&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;cli&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BunTasksCLI&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;cli&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;echo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;hello&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;:::&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;echo&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;world&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;stdoutPrefix&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s2"&gt;`[job-&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;]`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;mirrorStderrToStdout&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Customize prefixes, control stream mirroring, or embed &lt;code&gt;bun-tasks&lt;/code&gt; inside a larger automation script.&lt;/p&gt;

&lt;h3&gt;
  
  
  Built with Trust
&lt;/h3&gt;

&lt;p&gt;The codebase ships with full Bun test coverage (coverage display is fully supported on Linux/WSL; Windows coverage is still maturing). The CLI lives at &lt;code&gt;bin.ts&lt;/code&gt;, and build artifacts are carefully curated—no &lt;code&gt;.d.ts.map&lt;/code&gt; clutter.&lt;/p&gt;

&lt;h3&gt;
  
  
  Acknowledgements
&lt;/h3&gt;

&lt;p&gt;Portions of this project were authored with assistance from GPT-5-Codex.&lt;/p&gt;




&lt;p&gt;Ready to simplify your Bun tooling? Dive into the docs and examples on GitHub:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;npm: &lt;a href="https://www.npmjs.com/package/bun-tasks" rel="noopener noreferrer"&gt;https://www.npmjs.com/package/bun-tasks&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/gxy5202/bun-tasks" rel="noopener noreferrer"&gt;https://github.com/gxy5202/bun-tasks&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Give &lt;code&gt;bun-tasks&lt;/code&gt; a spin and keep your Bun workflow fast, clean, and parallel.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>bunjs</category>
    </item>
  </channel>
</rss>
