<?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: Michael Niño</title>
    <description>The latest articles on DEV Community by Michael Niño (@softwareishappiness).</description>
    <link>https://dev.to/softwareishappiness</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%2F4026382%2Fae98670b-d084-473e-9fde-69d99fdeb9f9.jpg</url>
      <title>DEV Community: Michael Niño</title>
      <link>https://dev.to/softwareishappiness</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/softwareishappiness"/>
    <language>en</language>
    <item>
      <title>Alchemy: GJS UI Framwork</title>
      <dc:creator>Michael Niño</dc:creator>
      <pubDate>Sat, 01 Aug 2026 02:25:49 +0000</pubDate>
      <link>https://dev.to/softwareishappiness/alchemy-gjs-ui-framwork-4j25</link>
      <guid>https://dev.to/softwareishappiness/alchemy-gjs-ui-framwork-4j25</guid>
      <description>&lt;h2&gt;
  
  
  Gnome Application Framework
&lt;/h2&gt;

&lt;p&gt;I just added to Alchemy (GJS UI Framework) inspired by Quasar Framework and VueJS:&lt;/p&gt;

&lt;p&gt;QWebView (Native WebKit 6.0 integration with reactive URL/HTML bindings)&lt;/p&gt;

&lt;p&gt;QAudioPlayer (Extensible, HTML5-like audio player powered by GStreamer for advanced multimedia and WebRTC integration)&lt;/p&gt;

&lt;p&gt;QTable (Reactive Data Grids with built-in global filtering, sorting, and Intl native cell formatters)&lt;/p&gt;

&lt;p&gt;QCodeViewer (Native syntax highlighting powered by GtkSourceView 5 for HTML, Python, Rust, Go, Markdown, and more)&lt;/p&gt;

&lt;p&gt;QDragSource / QDropTarget (Universal Behavioral Controllers that effortlessly add native GTK4 drag-and-drop to any widget)&lt;/p&gt;

&lt;p&gt;QVideoPlayer (Dual-engine video player supporting GTK4's native multimedia backend or HTML5 WebKit for complex streaming protocols)&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/MichaelNino" rel="noopener noreferrer"&gt;
        MichaelNino
      &lt;/a&gt; / &lt;a href="https://github.com/MichaelNino/Alchemy" rel="noopener noreferrer"&gt;
        Alchemy
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Alchemy UI Component Framework
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Alchemy Framework ⚗️&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Alchemy Framework is a lightweight, highly-reactive UI component library for &lt;strong&gt;GNOME/GJS&lt;/strong&gt;, heavily inspired by the beloved &lt;a href="https://quasar.dev/" rel="nofollow noopener noreferrer"&gt;Quasar Framework&lt;/a&gt; (VueJS).&lt;/p&gt;
&lt;p&gt;Alchemy bridges the gap between modern web development ergonomics and native Linux desktop application development. It allows you to build GNOME applications using a familiar, Vue-like composition API, while rendering 100% native GTK4 widgets.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Methodology&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. The Reactivity Engine&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;At the core of Alchemy is a lightweight, dependency-tracking reactivity engine modeled after Vue 3.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;ref&lt;/code&gt;&lt;/strong&gt;: Creates a reactive reference to primitive values (or objects).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;computed&lt;/code&gt;&lt;/strong&gt;: Creates derived reactive state that automatically re-evaluates when its dependencies change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;effect&lt;/code&gt;&lt;/strong&gt;: Tracks dependencies and automatically executes a callback whenever bound &lt;code&gt;ref&lt;/code&gt; values update.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;2. Native GTK4 Abstractions&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;Alchemy does &lt;strong&gt;not&lt;/strong&gt; use a webview or render custom DOM nodes. Instead, every Alchemy component (like &lt;code&gt;QBtn&lt;/code&gt; or &lt;code&gt;QInput&lt;/code&gt;) is a thin, reactive wrapper around a native &lt;code&gt;Gtk4&lt;/code&gt; widget.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;State…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/MichaelNino/Alchemy" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


</description>
      <category>javascript</category>
      <category>opensource</category>
      <category>programming</category>
      <category>software</category>
    </item>
    <item>
      <title>Alchemy GJS</title>
      <dc:creator>Michael Niño</dc:creator>
      <pubDate>Fri, 31 Jul 2026 03:25:38 +0000</pubDate>
      <link>https://dev.to/softwareishappiness/alchemy-gjs-40dg</link>
      <guid>https://dev.to/softwareishappiness/alchemy-gjs-40dg</guid>
      <description></description>
    </item>
    <item>
      <title>Just released my new open source project, Alchemy-- a user interface component library for creating Linux applications for the Gnome desktop.

https://github.com/MichaelNino/Alchemy</title>
      <dc:creator>Michael Niño</dc:creator>
      <pubDate>Thu, 30 Jul 2026 03:01:07 +0000</pubDate>
      <link>https://dev.to/softwareishappiness/just-released-my-new-open-source-project-alchemy-a-user-interface-component-library-for-creating-24bl</link>
      <guid>https://dev.to/softwareishappiness/just-released-my-new-open-source-project-alchemy-a-user-interface-component-library-for-creating-24bl</guid>
      <description>&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://github.com/MichaelNino/Alchemy" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fopengraph.githubassets.com%2Fe5f508a344ab55c0f0537b130e062dfdbd00b7a186e23a930dea09c37db70b00%2FMichaelNino%2FAlchemy" height="600" class="m-0" width="1200"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://github.com/MichaelNino/Alchemy" rel="noopener noreferrer" class="c-link"&gt;
            GitHub - MichaelNino/Alchemy: Alchemy UI Component Framework · GitHub
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            Alchemy UI Component Framework. Contribute to MichaelNino/Alchemy development by creating an account on GitHub.
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.githubassets.com%2Ffavicons%2Ffavicon.svg" width="32" height="32"&gt;
          github.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
      <category>linux</category>
      <category>opensource</category>
      <category>showdev</category>
      <category>ui</category>
    </item>
    <item>
      <title>Gnome GJS - ActiveRecord ORM</title>
      <dc:creator>Michael Niño</dc:creator>
      <pubDate>Sun, 12 Jul 2026 19:40:03 +0000</pubDate>
      <link>https://dev.to/softwareishappiness/gnome-gjs-activerecord-orm-234e</link>
      <guid>https://dev.to/softwareishappiness/gnome-gjs-activerecord-orm-234e</guid>
      <description>&lt;p&gt;A lightweight, asynchronous ActiveRecord ORM designed for GJS (GNOME JavaScript) applications. Built natively on top of libgda (GNOME Data Access).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Native GJS Integration: Uses standard GObject Introspection (imports.gi.Gda).&lt;/li&gt;
&lt;li&gt;Asynchronous API: All database operations return Promises to prevent blocking the UI thread.&lt;/li&gt;
&lt;li&gt;Vendoring Ready: Distributed as standard ES Modules. Just drop the folder into your project's source.&lt;/li&gt;
&lt;li&gt;Multiple Adapters: Designed to be extensible. Currently supports PostgreSQL out-of-the-box.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I needed it and there wasn't one-- so I created it ;-) Maybe you need it too! :-D&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MichaelNino/gjs-activerecord" rel="noopener noreferrer"&gt;https://github.com/MichaelNino/gjs-activerecord&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gnome</category>
      <category>gjs</category>
      <category>database</category>
      <category>orm</category>
    </item>
  </channel>
</rss>
