<?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: zohayr slileh</title>
    <description>The latest articles on DEV Community by zohayr slileh (@zohayr_slileh_6e6ee4a17c8).</description>
    <link>https://dev.to/zohayr_slileh_6e6ee4a17c8</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%2F4111781%2Fca41638b-ca2c-4074-9ada-cf669dfb4e0e.png</url>
      <title>DEV Community: zohayr slileh</title>
      <link>https://dev.to/zohayr_slileh_6e6ee4a17c8</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zohayr_slileh_6e6ee4a17c8"/>
    <language>en</language>
    <item>
      <title>Lumiana — building personal apps with browser and Node.js APIs together</title>
      <dc:creator>zohayr slileh</dc:creator>
      <pubDate>Sun, 06 Sep 2026 02:11:46 +0000</pubDate>
      <link>https://dev.to/zohayr_slileh_6e6ee4a17c8/lumiana-building-personal-apps-with-browser-and-nodejs-apis-together-16eb</link>
      <guid>https://dev.to/zohayr_slileh_6e6ee4a17c8/lumiana-building-personal-apps-with-browser-and-nodejs-apis-together-16eb</guid>
      <description>&lt;p&gt;I've been working on Lumiana because I wanted to write a personal app's UI and logic together, without building a separate API just to connect them.&lt;/p&gt;

&lt;p&gt;It works with Vite. You connect to the Node server with credentials first, then use Node imports alongside your UI code. JavaScript stays in the browser where possible, while operations that need the operating system run on the server.&lt;/p&gt;

&lt;p&gt;After connecting, a small example looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&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;hostname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;platform&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="s1"&gt;node:os&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;textContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`Connected to &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;hostname&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="s2"&gt; on &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nf"&gt;platform&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is to use existing Node libraries as they are, without changing them or writing compatibility code for each package.&lt;/p&gt;

&lt;p&gt;I've had examples running with Express, Hono, Elysia, Sharp, node-pty, and sqlite3, but it's still early. Most libraries I've tried don't work normally yet, so there's a lot left to do.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/zohayrslileh/lumiana" rel="noopener noreferrer"&gt;GitHub project and setup instructions&lt;/a&gt;&lt;/p&gt;

</description>
      <category>showdev</category>
      <category>javascript</category>
      <category>node</category>
      <category>vite</category>
    </item>
  </channel>
</rss>
