<?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: Mamadou DIARRA (Afrocodeur)</title>
    <description>The latest articles on DEV Community by Mamadou DIARRA (Afrocodeur) (@afrocodeur).</description>
    <link>https://dev.to/afrocodeur</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%2F3402507%2Fab9d9d6f-9419-4b13-a215-6811a31e0066.png</url>
      <title>DEV Community: Mamadou DIARRA (Afrocodeur)</title>
      <link>https://dev.to/afrocodeur</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/afrocodeur"/>
    <language>en</language>
    <item>
      <title>NativeDocument: the framework that combines reactivity, performance… and simplicity of use</title>
      <dc:creator>Mamadou DIARRA (Afrocodeur)</dc:creator>
      <pubDate>Tue, 26 Aug 2025 12:45:06 +0000</pubDate>
      <link>https://dev.to/afrocodeur/nativedocument-the-framework-that-combines-reactivity-performance-and-simplicity-of-use-3ikp</link>
      <guid>https://dev.to/afrocodeur/nativedocument-the-framework-that-combines-reactivity-performance-and-simplicity-of-use-3ikp</guid>
      <description>&lt;p&gt;Last week, I talked about a project based on a simple idea: bringing the power of reactivity without the performance and memory cost of today’s frameworks.&lt;br&gt;&lt;br&gt;
Today, I’m proud to introduce &lt;strong&gt;NativeDocument&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;For a long time, I’ve been looking to push the limits of native JavaScript. My goal was to create a tool that combines cutting-edge reactivity with strong adherence to Web standards.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;NativeDocument is my answer to this challenge.&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;What makes NativeDocument unique is its approach: no need to compile, build, or transpile your code. The same code works everywhere—whether you’re importing it via a CDN for a small project or using it in a modern environment like Vite or Webpack.&lt;br&gt;&lt;br&gt;
The framework adapts to your needs, not the other way around.  &lt;/p&gt;

&lt;p&gt;Based on local tests, here are some results compared with market leaders like Vue, React, and Angular:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Execution speed&lt;/strong&gt;: NativeDocument is on average 1.5x faster than Vue, 2x faster than React, and 3x faster than Angular on critical DOM operations.
Our overall score is nearly perfect, just behind native JavaScript.
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory management&lt;/strong&gt;: NativeDocument uses up to 1.4x less memory than React for a 10,000-line application.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Beyond performance, we’ve placed great emphasis on readability. NativeDocument offers a declarative syntax with a clear API that directly exposes the list of available HTML tags.&lt;br&gt;&lt;br&gt;
You code intuitively, while staying close to the native DOM.  &lt;/p&gt;

&lt;p&gt;For advanced use cases, several control structures are ready to use out of the box: &lt;code&gt;ShowIf&lt;/code&gt;, &lt;code&gt;Switch&lt;/code&gt;, &lt;code&gt;Match&lt;/code&gt;, &lt;code&gt;ForEach&lt;/code&gt;, and &lt;code&gt;ForEachArray&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
But the framework remains flexible: you can create your own control structures thanks to the built-in &lt;code&gt;Anchors&lt;/code&gt;.  &lt;/p&gt;

&lt;p&gt;To validate these results, I submitted a pull request for NativeDocument to be included in the official JavaScript framework benchmark. A merge is planned for September.  &lt;/p&gt;

&lt;p&gt;I’m excited to hear your feedback and to see what you’ll build with this project.  &lt;/p&gt;

&lt;p&gt;👉 Check out the code and full benchmarks on GitHub:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/afrocodeur/native-document" rel="noopener noreferrer"&gt;https://github.com/afrocodeur/native-document&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/krausest/js-framework-benchmark/pull/1914" rel="noopener noreferrer"&gt;https://github.com/krausest/js-framework-benchmark/pull/1914&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  NativeDocument #JavaScript #WebDev #MinimalFramework #Performance #Versatility #NoBuild #NoCompilation #NoTranspilation #NoRuntime #VanillaJS #React #VueJs
&lt;/h1&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.amazonaws.com%2Fuploads%2Farticles%2Fwy4uisyckvsl4osumw9u.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.amazonaws.com%2Fuploads%2Farticles%2Fwy4uisyckvsl4osumw9u.png" alt=" " width="800" height="974"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F4d2y9g12exa5eo1a95u1.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.amazonaws.com%2Fuploads%2Farticles%2F4d2y9g12exa5eo1a95u1.png" alt=" " width="800" height="537"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2F46lhfwly41htgu05h4rk.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.amazonaws.com%2Fuploads%2Farticles%2F46lhfwly41htgu05h4rk.png" alt=" " width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>You don’t need more than… the DOM.</title>
      <dc:creator>Mamadou DIARRA (Afrocodeur)</dc:creator>
      <pubDate>Tue, 19 Aug 2025 11:50:18 +0000</pubDate>
      <link>https://dev.to/afrocodeur/you-dont-need-more-than-the-dom-1662</link>
      <guid>https://dev.to/afrocodeur/you-dont-need-more-than-the-dom-1662</guid>
      <description>&lt;p&gt;Imagine this:&lt;br&gt;
Every HTML element can be enriched, listened to, updated…&lt;br&gt;
Without losing its native nature.&lt;br&gt;
No virtual DOM.&lt;br&gt;
No magic.&lt;/p&gt;

&lt;p&gt;No transformations.&lt;br&gt;
Just a thin layer to stay close to your intent.&lt;/p&gt;

&lt;p&gt;And the best part?&lt;br&gt;
The same code works everywhere — whether you import it via a CDN or use it in a bundled project.&lt;/p&gt;

&lt;p&gt;Next week: I’ll share what I’ve been building in this direction.&lt;/p&gt;

&lt;h1&gt;
  
  
  JavaScript #MinimalFramework #WebDev #NoRuntime #VanillaJS #React #VueJs
&lt;/h1&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.amazonaws.com%2Fuploads%2Farticles%2Fze3ztti4udp1zjqsqu9j.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fze3ztti4udp1zjqsqu9j.jpeg" alt=" " width="800" height="969"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>minimalism</category>
    </item>
    <item>
      <title>No Diffing. No Reconciliation. Just the DOM.</title>
      <dc:creator>Mamadou DIARRA (Afrocodeur)</dc:creator>
      <pubDate>Mon, 11 Aug 2025 11:33:45 +0000</pubDate>
      <link>https://dev.to/afrocodeur/no-diffing-no-reconciliation-just-the-dom-3fo5</link>
      <guid>https://dev.to/afrocodeur/no-diffing-no-reconciliation-just-the-dom-3fo5</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2F1wnm1b5yo9xaxcf9ilpo.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2F1wnm1b5yo9xaxcf9ilpo.jpeg" alt=" " width="800" height="725"&gt;&lt;/a&gt;&lt;br&gt;
Have you ever felt like your interface goes through a thousand steps before showing up?&lt;br&gt;
Diffing, reconciliation, virtual rendering… so many layers that slow down and overcomplicate the DOM.&lt;/p&gt;

&lt;p&gt;What if every change targeted the right node directly — as if it were alive?&lt;br&gt;
No compilation, just a DOM that updates instantly, in real time.&lt;/p&gt;

&lt;p&gt;⚡ Simple. Predictable. Reactive.&lt;/p&gt;

&lt;h1&gt;
  
  
  JavaScript #MinimalFramework #WebDev #NoRuntime #VanillaJS #React #VueJs
&lt;/h1&gt;

</description>
      <category>webperf</category>
      <category>frontend</category>
      <category>ui</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Manipulating the UI Like a Living Structure - No Hooks, No Diffing, Just the DOM</title>
      <dc:creator>Mamadou DIARRA (Afrocodeur)</dc:creator>
      <pubDate>Wed, 06 Aug 2025 12:44:27 +0000</pubDate>
      <link>https://dev.to/afrocodeur/anipulating-the-ui-like-a-living-structure-no-hooks-no-diffing-just-the-dom-1m6k</link>
      <guid>https://dev.to/afrocodeur/anipulating-the-ui-like-a-living-structure-no-hooks-no-diffing-just-the-dom-1m6k</guid>
      <description>&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.amazonaws.com%2Fuploads%2Farticles%2Fvqmzkqv11eqy91smt5zu.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fvqmzkqv11eqy91smt5zu.jpeg" alt=" " width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Reactive - without render cycles.&lt;br&gt;
Predictable - because it's synchronous.&lt;/p&gt;

&lt;p&gt;The DOM updates instantly.&lt;br&gt;
No hooks. No diffing.&lt;/p&gt;

&lt;p&gt;JavaScript the way it should be? 🤔&lt;br&gt;
Does it remind you of a simpler time?&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>ui</category>
      <category>webdev</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Mamadou DIARRA (Afrocodeur)</dc:creator>
      <pubDate>Wed, 06 Aug 2025 12:42:16 +0000</pubDate>
      <link>https://dev.to/afrocodeur/-39i2</link>
      <guid>https://dev.to/afrocodeur/-39i2</guid>
      <description></description>
      <category>giveaways</category>
    </item>
    <item>
      <title>No DSL. No Runtime. Just a Bridge to the DOM.</title>
      <dc:creator>Mamadou DIARRA (Afrocodeur)</dc:creator>
      <pubDate>Mon, 04 Aug 2025 12:27:05 +0000</pubDate>
      <link>https://dev.to/afrocodeur/no-dsl-no-runtime-just-a-bridge-to-the-dom-4bi2</link>
      <guid>https://dev.to/afrocodeur/no-dsl-no-runtime-just-a-bridge-to-the-dom-4bi2</guid>
      <description>&lt;p&gt;An abstraction doesn’t have to be a wall.&lt;br&gt;
It can also be a bridge.&lt;/p&gt;

&lt;p&gt;Here, there’s no rendering engine, no DSL, no mental model to learn.&lt;br&gt;
The DOM stays at the center. The code is readable. The intent is clear.&lt;/p&gt;

&lt;p&gt;More previews coming this week.&lt;br&gt;
Does this approach resonate with you?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>ui</category>
      <category>discuss</category>
    </item>
    <item>
      <title>What if Vanilla JS was enough?</title>
      <dc:creator>Mamadou DIARRA (Afrocodeur)</dc:creator>
      <pubDate>Sat, 02 Aug 2025 14:23:15 +0000</pubDate>
      <link>https://dev.to/afrocodeur/what-if-vanilla-js-was-enough-bb8</link>
      <guid>https://dev.to/afrocodeur/what-if-vanilla-js-was-enough-bb8</guid>
      <description>&lt;p&gt;What if, instead of reinventing the DOM, we let it do what it already does well —&lt;br&gt;
and simply added just enough to make it more pleasant to work with?&lt;/p&gt;

&lt;p&gt;A few ideas coming in the next few days.&lt;br&gt;
I'd love to hear your thoughts — especially if you feel that same friction.&lt;/p&gt;

&lt;h1&gt;
  
  
  VanillaJS #JavaScriptMinimal #FrontendDev #DOMFirst #React #Vue #Angular
&lt;/h1&gt;

</description>
      <category>javascript</category>
      <category>frontend</category>
      <category>react</category>
      <category>vue</category>
    </item>
    <item>
      <title>When did we start piling up so many tools just to manage an interface?</title>
      <dc:creator>Mamadou DIARRA (Afrocodeur)</dc:creator>
      <pubDate>Thu, 31 Jul 2025 09:06:01 +0000</pubDate>
      <link>https://dev.to/afrocodeur/when-did-we-start-piling-up-so-many-tools-just-to-manage-an-interface-3kk8</link>
      <guid>https://dev.to/afrocodeur/when-did-we-start-piling-up-so-many-tools-just-to-manage-an-interface-3kk8</guid>
      <description>&lt;p&gt;Do we really need all this just to display some information or respond to a click?&lt;/p&gt;

&lt;p&gt;Without denying the progress we've made, it might be worth asking whether things could be simpler.&lt;br&gt;
More direct. More aligned with the browser.&lt;/p&gt;

&lt;p&gt;Some thoughts and concrete ideas coming soon.&lt;br&gt;
&lt;strong&gt;What do you think?&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  FrontendDev #WebDev #JavaScript #React #Angular #Vue #Svelte
&lt;/h1&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>frontend</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
