<?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: Hugo Duprez</title>
    <description>The latest articles on DEV Community by Hugo Duprez (@hugoduprez).</description>
    <link>https://dev.to/hugoduprez</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%2F734156%2F27dd0ab7-498d-4a9b-9b59-c22dc0b8b0e5.jpg</url>
      <title>DEV Community: Hugo Duprez</title>
      <link>https://dev.to/hugoduprez</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hugoduprez"/>
    <language>en</language>
    <item>
      <title>Compiling SaaS as executable binary.</title>
      <dc:creator>Hugo Duprez</dc:creator>
      <pubDate>Mon, 01 Sep 2025 08:58:06 +0000</pubDate>
      <link>https://dev.to/hugoduprez/compiling-saas-as-executable-binary-126l</link>
      <guid>https://dev.to/hugoduprez/compiling-saas-as-executable-binary-126l</guid>
      <description>&lt;p&gt;Hey folks,&lt;/p&gt;

&lt;p&gt;I've always wanted a way to bundle entire SaaS apps into a single executable to ship self-hostable commercial software. Most of SaaS shipped today could just be a single binary you buy, own, and self-host.&lt;/p&gt;

&lt;p&gt;Today, I've decided to &lt;a href="https://github.com/Hugo-Dz/exe" rel="noopener noreferrer"&gt;open source&lt;/a&gt; my way of doing it, using Bun compile and custom builds for SvelteKit (first class support), React TanStack (experimental), and Nuxt (experimental).&lt;/p&gt;

&lt;p&gt;This thing can be used to sell commercial self-hostable software, but also to distribute open source apps that requires 0 runtime dependencies to run it: no Node, no Docker, just run the executable, and open your browser on localhost :)&lt;/p&gt;

&lt;p&gt;Let me know your thoughts!&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>bunjs</category>
      <category>webdev</category>
    </item>
    <item>
      <title>3KB Cute Animation made in Rive</title>
      <dc:creator>Hugo Duprez</dc:creator>
      <pubDate>Tue, 17 Jun 2025 09:45:20 +0000</pubDate>
      <link>https://dev.to/hugoduprez/3kb-cute-animation-made-in-rive-25m7</link>
      <guid>https://dev.to/hugoduprez/3kb-cute-animation-made-in-rive-25m7</guid>
      <description>&lt;p&gt;Hey folks!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR: &lt;a href="https://director.design/chapters/playful-onboarding" rel="noopener noreferrer"&gt;Rive&lt;/a&gt; is a big deal for designers, and developers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've been experimenting with motion design &amp;amp; micro interactions lately. As context, I'm a full stack dev with a background in design &amp;amp; motion.&lt;/p&gt;

&lt;p&gt;I've always dreamed about a way to make animations in After Effects that are NOT just meant to be exported as .mp4 files but actual interactive animations I could use on my websites or apps.&lt;/p&gt;

&lt;p&gt;Back in the day, I messed around with Lottie using the Bodymovin plugin for After Effets in order to achieve that. I'm not gonna lie: it "worked" but it was very bad DX and not really efficient (big JSON animation file).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;-- 5 years later --&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I stumbled upon Rive and started to &lt;a href="https://director.design/chapters/playful-onboarding" rel="noopener noreferrer"&gt;experiment&lt;/a&gt; with it, and wow it's exactly what I would dream about: An animation tool that can export lightweight and interactive animations with full control through code.&lt;/p&gt;

&lt;p&gt;The export is a .riv binary file that is loaded by the Rive SDK. Starting from that, you can interact with your data bindings and inputs set in Rive in plain JS, enabling infinite possibilities!&lt;/p&gt;

&lt;p&gt;My personal take is that with the incoming flood of average software due to AI, design delight will be back. And this Rive thing is probably a big deal for the future.&lt;/p&gt;

&lt;p&gt;Let me know your thoughts!&lt;/p&gt;

&lt;p&gt;Cheers.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>design</category>
      <category>motion</category>
      <category>programming</category>
    </item>
    <item>
      <title>A Figma-like level design editor</title>
      <dc:creator>Hugo Duprez</dc:creator>
      <pubDate>Wed, 16 Oct 2024 09:36:36 +0000</pubDate>
      <link>https://dev.to/hugoduprez/a-figma-like-level-design-editor-4kdj</link>
      <guid>https://dev.to/hugoduprez/a-figma-like-level-design-editor-4kdj</guid>
      <description>&lt;p&gt;Hey folks,&lt;/p&gt;

&lt;p&gt;My small &lt;a href="https://www.spritefusion.com/" rel="noopener noreferrer"&gt;level design tool&lt;/a&gt; recently hit 35k users. A lot of people ask how it's built so here we go!&lt;/p&gt;

&lt;p&gt;Frontend:&lt;br&gt;
All frontend things are made using SvelteKit, it's really a magical tool to build things fast with all the performance you need for kind of creative tools. For the rendering I use a custom engine I built on top of PixiJS.&lt;/p&gt;

&lt;p&gt;Backend:&lt;br&gt;
The tool allows you to export you map to native formats accepted by different engines, so I have had to compile maps into native files like .unitypackage files.&lt;br&gt;
This is handled by a backend written in Rust!&lt;/p&gt;

&lt;p&gt;Desktop app version:&lt;br&gt;
I then used Tauri to bundle my SvelteKit app as a desktop app. The cool thing here is since Tauri can run Rust commands, I just put all my backend logic in a standalone Rust crate so I can use the same code for my backend server (for the web app) and for the desktop app (Rust functions are directly called from my static frontend in Tauri).&lt;/p&gt;

&lt;p&gt;That's it! You want to try the web version &lt;a href="https://www.spritefusion.com/" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cheers!&lt;/p&gt;

&lt;p&gt;Hugo&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>svelte</category>
      <category>gamedev</category>
      <category>design</category>
    </item>
    <item>
      <title>An AI powered plugin that renames Figma layers.</title>
      <dc:creator>Hugo Duprez</dc:creator>
      <pubDate>Sun, 23 Oct 2022 13:55:28 +0000</pubDate>
      <link>https://dev.to/hugoduprez/an-ai-powered-plugin-that-renames-figma-layers-4547</link>
      <guid>https://dev.to/hugoduprez/an-ai-powered-plugin-that-renames-figma-layers-4547</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1rfxmsptbvb8do3gkpoo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1rfxmsptbvb8do3gkpoo.png" alt="Image description" width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi there!&lt;/p&gt;

&lt;p&gt;New experiment done last week: A little Figma &lt;a href="https://www.autoname.org/" rel="noopener noreferrer"&gt;plugin&lt;/a&gt; that renames layers automatically thanks to artificial intelligence.&lt;/p&gt;

&lt;p&gt;The plugin itself was built on top of Svelte for the UI &amp;amp; Teachable Machine for the classification part.&lt;/p&gt;

&lt;p&gt;You can contribute to the &lt;a href="https://github.com/Hugo-Dz/figma_autoname_client_app" rel="noopener noreferrer"&gt;code&lt;/a&gt; as it's an Open Source project :)&lt;/p&gt;

&lt;p&gt;Sponsor the project &lt;a href="https://github.com/sponsors/Hugo-Dz" rel="noopener noreferrer"&gt;here&lt;/a&gt; and get your name in the source code :)&lt;/p&gt;

&lt;p&gt;Feel free to drop me a line: &lt;a href="mailto:duprez.hugo@gmail.com"&gt;duprez.hugo@gmail.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>ai</category>
      <category>design</category>
    </item>
    <item>
      <title>DALLE-E Mini redesign 🎨</title>
      <dc:creator>Hugo Duprez</dc:creator>
      <pubDate>Sun, 07 Aug 2022 11:56:02 +0000</pubDate>
      <link>https://dev.to/hugoduprez/dalle-e-mini-redesign-59ln</link>
      <guid>https://dev.to/hugoduprez/dalle-e-mini-redesign-59ln</guid>
      <description>&lt;p&gt;Hi there! 👋&lt;/p&gt;

&lt;p&gt;Craiyon (Formerly DALLE-E Mini), made by &lt;a href="https://twitter.com/borisdayma" rel="noopener noreferrer"&gt;Boris&lt;/a&gt;, is a text-to-image AI tool that outputs an artwork from a text prompt and it's free! This kind of mass-market tool has to be very clear and accessible. Let's show you how I used design to make  it more accessible, trustable, and explainable.&lt;/p&gt;

&lt;p&gt;   &lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Trigger creativity ➡️ Show what's possible at the first glance.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;   &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8ovih34jlpvy1cpszyg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv8ovih34jlpvy1cpszyg.png" alt="Tips to write a good prompt" width="800" height="651"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo8cimror2nzm1942iuts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo8cimror2nzm1942iuts.png" alt="Prompt input" width="800" height="519"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Help user writing a great prompt ➡️ Give tips on how to write for text-to-image generation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;   &lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Show what's going on ➡️ Inform the user on the remaining time and give the option to cancel.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;   &lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Make it easy to grab the result ➡️ Show up a expressive "Download" button and give the option for a better resolution with an upscale.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;   &lt;/p&gt;

&lt;p&gt;You can find the quick breakdown of the design &lt;a href="https://www.hugoduprez.com/dalleeMiniRedesign" rel="noopener noreferrer"&gt;here&lt;/a&gt; :)&lt;br&gt;
Let me know your feedback! You can also play around the &lt;a href="https://www.craiyon.com/" rel="noopener noreferrer"&gt;Craiyon&lt;/a&gt;app.&lt;/p&gt;

&lt;p&gt;I'm also on &lt;a href="https://twitter.com/HugoDuprez" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, say hello ✌️&lt;/p&gt;

&lt;p&gt;Enjoy your week! 🔥&lt;/p&gt;

</description>
      <category>design</category>
      <category>ai</category>
      <category>sideprojects</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Host images on Google Drive with Svelte!</title>
      <dc:creator>Hugo Duprez</dc:creator>
      <pubDate>Sun, 24 Jul 2022 12:23:00 +0000</pubDate>
      <link>https://dev.to/hugoduprez/host-images-on-google-drive-with-svelte-51b5</link>
      <guid>https://dev.to/hugoduprez/host-images-on-google-drive-with-svelte-51b5</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kadyztxf7zt8yk714nk.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5kadyztxf7zt8yk714nk.PNG" alt="Product image, made with Svelte" width="800" height="1237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you use free hosting services like imgBB?&lt;/strong&gt; Since I explore programing and building weird products the way this kind of service limit the quality and overwhelms you with ads was pretty annoying 🥱&lt;/p&gt;

&lt;p&gt;I was surprised that is totally possible to host any kind of media on your own Google Drive but Google doesn't provide a valid link out of the box in Drive!&lt;/p&gt;

&lt;p&gt;So last month I decided to build &lt;a href="https://www.imagehostcompany.com/" rel="noopener noreferrer"&gt;my own&lt;/a&gt; hosting service.&lt;/p&gt;

&lt;p&gt;All the app was made with Svelte and Typescript with any Back-End!&lt;/p&gt;

&lt;p&gt;Hope it will help you also when it's time to host a cat image :)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; You can see the full breakdown &lt;a href="https://medium.com/@duprez.hugo/design-build-an-app-with-svelte-ecd7ed0729da" rel="noopener noreferrer"&gt;here&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>svelte</category>
      <category>programming</category>
    </item>
    <item>
      <title>Generate some wavy SVG with Svelte!</title>
      <dc:creator>Hugo Duprez</dc:creator>
      <pubDate>Tue, 03 May 2022 14:14:56 +0000</pubDate>
      <link>https://dev.to/hugoduprez/generate-some-wavy-svg-with-svelte-4ah</link>
      <guid>https://dev.to/hugoduprez/generate-some-wavy-svg-with-svelte-4ah</guid>
      <description>&lt;p&gt;&lt;a href="https://media.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%2Fv898k80am4ffrw94jqr2.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fv898k80am4ffrw94jqr2.gif" alt="SVG sine waves generator"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm trying to build my weird stuff for a year now. Starting with plain JavaScript last summer and dived into Vue JS for the 4 past months, just before discovering &lt;a href="https://svelte.dev/" rel="noopener noreferrer"&gt;Svelte&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And what a deal 🌤️... &lt;strong&gt;Svelte is this kind of way of doing logic I always dreamed about: writing less code, writing simple code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, some aspects of Svelte do not really work like how things work in "real life", like state management. But who cares? If you are not looking for a position but just want to craft, it's really a golden nugget!&lt;/p&gt;

&lt;p&gt;You can get the source code of the app &lt;a href="https://github.com/Hugo-Dz/Sinwaver" rel="noopener noreferrer"&gt;here&lt;/a&gt;. Or &lt;a href="https://www.sinwaver.com/" rel="noopener noreferrer"&gt;test it&lt;/a&gt; by yourself&lt;/p&gt;

&lt;p&gt;I'm curious about your thoughts on Svelte! And if you have already shipped something with it, share it below :)&lt;/p&gt;

&lt;p&gt;Cheers!&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>design</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
