<?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: Vlad B.</title>
    <description>The latest articles on DEV Community by Vlad B. (@vladbevs).</description>
    <link>https://dev.to/vladbevs</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%2F4096564%2F64ae40ff-fc81-4faf-b531-ce6fb7355def.png</url>
      <title>DEV Community: Vlad B.</title>
      <link>https://dev.to/vladbevs</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vladbevs"/>
    <language>en</language>
    <item>
      <title>This week at Romi #3 - Building Multi-Platform App Connectivity</title>
      <dc:creator>Vlad B.</dc:creator>
      <pubDate>Sun, 27 Sep 2026 01:34:13 +0000</pubDate>
      <link>https://dev.to/romiadhd/this-week-at-romi-3-building-multi-platform-app-connectivity-1hpg</link>
      <guid>https://dev.to/romiadhd/this-week-at-romi-3-building-multi-platform-app-connectivity-1hpg</guid>
      <description>&lt;p&gt;When we first launched our app, simplicity was our guiding light. We started with the absolute basics, built our core features, and steadily grew our user base. But as any developer scaling an application knows, user growth brings new expectations and friction points. &lt;/p&gt;

&lt;p&gt;If users encounter friction during authentication or onboarding, they drop off. Over the past couple of years, our approach to app connectivity and authentication evolved significantly to meet our users where they are. &lt;/p&gt;

&lt;p&gt;Here is a look back at our journey of adding sign up and calendar connection methods step by step.&lt;/p&gt;




&lt;h3&gt;
  
  
  Phase 1: The Foundation (Email and Password)
&lt;/h3&gt;

&lt;p&gt;In the first couple of months, we kept authentication as straightforward as possible. We relied solely on traditional email and password sign ups. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Why we started here:&lt;/strong&gt; It required the least amount of external configuration, let us build our core database schema quickly, and gave us full control over user credentials.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The drawback:&lt;/strong&gt; Users hate remembering new passwords. Conversion rates suffer when people have to type in a long password and verify their email just to test a new tool.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Phase 2: Expanding for Convenience (Google and Calendar)
&lt;/h3&gt;

&lt;p&gt;As our product matured, we wanted to reduce friction and tap into daily workflows. We added Google signup and Google Calendar integration.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The impact:&lt;/strong&gt; Conversion rates jumped immediately. Allowing users to log in with a single click removed a major barrier to entry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The workflow benefit:&lt;/strong&gt; Because our product relies heavily on scheduling, connecting Google Calendar let users see their events and data inside the app instantly without manual data entry.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Phase 3: Embracing the Apple Ecosystem
&lt;/h3&gt;

&lt;p&gt;As we developed our mobile and desktop apps, user demographics shifted. A large portion of our user base lives inside the Apple ecosystem and prefers to keep their workflows tied to their Apple ID.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The fix:&lt;/strong&gt; We implemented Sign in with Apple. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Why it mattered:&lt;/strong&gt; Apple users expect native, privacy-focused login options. Adding this significantly improved our mobile onboarding experience and aligned our apps with platform expectations.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Phase 4: Going Enterprise (Microsoft and Outlook)
&lt;/h3&gt;

&lt;p&gt;Lately, we have been moving into corporate support. When selling to businesses, we quickly noticed that a massive percentage of companies use Microsoft accounts for work. &lt;/p&gt;

&lt;p&gt;To break into this market, we needed Microsoft login and Outlook calendar support. However, integrating enterprise authentication is rarely plug and play.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The verification hurdle:&lt;/strong&gt; Getting verified through the Microsoft Partner Program was a real struggle. It involved navigating complex compliance requirements, submitting documentation, and waiting for manual reviews. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The payoff:&lt;/strong&gt; After a week of hard work and patient waiting, our verification finally succeeded. Now, corporate users can log in seamlessly using their work credentials and sync their Outlook calendars without a hitch.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  What We Learned
&lt;/h3&gt;

&lt;p&gt;Building flexible app connectivity is a journey that scales alongside your product. &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start simple:&lt;/strong&gt; Email and password are fine for day one when you are validating an idea.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Follow your users:&lt;/strong&gt; Add social logins (Google and Apple) once you need to lower friction and improve consumer conversion.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Invest in enterprise readiness:&lt;/strong&gt; If you want to move upmarket, tackling complex compliance and integrations like Microsoft is worth the administrative headache.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Today, our app can successfully serve individuals and teams across multiple platforms and ecosystems. What authentication providers do you prioritize when building a new product? Let me know in the comments below!&lt;/p&gt;

</description>
      <category>devops</category>
      <category>authentication</category>
      <category>webdev</category>
      <category>powerapps</category>
    </item>
    <item>
      <title>What If Your Terminal Had an Infinite Canvas? Meet Fuse.</title>
      <dc:creator>Vlad B.</dc:creator>
      <pubDate>Thu, 17 Sep 2026 02:09:44 +0000</pubDate>
      <link>https://dev.to/vladbevs/what-if-your-terminal-had-an-infinite-canvas-meet-fuse-b1i</link>
      <guid>https://dev.to/vladbevs/what-if-your-terminal-had-an-infinite-canvas-meet-fuse-b1i</guid>
      <description>&lt;p&gt;Let’s be honest: every software project eventually grows a collection of messy, fragile shell scripts.&lt;/p&gt;

&lt;p&gt;You know the drill:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A 200-line release script that occasionally breaks mid-execution.&lt;/li&gt;
&lt;li&gt;Juggling three terminal tabs to run migrations, build artifacts, bump versions, and deploy across different sub-projects.&lt;/li&gt;
&lt;li&gt;Forgetting a parameter or copy-pasting an API token into the wrong prompt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I wanted something that gave me the &lt;strong&gt;visual clarity of node-based automation tools&lt;/strong&gt; (like Blender shader graphs or visual CI pipelines), but running &lt;strong&gt;100% locally on my Mac, with zero cloud lock-in, and without an Electron app eating 1GB of RAM&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Fuse&lt;/strong&gt; — an open-source, native visual command and workflow builder for macOS.&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/VladB-evs" rel="noopener noreferrer"&gt;
        VladB-evs
      &lt;/a&gt; / &lt;a href="https://github.com/VladB-evs/Fuse" rel="noopener noreferrer"&gt;
        Fuse
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Visual command and workflow builder for macOS. Connect shell commands, scripts, APIs, Git operations, and logic into executable workflows.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/VladB-evs/Fuse/assets/logo.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FVladB-evs%2FFuse%2FHEAD%2Fassets%2Flogo.png" alt="Fuse Logo" width="110" height="110"&gt;&lt;/a&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Fuse&lt;/h1&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Visual Command &amp;amp; Workflow Builder for macOS&lt;/h3&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/VladB-evs/Fuse/releases" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/0b15a6aa88e756e6985fbb73a6880c88c9ef9bf48bb7665513df0b6cccd24823/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f566c6164422d6576732f467573653f7374796c653d666c61742d73717561726526636f6c6f723d363336366631" alt="Release"&gt;&lt;/a&gt;
&lt;a href="https://github.com/VladB-evs/Fuse" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/000fba823d9a1a7aeb0da22d0e6c3cba4c24711e519aec8436a9e5263749b7ba/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f706c6174666f726d2d6d61634f532d3030303030303f7374796c653d666c61742d737175617265266c6f676f3d6170706c65266c6f676f436f6c6f723d7768697465" alt="Platform"&gt;&lt;/a&gt;
&lt;a href="https://tauri.app" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/53a55759f69301f534d80cc6b57d39a27a5f47299b3891a97d7fc0c657c5423b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6275696c74253230776974682d5461757269253230322e302d3234433844383f7374796c653d666c61742d737175617265266c6f676f3d7461757269266c6f676f436f6c6f723d7768697465" alt="Built with Tauri"&gt;&lt;/a&gt;
&lt;a href="https://www.rust-lang.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/44184e3521612333da2a647f685057331d8442c911b14bf9def698aa6c3e5f3e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f656e67696e652d527573742d4445413538343f7374796c653d666c61742d737175617265266c6f676f3d72757374266c6f676f436f6c6f723d7768697465" alt="Rust"&gt;&lt;/a&gt;
&lt;a href="https://github.com/VladB-evs/Fuse/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/422db9fd40f5831c765cf6530b6750c081b696bd18d904cf89554df98c676277/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e3f7374796c653d666c61742d737175617265" alt="License"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;
  &lt;b&gt;Draw your terminal commands as connected blocks on an infinite canvas.&lt;/b&gt;&lt;br&gt;
  Orchestrate complex shell scripts, APIs, git workflows, and automated pipelines with real-time streaming output, smart variables, and Apple on-device intelligence
&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/VladB-evs/Fuse#key-features" rel="noopener noreferrer"&gt;Key Features&lt;/a&gt; •
  &lt;a href="https://github.com/VladB-evs/Fuse#quick-start" rel="noopener noreferrer"&gt;Quick Start&lt;/a&gt; •
  &lt;a href="https://github.com/VladB-evs/Fuse#block-catalog" rel="noopener noreferrer"&gt;Block Catalog&lt;/a&gt; •
  &lt;a href="https://github.com/VladB-evs/Fuse#variables--flow" rel="noopener noreferrer"&gt;Variables &amp;amp; Flow&lt;/a&gt; •
  &lt;a href="https://github.com/VladB-evs/Fuse#keyboard-shortcuts" rel="noopener noreferrer"&gt;Shortcuts&lt;/a&gt; •
  &lt;a href="https://github.com/VladB-evs/Fuse#architecture" rel="noopener noreferrer"&gt;Architecture&lt;/a&gt;
&lt;/p&gt;



&lt;br&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/VladB-evs/Fuse/assets/preview.png"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FVladB-evs%2FFuse%2FHEAD%2Fassets%2Fpreview.png" alt="Fuse Canvas Interface" width="100%"&gt;&lt;/a&gt;

&lt;p&gt;&lt;em&gt;(the actual image of the worlflow used for this app)&lt;/em&gt;&lt;/p&gt;


&lt;/div&gt;
&lt;br&gt;


&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;⚡️ Key Features&lt;/h2&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;🎨 &lt;strong&gt;Fluid Canvas Orchestration&lt;/strong&gt; — Built for speed. Add blocks with a keystroke, drag wires between ports, and let frames auto-resize around their contents.&lt;/li&gt;
&lt;li&gt;🦀 &lt;strong&gt;Native Rust Performance&lt;/strong&gt; — Zero Electron bloat. Powered by &lt;strong&gt;Tauri 2&lt;/strong&gt; and Tokio async DAG walk. Sub-50MB memory footprint with instant launch times.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Apple On-Device Intelligence&lt;/strong&gt; — Analyze git diffs locally using on-device semantic summaries to generate conventional commit messages in milliseconds.&lt;/li&gt;
&lt;li&gt;📁 &lt;strong&gt;Repository &amp;amp; Folder Frames&lt;/strong&gt; — Group blocks inside folder frames. Every block inside…&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/VladB-evs/Fuse" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;



&lt;h2&gt;
  
  
  What is Fuse?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Fuse&lt;/strong&gt; lets you draw terminal commands, scripts, and API calls as connected nodes on an infinite canvas. You connect blocks with wires, pass variables downstream, set up conditionals, and watch real-time streaming ANSI terminal outputs as your DAG (Directed Acyclic Graph) executes.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fltyhwh3kd0hhst2b3th4.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fltyhwh3kd0hhst2b3th4.png" alt="Fuse Canvas Interface" width="800" height="427"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Why Not Just Run Shell Scripts?
&lt;/h2&gt;

&lt;p&gt;Here is what makes workflow graphs in Fuse fundamentally different from chaining &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; in a terminal:&lt;/p&gt;
&lt;h3&gt;
  
  
  1. Multi-Repo "Folder Frames"
&lt;/h3&gt;

&lt;p&gt;Working on a monorepo or separate client/server repositories? You can drop a &lt;strong&gt;Folder Frame&lt;/strong&gt; on the canvas and bind it to a local directory. Any block placed inside that frame automatically executes within that directory. You can coordinate your backend, frontend, and Docker setups on a single screen.&lt;/p&gt;
&lt;h3&gt;
  
  
  2. Smart Variable Piping (Without Escaping Nightmares)
&lt;/h3&gt;

&lt;p&gt;Outputs from upstream blocks are automatically captured and bound into your workflow context:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upstream: &lt;code&gt;git rev-parse --short HEAD&lt;/code&gt; -&amp;gt; &lt;code&gt;{{sha}}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Upstream: Semantic version bumper -&amp;gt; &lt;code&gt;{{next_version}}&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Downstream: Use them in curl payloads, shell commands, or commit messages:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"chore(release): bump to {{next_version}}"&lt;/span&gt;
git tag &lt;span class="s2"&gt;"{{next_version}}"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Fuse handles shell-safe escaping under the hood so spaces, quotes, and multiline inputs won't break your commands.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Human-in-the-Loop Controls
&lt;/h3&gt;

&lt;p&gt;Workflows shouldn't always be a blind "run and pray":&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Confirm&lt;/code&gt;&lt;/strong&gt;: Pauses execution and asks for approval before critical actions (like &lt;code&gt;git push --tags&lt;/code&gt; or a production deploy).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Ask&lt;/code&gt;&lt;/strong&gt;: Prompts you mid-run for a one-time value or secret token (with password masking).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;Choose&lt;/code&gt; &amp;amp; &lt;code&gt;If (Condition)&lt;/code&gt;&lt;/strong&gt;: Branch your execution paths dynamically based on exit codes or interactive user selections (e.g. &lt;code&gt;[Deploy Staging]&lt;/code&gt; vs &lt;code&gt;[Deploy Production]&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. The "Laser Slicer" (Because UX Matters)
&lt;/h3&gt;

&lt;p&gt;Instead of meticulously clicking wires to delete them, hold &lt;code&gt;Ctrl&lt;/code&gt; and slice your cursor across connections or nodes like a laser blade to sever them instantly.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Native Rust Performance (Sub-50MB RAM)
&lt;/h3&gt;

&lt;p&gt;Fuse is built on &lt;strong&gt;Tauri 2&lt;/strong&gt; and &lt;strong&gt;Rust&lt;/strong&gt; with Tokio async processes. It starts up instantaneously, doesn't spin up heavy Chromium browser instances per window, and uses virtually no background idle resources.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Block Catalog
&lt;/h2&gt;

&lt;p&gt;Fuse comes with a modular set of blocks you can place with a single keypress (&lt;code&gt;Tab&lt;/code&gt; or &lt;code&gt;A&lt;/code&gt;):&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Category&lt;/th&gt;
&lt;th&gt;Blocks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Execution&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Command&lt;/strong&gt; (shell), &lt;strong&gt;Script&lt;/strong&gt; (multi-line Python/Node/Bash), &lt;strong&gt;HTTP Request&lt;/strong&gt; (REST calls)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Git &amp;amp; Release&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Bump Version&lt;/strong&gt; (SemVer major/minor/patch), &lt;strong&gt;Git Presets&lt;/strong&gt; (Init, Rebase, Tag, Push)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data &amp;amp; Files&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Capture&lt;/strong&gt; (stdout to variable), &lt;strong&gt;Set Variable&lt;/strong&gt;, &lt;strong&gt;Read File&lt;/strong&gt;, &lt;strong&gt;Write File&lt;/strong&gt;, &lt;strong&gt;Ask&lt;/strong&gt; (user input)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Flow &amp;amp; Logic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;If (Condition)&lt;/strong&gt;, &lt;strong&gt;Choose&lt;/strong&gt;, &lt;strong&gt;Confirm&lt;/strong&gt;, &lt;strong&gt;Wait&lt;/strong&gt; (delay or healthcheck polling), &lt;strong&gt;Frame&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;Under the hood, Fuse is built with modern web and systems tech:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; React 19, TypeScript, &lt;a href="https://reactflow.dev/" rel="noopener noreferrer"&gt;@xyflow/react&lt;/a&gt; (React Flow), Tailwind CSS v4, Lucide Icons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend / Desktop Shell:&lt;/strong&gt; &lt;a href="https://tauri.app/" rel="noopener noreferrer"&gt;Tauri 2&lt;/a&gt; + Rust.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime:&lt;/strong&gt; Tokio asynchronous process groups, streaming ANSI terminal output with 256-color support.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;If you are on macOS (Apple Silicon or Intel), you can grab the pre-built &lt;code&gt;.dmg&lt;/code&gt; directly from GitHub Releases:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download the latest release from &lt;a href="https://github.com/VladB-evs/Fuse/releases/latest" rel="noopener noreferrer"&gt;GitHub Releases&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Open the &lt;code&gt;.dmg&lt;/code&gt; and drag &lt;strong&gt;Fuse.app&lt;/strong&gt; into your Applications folder.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;(Note: As an open-source release without an Apple Developer certificate, if Gatekeeper gives you a prompt, run &lt;code&gt;xattr -cr /Applications/Fuse.app&lt;/code&gt; or right-click the app and choose **Open&lt;/em&gt;&lt;em&gt;).&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Or Build from Source:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/VladB-evs/Fuse.git
&lt;span class="nb"&gt;cd &lt;/span&gt;Fuse
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run tauri dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  I’d Love Your Feedback!
&lt;/h2&gt;

&lt;p&gt;Fuse is completely open source under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  ⚠️ A Quick Note: Early Beta &amp;amp; Use at Your Own Risk
&lt;/h4&gt;

&lt;p&gt;Because Fuse executes real shell commands, scripts, and file operations directly on your local system with your user permissions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;This is an early active beta (v0.1.x)&lt;/strong&gt;: Expect bugs, UI rough edges, and evolving features as the project matures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use at your own risk&lt;/strong&gt;: Always double-check your connections and test commands (especially destructive operations like &lt;code&gt;rm&lt;/code&gt;, file writes, or git resets) on test repositories or dummy files first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Back up your work&lt;/strong&gt;: Make sure critical code is committed and pushed before running new automated pipelines.
Your bug reports and early feedback during this phase are hugely appreciated and will directly help shape the app!&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>opensource</category>
      <category>macos</category>
      <category>rust</category>
      <category>productivity</category>
    </item>
    <item>
      <title>This week at Romi #2 - Latency and Voice AI</title>
      <dc:creator>Vlad B.</dc:creator>
      <pubDate>Tue, 08 Sep 2026 04:23:59 +0000</pubDate>
      <link>https://dev.to/romiadhd/this-week-at-romi-2-latency-and-voice-ai-556c</link>
      <guid>https://dev.to/romiadhd/this-week-at-romi-2-latency-and-voice-ai-556c</guid>
      <description>&lt;p&gt;Welcome back to &lt;del&gt;This&lt;/del&gt; Last week at Romi. We've been really busy so this post hits a bit late than our scheduled Friday one!&lt;/p&gt;

&lt;p&gt;In Voice AI, saving 200–300 milliseconds sounds tiny on paper. In practice, it’s the difference between an awkward robotic delay and a natural conversation.&lt;br&gt;
This week, we took a hard look at our pipeline to eliminate latency and clean out old code that was getting in the way. Here is what we changed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sync to Async Tools:&lt;/strong&gt; Originally, tool execution was synchronous. When a user created a task, the pipeline froze waiting for database writes. Making our tools asynchronous means the voice keeps flowing naturally while items are saved in the background.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;7 Dedup Layers Down to 2:&lt;/strong&gt; To stop duplicate tasks from hitting the database, we kept piling on safeguards over time until we had 7 layers of deduplication. They slowed down the pipeline and began contradicting each other. With stronger prompt reinforcement and a quick backend cleanup, we cut that down to just 2 layers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ditching "Thinking" Models:&lt;/strong&gt; Since our agent relies heavily on fast tool calls, thinking models added unnecessary reasoning delay before speaking. We swapped to a model optimized strictly for speed and accurate tool invocation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Push-to-Talk Toggle:&lt;/strong&gt; To complement these backend speedups, we added a toggle between &lt;em&gt;Natural Flow&lt;/em&gt; and &lt;em&gt;Push-to-Talk&lt;/em&gt;. Now users can think out loud or speak in noisy rooms without the model prematurely triggering unwanted tasks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes performance wins aren't about writing complex new code—they're about deleting redundant safeguards, running tasks in the background, and picking the right model for the job.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;What's the worst bit of legacy "safety code" you've had to clean out of your stack?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;By Vlad - CTO@RomiADHD&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>This week at Romi #1 - OTA updates</title>
      <dc:creator>Vlad B.</dc:creator>
      <pubDate>Sat, 29 Aug 2026 06:21:04 +0000</pubDate>
      <link>https://dev.to/romiadhd/this-week-at-romi-1-48lc</link>
      <guid>https://dev.to/romiadhd/this-week-at-romi-1-48lc</guid>
      <description>&lt;p&gt;We finally added OTA updates to Romi.&lt;/p&gt;

&lt;p&gt;This is something apps have been doing for years, but it’s new territory for us.&lt;/p&gt;

&lt;p&gt;Instead of waiting for Apple’s review every time we need to push a small fix, we can now ship certain updates directly to users.&lt;/p&gt;

&lt;p&gt;And because apparently paying for another service wasn’t exciting enough, we built our own setup using Capgo + CDN.&lt;/p&gt;

&lt;p&gt;It’s one of those things that feels obvious once it works. Getting there was slightly less obvious. 😅&lt;/p&gt;

&lt;p&gt;What’s something your team implemented way later than everyone else?&lt;/p&gt;

&lt;p&gt;By Vlad - CTO@RomiADHD&lt;/p&gt;

</description>
      <category>development</category>
      <category>showdev</category>
    </item>
    <item>
      <title>I Built an Obsidian Plugin for Myself. Someone Actually Used It.</title>
      <dc:creator>Vlad B.</dc:creator>
      <pubDate>Sat, 29 Aug 2026 04:26:47 +0000</pubDate>
      <link>https://dev.to/vladbevs/i-built-an-obsidian-plugin-for-myself-someone-actually-used-it-3ll5</link>
      <guid>https://dev.to/vladbevs/i-built-an-obsidian-plugin-for-myself-someone-actually-used-it-3ll5</guid>
      <description>&lt;p&gt;I got an email recently from someone asking if I could add a feature to one of my Obsidian plugins.&lt;/p&gt;

&lt;p&gt;The funny part? I built the plugin for myself and never really expected anyone to use it.&lt;/p&gt;

&lt;p&gt;The plugin adds folder backlinks to Obsidian, since Obsidian only supports backlinks to notes.&lt;/p&gt;

&lt;p&gt;He asked if I could make folder links work inside note properties because he couldn't figure out how to do it himself.&lt;/p&gt;

&lt;p&gt;So I built it.&lt;/p&gt;

&lt;p&gt;It's now a two-step command palette action: select the folder, then select the note property, and the link gets added.&lt;/p&gt;

&lt;p&gt;While I was working on it, I also found a few things that weren't as smooth as they should be, fixed a couple of bugs, and polished some of the rough edges.&lt;/p&gt;

&lt;p&gt;It's kind of weird seeing someone use something you built purely because you wanted it yourself.&lt;/p&gt;

&lt;p&gt;Maybe I should start taking my side projects a little more seriously.&lt;/p&gt;

</description>
      <category>obsidian</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>Hello from Romi!</title>
      <dc:creator>Vlad B.</dc:creator>
      <pubDate>Thu, 27 Aug 2026 04:51:57 +0000</pubDate>
      <link>https://dev.to/romiadhd/hello-from-romi-ae4</link>
      <guid>https://dev.to/romiadhd/hello-from-romi-ae4</guid>
      <description>&lt;p&gt;Hey this is Vlad, the CTO. We’ve been quietly building Romi for a while, so we figured it was probably time to stop hiding in the codebase.&lt;/p&gt;

&lt;p&gt;Romi thinks like you do. Voice-first, ADHD-first. Capture thoughts, build routines, and actually stick to them. Your brain deserves a companion that keeps up.&lt;/p&gt;

&lt;p&gt;I'm not trying to promote anything but to share what we’re building, the things we learn along the way, technical decisions, experiments, and probably a healthy amount of “well, that broke.”&lt;/p&gt;

&lt;p&gt;We’re especially interested in exploring what happens when AI becomes something you actually work with every day, rather than just another chatbot in a browser tab.&lt;/p&gt;

&lt;p&gt;If you’re building with AI, working on developer tools, or just enjoy watching other developers make questionable architectural decisions, welcome.&lt;/p&gt;

&lt;p&gt;Ask me anything in the comments. &lt;/p&gt;

</description>
      <category>ai</category>
      <category>buildinpublic</category>
      <category>startup</category>
    </item>
    <item>
      <title>I Finally Joined DEV.to</title>
      <dc:creator>Vlad B.</dc:creator>
      <pubDate>Thu, 27 Aug 2026 04:10:55 +0000</pubDate>
      <link>https://dev.to/vladbevs/i-finally-joined-devto-3hof</link>
      <guid>https://dev.to/vladbevs/i-finally-joined-devto-3hof</guid>
      <description>&lt;p&gt;Well, I finally joined DEV.to.&lt;/p&gt;

&lt;p&gt;Got bored of social media and scrolling so I decided to give this a go and scroll some more.&lt;/p&gt;

&lt;p&gt;I’m currently working on Romi, experimenting with AI agents, and finding increasingly questionable ways to make computers do what I don't want to do. &lt;/p&gt;

&lt;p&gt;I’ll probably post about what I’m building, cool open source stuff I find and maybe show off some of my (not so great) side projects.&lt;/p&gt;

&lt;p&gt;Anyway, If you saw this tell me your best programming joke that will kill on slack lol 🗿&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
