<?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: Habibe BA</title>
    <description>The latest articles on DEV Community by Habibe BA (@habibeba).</description>
    <link>https://dev.to/habibeba</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%2F3872449%2Fa3cfd09b-43cc-433f-9797-216498c28313.png</url>
      <title>DEV Community: Habibe BA</title>
      <link>https://dev.to/habibeba</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/habibeba"/>
    <language>en</language>
    <item>
      <title>I built a 20KB Motion Engine because Svgator,Rive and Lottie were too heavy for the DOM</title>
      <dc:creator>Habibe BA</dc:creator>
      <pubDate>Fri, 10 Apr 2026 20:48:40 +0000</pubDate>
      <link>https://dev.to/habibeba/i-built-a-20kb-motion-engine-because-svgatorrive-and-lottie-were-too-heavy-for-the-dom-e6n</link>
      <guid>https://dev.to/habibeba/i-built-a-20kb-motion-engine-because-svgatorrive-and-lottie-were-too-heavy-for-the-dom-e6n</guid>
      <description>&lt;p&gt;&lt;strong&gt;The Problem: The "Black Box" of Web Animation&lt;/strong&gt;&lt;br&gt;
We’ve all been there. You want a high-fidelity animation, so you reach for Lottie or Rive. They look amazing, but they come with a cost:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Weight&lt;/strong&gt;: Rive’s runtime starts at 280KB+. Even SVGator sits around 38KB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The SEO Void&lt;/strong&gt;: Canvas-based animations are "black boxes." Search engines can't see what's inside.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Accessibility&lt;/strong&gt;: Screen readers often struggle with non-DOM elements.&lt;/p&gt;

&lt;p&gt;As a Senior Developer obsessed with performance, I thought: "&lt;strong&gt;Can we have high-end motion without sacrificing the DOM?&lt;/strong&gt;"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Solution: Fluv, the Semantic Motion Engine&lt;/strong&gt;&lt;br&gt;
I spent the last few months building Fluv. It’s not just another library; it’s a Semantic Motion Engine designed to treat animations as native web citizens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Achievement: 20KB Modular Runtime&lt;/strong&gt;&lt;br&gt;
By building a proprietary modular architecture, I managed to get the runtime down to 20KB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selective Loading&lt;/strong&gt;: It only loads the features your specific animation needs (easing funcs, staggering, etc.).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10KB Lighter&lt;/strong&gt;: It’s consistently 10KB to 20KB lighter than the nearest competitors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why "Semantic"?&lt;/strong&gt;&lt;br&gt;
Unlike Canvas-based solutions, Fluv manipulates SVG paths directly in the DOM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SEO-Native&lt;/strong&gt;: Every element is crawlable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stylable&lt;/strong&gt;: You can still interact with your animations via CSS/JS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lightweight&lt;/strong&gt;: No heavy engine needed to "render" a frame; the browser does what it does best.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Technical Deep Dive&lt;/strong&gt;&lt;br&gt;
I re-engineered how path data is parsed and interpolated. Instead of massive JSON files, Fluv uses a compressed logic that prioritizes mathematical curves over raw frame data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Support includes&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Extended animation types (Path morphing, transforms).&lt;/p&gt;

&lt;p&gt;Complex staggering for group elements.&lt;/p&gt;

&lt;p&gt;Custom easing functions for organic movement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out the Repo&lt;/strong&gt;&lt;br&gt;
I’m currently refining the engine and would love some feedback from the performance community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/Shadoworker/fluv.git" rel="noopener noreferrer"&gt;https://github.com/Shadoworker/fluv.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;I'm curious: What is your "budget" for animation runtimes in your professional projects? Does 280KB feel like too much for a landing page? Let's discuss in the comments!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webperf</category>
      <category>javascript</category>
      <category>svg</category>
      <category>animation</category>
    </item>
  </channel>
</rss>
