<?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: Saiful Siam</title>
    <description>The latest articles on DEV Community by Saiful Siam (@motionmind2007).</description>
    <link>https://dev.to/motionmind2007</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%2F3979365%2F9abed9cf-00b7-4008-8a9d-28e92bca4283.jpeg</url>
      <title>DEV Community: Saiful Siam</title>
      <link>https://dev.to/motionmind2007</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/motionmind2007"/>
    <language>en</language>
    <item>
      <title>The New Standard for NPM Package Discovery: Deep Dive into LibPilot</title>
      <dc:creator>Saiful Siam</dc:creator>
      <pubDate>Wed, 24 Jun 2026 15:51:59 +0000</pubDate>
      <link>https://dev.to/motionmind2007/the-new-standard-for-npm-package-discovery-deep-dive-into-libpilot-4ook</link>
      <guid>https://dev.to/motionmind2007/the-new-standard-for-npm-package-discovery-deep-dive-into-libpilot-4ook</guid>
      <description>&lt;p&gt;As web developers, engineering workflows are heavily dependent on the NPM registry. However, the traditional process of searching, auditing, and integrating packages remains highly fragmented. Developers are routinely forced to hop between npmjs.com, GitHub source repositories, and external documentation tabs simply to verify bundle sizes, check dependency trees, or generate setup boilerplate.&lt;/p&gt;

&lt;p&gt;Following a strong reception on LinkedIn, X, and Facebook, the Motion Mind Team has introduced LibPilot to the dev.to community. LibPilot is not a traditional registry interface; it is an AI-powered search engine and discovery hub engineered to index, track, and analyze over 4,000,000 NPM packages in real time. &lt;/p&gt;

&lt;p&gt;Here is an architectural breakdown of how LibPilot restructures package exploration for modern developers and autonomous AI code agents.&lt;/p&gt;




&lt;h2&gt;
  
  
  Intent-Based Discovery and Global Search Architecture
&lt;/h2&gt;

&lt;p&gt;Traditional search engines require users to input the exact name or strict keyword of a library. LibPilot introduces a dual-input architecture on its home page to eliminate this constraint:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Direct Registry Querying:&lt;/strong&gt; Users can input full or partial package names into the global search bar to instantly surface clean, structured, and typed suggestions directly from the live NPM ecosystem database.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contextual AI Recommendations:&lt;/strong&gt; For scenarios where the ideal package is unknown, developers can type out a complete description of their project architecture or system constraints (for example: "a lightweight, typed state management engine that handles server-side rendering natively"). LibPilot's internal AI agent processes the functional requirements and suggests production-ready libraries suited for that stack.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Continuous Context AI and Interactive Onboarding
&lt;/h2&gt;

&lt;p&gt;A core goal of the platform is reducing developer friction and maintaining deployment momentum. LibPilot transitions static package documentation into an interactive environment:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Unlimited AI Chat Architecture:&lt;/strong&gt; Once a library is selected, users can initiate a continuous, context-aware AI chat directly inside the hub. This allows for immediate questions regarding framework compatibility, performance trade-offs, and custom edge cases without changing tabs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI-Generated Implementation Guides:&lt;/strong&gt; The integrated AI engine evaluates the target package to instantly compile environmental setup guidelines, configuration boilerplate, and exact terminal commands tailored to specific execution workflows.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Granular Real-Time Package Telemetry
&lt;/h2&gt;

&lt;p&gt;When auditing a specific library, LibPilot maps complete technical data points across a unified, minimalist panel. Rather than cross-referencing multiple platform registries, developers gain instant access to structural package metrics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Identity Verification:&lt;/strong&gt; Displays the official Package Name, Package Description, current active Version, and categorized Package Tags.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ecosystem Metrics:&lt;/strong&gt; Tracks the absolute operational footprint via Unpacked Package Size, Total Files bundled in the archive, and verified License compliance headers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source Endpoints:&lt;/strong&gt; Fast-tracks source access with direct triggers to the official Package Home Page, active Git Repository, and standalone Documentation manuals.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clean Dependency and Dev Dependency Lists:&lt;/strong&gt; Shows two clear, dedicated containers displaying the exact list of Dependencies and Dev Dependencies required by the package, complete with their semantic version codes and total package counts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintainer Attribution:&lt;/strong&gt; Verifies code provenance by surfacing official Contributors/Maintainers alongside their verified contact endpoints, alongside the exact Last Update timestamp to easily spot unmaintained code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terminal Installation Triggers:&lt;/strong&gt; Out-of-the-box support for copying ready-to-run terminal installation strings optimized for npm, yarn, pnpm, and bun.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Built for Engineering Velocity
&lt;/h2&gt;

&lt;p&gt;LibPilot acts as a powerful web-based bridge between the massive registry registry and your local setup. It replaces cluttered configuration workflows with real-time operational metrics and deep-context automation.&lt;/p&gt;

&lt;p&gt;Explore the live engine and leverage AI insights for your next development environment directly at the official platform: &lt;a href="https://libpilot.motionmind.me" rel="noopener noreferrer"&gt;https://libpilot.motionmind.me&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>ai</category>
      <category>npm</category>
    </item>
    <item>
      <title>Why Most Developers Never Finish Their Projects</title>
      <dc:creator>Saiful Siam</dc:creator>
      <pubDate>Tue, 16 Jun 2026 14:42:15 +0000</pubDate>
      <link>https://dev.to/motionmind2007/why-most-developers-never-finish-their-projects-7nn</link>
      <guid>https://dev.to/motionmind2007/why-most-developers-never-finish-their-projects-7nn</guid>
      <description>&lt;p&gt;Starting a new project feels exciting.&lt;/p&gt;

&lt;p&gt;A new idea appears, the first few lines of code are written, the design starts coming together, and everything feels possible.&lt;/p&gt;

&lt;p&gt;But after some time, many projects slowly disappear.&lt;/p&gt;

&lt;p&gt;The repository stays untouched.&lt;br&gt;
The last commit becomes weeks or months old.&lt;br&gt;
The idea that once felt amazing becomes another unfinished folder.&lt;/p&gt;

&lt;p&gt;This happens to many developers.&lt;/p&gt;

&lt;p&gt;The problem is usually not a lack of intelligence or creativity.&lt;/p&gt;

&lt;p&gt;The problem is finishing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Difference Between Starting and Building
&lt;/h2&gt;

&lt;p&gt;Starting a project is easy.&lt;/p&gt;

&lt;p&gt;Almost every developer has experienced the excitement of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating a new repository&lt;/li&gt;
&lt;li&gt;Choosing a tech stack&lt;/li&gt;
&lt;li&gt;Designing the UI&lt;/li&gt;
&lt;li&gt;Writing the first components&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The first 10% of a project is often the most enjoyable part.&lt;/p&gt;

&lt;p&gt;But real building starts when the excitement disappears.&lt;/p&gt;

&lt;p&gt;When you need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix unexpected bugs&lt;/li&gt;
&lt;li&gt;Refactor messy code&lt;/li&gt;
&lt;li&gt;Make difficult decisions&lt;/li&gt;
&lt;li&gt;Handle boring tasks&lt;/li&gt;
&lt;li&gt;Continue without motivation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is where many projects stop.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorial Knowledge Does Not Automatically Become Real Experience
&lt;/h2&gt;

&lt;p&gt;One of the biggest reasons developers don't finish projects is staying in learning mode forever.&lt;/p&gt;

&lt;p&gt;Learning is important.&lt;/p&gt;

&lt;p&gt;But there is a difference between:&lt;/p&gt;

&lt;p&gt;"I know how to build this"&lt;/p&gt;

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

&lt;p&gt;"I actually built this."&lt;/p&gt;

&lt;p&gt;You can watch dozens of tutorials about authentication, databases, APIs, or frameworks.&lt;/p&gt;

&lt;p&gt;But the real lessons appear when you try to combine everything into a real product.&lt;/p&gt;

&lt;p&gt;A finished imperfect project teaches more than a perfect tutorial.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trap of Perfectionism
&lt;/h2&gt;

&lt;p&gt;Many developers delay releasing because they want everything to be perfect.&lt;/p&gt;

&lt;p&gt;The UI must be perfect.&lt;br&gt;
The code must be perfect.&lt;br&gt;
The architecture must be perfect.&lt;/p&gt;

&lt;p&gt;But the truth is:&lt;/p&gt;

&lt;p&gt;The first version of almost anything is not perfect.&lt;/p&gt;

&lt;p&gt;Great software is usually created through improvement.&lt;/p&gt;

&lt;p&gt;A small working version gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real feedback&lt;/li&gt;
&lt;li&gt;Real problems to solve&lt;/li&gt;
&lt;li&gt;Real users&lt;/li&gt;
&lt;li&gt;Real learning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A project that exists can improve.&lt;/p&gt;

&lt;p&gt;A project that is only an idea cannot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shiny Object Syndrome
&lt;/h2&gt;

&lt;p&gt;Technology changes quickly.&lt;/p&gt;

&lt;p&gt;A developer starts building something with one stack.&lt;/p&gt;

&lt;p&gt;Then a new framework appears.&lt;/p&gt;

&lt;p&gt;A new library looks interesting.&lt;/p&gt;

&lt;p&gt;A new trend starts.&lt;/p&gt;

&lt;p&gt;Suddenly the old project feels boring.&lt;/p&gt;

&lt;p&gt;So they restart.&lt;/p&gt;

&lt;p&gt;Again and again.&lt;/p&gt;

&lt;p&gt;The result?&lt;/p&gt;

&lt;p&gt;Many beginnings.&lt;br&gt;
Few endings.&lt;/p&gt;

&lt;p&gt;Learning new technology is good, but constantly switching prevents growth.&lt;/p&gt;

&lt;h2&gt;
  
  
  Motivation Starts Projects, Discipline Finishes Them
&lt;/h2&gt;

&lt;p&gt;Motivation is powerful at the beginning.&lt;/p&gt;

&lt;p&gt;It helps you start.&lt;/p&gt;

&lt;p&gt;But motivation is temporary.&lt;/p&gt;

&lt;p&gt;Some days you will not feel inspired.&lt;br&gt;
Some days coding will feel difficult.&lt;/p&gt;

&lt;p&gt;That is normal.&lt;/p&gt;

&lt;p&gt;The developers who finish projects are not always the most motivated ones.&lt;/p&gt;

&lt;p&gt;They are the ones who continue even when the excitement is gone.&lt;/p&gt;

&lt;p&gt;Consistency beats intensity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Small Projects Create Big Skills
&lt;/h2&gt;

&lt;p&gt;Many developers think every project needs to be a huge startup idea.&lt;/p&gt;

&lt;p&gt;It doesn't.&lt;/p&gt;

&lt;p&gt;A small completed project teaches:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to structure code&lt;/li&gt;
&lt;li&gt;How to debug&lt;/li&gt;
&lt;li&gt;How to handle mistakes&lt;/li&gt;
&lt;li&gt;How to deploy&lt;/li&gt;
&lt;li&gt;How to maintain software&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finishing small things builds the ability to finish bigger things.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Goal Is Not Just Writing Code
&lt;/h2&gt;

&lt;p&gt;A developer is not only someone who writes code.&lt;/p&gt;

&lt;p&gt;A developer solves problems.&lt;/p&gt;

&lt;p&gt;And solving problems requires:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Patience&lt;/li&gt;
&lt;li&gt;Decision making&lt;/li&gt;
&lt;li&gt;Communication&lt;/li&gt;
&lt;li&gt;Persistence&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The hardest part of software development is often not syntax.&lt;/p&gt;

&lt;p&gt;It is staying with a problem long enough to solve it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;The world is not lacking ideas.&lt;/p&gt;

&lt;p&gt;Developers have thousands of ideas every day.&lt;/p&gt;

&lt;p&gt;The difference is made by the people who keep working after the excitement disappears.&lt;/p&gt;

&lt;p&gt;Start small.&lt;br&gt;
Build consistently.&lt;br&gt;
Finish what you start.&lt;/p&gt;

&lt;p&gt;Because a completed project, even an imperfect one, will always teach you more than an unfinished perfect idea.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>learning</category>
      <category>career</category>
    </item>
    <item>
      <title>How I Built a Reactive State System in Pure JavaScript</title>
      <dc:creator>Saiful Siam</dc:creator>
      <pubDate>Sun, 14 Jun 2026 05:58:58 +0000</pubDate>
      <link>https://dev.to/motionmind2007/how-i-built-a-reactive-state-system-in-pure-javascript-1lj</link>
      <guid>https://dev.to/motionmind2007/how-i-built-a-reactive-state-system-in-pure-javascript-1lj</guid>
      <description>&lt;p&gt;When I started building Levelo JS, one of the most interesting challenges was creating a reactive state system.&lt;/p&gt;

&lt;p&gt;At first, I wanted something that felt similar to React. My goal was to make state access simple and intuitive, where developers could work with state values directly without extra function calls.&lt;/p&gt;

&lt;p&gt;But once I started implementing it, I quickly realized that building a reactive system is much harder than it looks.&lt;/p&gt;

&lt;h2&gt;
  
  
  The First Idea
&lt;/h2&gt;

&lt;p&gt;My original plan was to create a getter/setter system where state values could be accessed directly, similar to how developers usually work with variables.&lt;/p&gt;

&lt;p&gt;On paper, it sounded simple.&lt;/p&gt;

&lt;p&gt;In reality, it introduced many challenges.&lt;/p&gt;

&lt;p&gt;The framework needs to know exactly when a value is being read, when it changes, and which parts of the UI depend on that value. Handling all of that correctly without adding unnecessary complexity turned out to be much more difficult than I expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rethinking the API
&lt;/h2&gt;

&lt;p&gt;Instead of spending weeks trying to perfect the original idea, I decided to focus on building a working MVP first.&lt;/p&gt;

&lt;p&gt;That's when I started experimenting with a function-based approach.&lt;/p&gt;

&lt;p&gt;The API eventually became:&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;state&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;levelojs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;state&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="c1"&gt;// UI&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This approach felt much simpler to implement while still providing the reactive behavior I wanted.&lt;/p&gt;

&lt;p&gt;Interestingly, this design ended up being closer to SolidJS than React.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building It
&lt;/h2&gt;

&lt;p&gt;I wasn't working completely alone.&lt;/p&gt;

&lt;p&gt;Part of the implementation was something I explored together with AI while experimenting with different ideas and approaches.&lt;/p&gt;

&lt;p&gt;The goal wasn't to copy another framework.&lt;/p&gt;

&lt;p&gt;The goal was to understand how reactivity actually works behind the scenes and then build a system that fits the design philosophy of Levelo JS.&lt;/p&gt;

&lt;p&gt;Once the function-based API was in place, many parts of the system became easier to reason about.&lt;/p&gt;

&lt;p&gt;The implementation became cleaner, debugging became simpler, and progress became much faster.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;This project taught me something important:&lt;/p&gt;

&lt;p&gt;The first idea is not always the best idea.&lt;/p&gt;

&lt;p&gt;Sometimes developers spend too much time chasing the "perfect" solution when a simpler solution can move the project forward much faster.&lt;/p&gt;

&lt;p&gt;I still find the direct getter/setter approach interesting, and I may revisit it in the future.&lt;/p&gt;

&lt;p&gt;But for an MVP, the function-based API was the right decision.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Building a reactive state system taught me that reactivity is not magic.&lt;/p&gt;

&lt;p&gt;Behind every simple API, there is a lot of design, experimentation, and problem-solving.&lt;/p&gt;

&lt;p&gt;Levelo JS is still evolving, and there are many things I want to improve.&lt;/p&gt;

&lt;p&gt;But creating the state system was one of the moments where I learned the most about framework development and how modern JavaScript libraries work under the hood.&lt;/p&gt;

&lt;p&gt;If you're building your own library or framework, don't be afraid to choose the simpler solution first.&lt;/p&gt;

&lt;p&gt;You can always improve it later.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>opensource</category>
    </item>
    <item>
      <title>What Nobody Told Me About Maintaining an Open Source Project</title>
      <dc:creator>Saiful Siam</dc:creator>
      <pubDate>Sat, 13 Jun 2026 06:37:20 +0000</pubDate>
      <link>https://dev.to/motionmind2007/what-nobody-told-me-about-maintaining-an-open-source-project-307m</link>
      <guid>https://dev.to/motionmind2007/what-nobody-told-me-about-maintaining-an-open-source-project-307m</guid>
      <description>&lt;p&gt;I am a solo learner. I started coding last year with the help of AI and sometimes without any tutorials or courses.&lt;/p&gt;

&lt;p&gt;At first, I thought this journey would be easier. But soon I realized something important — no AI or tool can fully solve the real problems I was facing as a developer.&lt;/p&gt;

&lt;p&gt;I used AI a lot. It explained things with confidence and even provided code.&lt;/p&gt;

&lt;p&gt;But when I ran that code in my terminal, many times it didn’t work.&lt;/p&gt;

&lt;p&gt;That’s when I understood something important: AI can guide, but it cannot replace understanding.&lt;/p&gt;

&lt;p&gt;After facing these issues, I changed my way of learning.&lt;/p&gt;

&lt;p&gt;Instead of blindly trusting AI, I started:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Finding real open-source projects
&lt;/li&gt;
&lt;li&gt;Studying how they were built
&lt;/li&gt;
&lt;li&gt;Listing important topics from those projects
&lt;/li&gt;
&lt;li&gt;Reading documentation carefully
&lt;/li&gt;
&lt;li&gt;Asking AI to explain specific lines of code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This helped me understand real-world code better.&lt;/p&gt;

&lt;p&gt;From this learning journey, I realized something:&lt;/p&gt;

&lt;p&gt;I should also build my own open-source projects.&lt;/p&gt;

&lt;p&gt;At first, I believed that creating a powerful project could automatically bring attention and users.&lt;/p&gt;

&lt;p&gt;But I was wrong.&lt;/p&gt;

&lt;p&gt;I made a mistake — I was not active on any platform.&lt;/p&gt;

&lt;p&gt;I was just coding inside VS Code, without communication or sharing my work anywhere.&lt;/p&gt;

&lt;p&gt;Then I realized:&lt;/p&gt;

&lt;p&gt;Being a developer is not only about coding. Visibility and communication are also important.&lt;/p&gt;

&lt;p&gt;After that realization, I started being active on platforms like Dev.to, LinkedIn, and other developer communities.&lt;/p&gt;

&lt;p&gt;I started posting my work and sharing my progress.&lt;/p&gt;

&lt;p&gt;Even though I didn’t get many comments, I started getting reactions and engagement. That small feedback gave me motivation.&lt;/p&gt;

&lt;p&gt;From this journey, I learned something important:&lt;/p&gt;

&lt;p&gt;Open source is not only about code. It is about helping other developers, sharing knowledge, and being consistent and visible.&lt;/p&gt;

&lt;p&gt;A developer should not only code silently but also participate in the community.&lt;/p&gt;

&lt;p&gt;Now I understand that coding is only one part of being a developer. Community, communication, and consistency are equally important.&lt;/p&gt;

&lt;p&gt;And I will continue building open source projects while staying active in developer platforms.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>javascript</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
    <item>
      <title>What I Learned Building a JavaScript Framework from Scratch at 18!</title>
      <dc:creator>Saiful Siam</dc:creator>
      <pubDate>Fri, 12 Jun 2026 06:23:27 +0000</pubDate>
      <link>https://dev.to/motionmind2007/what-i-learned-building-a-javascript-framework-from-scratch-at-18-5252</link>
      <guid>https://dev.to/motionmind2007/what-i-learned-building-a-javascript-framework-from-scratch-at-18-5252</guid>
      <description>&lt;p&gt;Whenever I used JavaScript frameworks like React, Next.js, or SvelteKit to build e-commerce sites and web applications, one question always stuck in my mind: &lt;strong&gt;"How does it actually work under the hood?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;During my recent Eid vacation, I decided to stop just using them and try building one myself. Here is the story of how &lt;strong&gt;Levelo JS&lt;/strong&gt; was born.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Spark of Curiosity
&lt;/h3&gt;

&lt;p&gt;I started by asking Gemini to explain the core mechanics of modern JavaScript frameworks. That is when I learned about how compilers work—specifically, how they transform JSX-like syntax into pure, optimized vanilla JavaScript DOM operations. &lt;/p&gt;

&lt;p&gt;To dig deeper, I spent days reading through the open-source compiler code of &lt;strong&gt;SolidJS&lt;/strong&gt; and &lt;strong&gt;React&lt;/strong&gt;. The fine-grained reactivity architecture of SolidJS fascinated me the most. &lt;/p&gt;

&lt;p&gt;Armed with this knowledge, I teamed up with Gemini to brainstorm and research the architecture. After intense experimentation, we successfully built &lt;strong&gt;Levelo JS&lt;/strong&gt; — a lightweight, zero-runtime, Virtual-DOM-free JavaScript framework built entirely from scratch.&lt;/p&gt;




&lt;h3&gt;
  
  
  Coding on a Mobile Phone 📱
&lt;/h3&gt;

&lt;p&gt;The journey was extra challenging and interesting because I was at my village for the holidays and didn't have access to my laptop or PC. &lt;/p&gt;

&lt;p&gt;Driven by pure passion, I coded the entire core framework (up to v1.0.4) on my &lt;strong&gt;Android phone using Termux and the Acode editor&lt;/strong&gt;. Because I had already thoroughly studied the documentation of React, SolidJS, and Svelte, I managed to build the initial core architecture in just &lt;strong&gt;15 days&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  The Hardest Challenge: Building a Client-Side Router
&lt;/h3&gt;

&lt;p&gt;Since Levelo JS is designed for Single Page Applications (SPA), it absolutely needed a client-side routing mechanism. &lt;/p&gt;

&lt;p&gt;Building this routing system from scratch was the hardest part of the project. It took me 2 entire days of continuous debugging just to get the basic routing features stable. While there might still be minor edge-case bugs, I am actively identifying and fixing them as the framework evolves.&lt;/p&gt;




&lt;h3&gt;
  
  
  My Biggest Takeaway
&lt;/h3&gt;

&lt;p&gt;Building Levelo JS taught me that as developers, we shouldn't just blindly memorize how to use tools like Next.js or React. We need to look deeper and understand &lt;strong&gt;how they work under the hood&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Understanding the internals makes you a better software engineer and helps you write significantly faster, more optimized code for production.&lt;/p&gt;

&lt;p&gt;I would love to get your feedback on the architecture! &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔗 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com" rel="noopener noreferrer"&gt;MotionMind2007/Levelo-Js&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔗 &lt;strong&gt;Documentation:&lt;/strong&gt; &lt;a href="https://motionmind.me" rel="noopener noreferrer"&gt;levelojs.motionmind.me&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Building a Frontend Framework from Scratch: Introducing Levelo JS</title>
      <dc:creator>Saiful Siam</dc:creator>
      <pubDate>Thu, 11 Jun 2026 12:27:54 +0000</pubDate>
      <link>https://dev.to/motionmind2007/building-a-frontend-framework-from-scratch-introducing-levelo-js-54ci</link>
      <guid>https://dev.to/motionmind2007/building-a-frontend-framework-from-scratch-introducing-levelo-js-54ci</guid>
      <description>&lt;p&gt;As developers, we often use frameworks every day without thinking much about how they work internally.&lt;/p&gt;

&lt;p&gt;A while ago, I started exploring frontend architecture more deeply. I wanted to understand what happens behind components, state management, reactivity, and rendering systems.&lt;/p&gt;

&lt;p&gt;That curiosity eventually led me to build my own frontend framework.&lt;/p&gt;

&lt;p&gt;Today, I'm excited to share &lt;strong&gt;Levelo JS&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Levelo JS?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Levelo JS is a frontend framework built completely from scratch in JavaScript under the Motion Mind brand.&lt;/p&gt;

&lt;p&gt;The framework is designed around a few core ideas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No Virtual DOM&lt;/li&gt;
&lt;li&gt;Signal-based reactivity&lt;/li&gt;
&lt;li&gt;Small bundle size&lt;/li&gt;
&lt;li&gt;SPA-focused architecture&lt;/li&gt;
&lt;li&gt;Simple developer experience&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Current core package version: &lt;strong&gt;levelojs v1.2.0&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The ecosystem also includes a CLI tool:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx create-levelo-app my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why Build Another Framework?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The goal was never to create "the next React" or replace existing frameworks.&lt;/p&gt;

&lt;p&gt;The real goal was to learn by building.&lt;/p&gt;

&lt;p&gt;I wanted to understand:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How reactivity systems work&lt;/li&gt;
&lt;li&gt;How rendering pipelines are designed&lt;/li&gt;
&lt;li&gt;How state updates affect the UI&lt;/li&gt;
&lt;li&gt;How framework architecture evolves from simple ideas&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Building everything from scratch taught me far more than simply reading documentation ever could.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Signal-Based State Management&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the core concepts in Levelo JS is signal-based reactivity.&lt;/p&gt;

&lt;p&gt;A simple counter 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;state&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;levelojs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;state&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; 
      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;()}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/h2&amp;gt;&lt;/span&gt;&lt;span class="err"&gt; 
&lt;/span&gt;      &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;button&lt;/span&gt; &lt;span class="nx"&gt;onclick&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)}&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;Level&lt;/span&gt; &lt;span class="nx"&gt;Up&lt;/span&gt; &lt;span class="err"&gt;➔&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/button&amp;gt;             &lt;/span&gt;&lt;span class="err"&gt; 
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt;&lt;/span&gt;&lt;span class="err"&gt; 
&lt;/span&gt;  &lt;span class="p"&gt;);&lt;/span&gt; 
&lt;span class="p"&gt;}&lt;/span&gt; 
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;Counter&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The framework updates only what needs to change, without relying on a Virtual DOM.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built Under Motion Mind&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Levelo JS is being developed under Motion Mind, an initiative focused on next-generation software and AI solutions.&lt;/p&gt;

&lt;p&gt;The vision behind Motion Mind is simple:&lt;/p&gt;

&lt;p&gt;Build useful software.&lt;br&gt;
Explore new ideas.&lt;br&gt;
Share the journey through open source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Personal Milestone&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One detail that makes this project special to me is how it started.&lt;/p&gt;

&lt;p&gt;Up to version 1.0.4, Levelo JS was built entirely on an Android phone using Termux and acode.&lt;/p&gt;

&lt;p&gt;What started as experimentation on a mobile device eventually grew into a complete open-source framework with its own CLI, documentation site, and ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explore Levelo JS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Documentation:&lt;br&gt;
&lt;a href="https://levelojs.motionmind.me/" rel="noopener noreferrer"&gt;https://levelojs.motionmind.me/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/MotionMind2007/Levelo-Js" rel="noopener noreferrer"&gt;https://github.com/MotionMind2007/Levelo-Js&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open for Collaboration&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Levelo JS is open source and actively evolving.&lt;/p&gt;

&lt;p&gt;If you're interested in frontend architecture, framework design, JavaScript internals, or open-source development, I'd love to hear your thoughts and feedback.&lt;/p&gt;

&lt;p&gt;Every suggestion, discussion, and contribution helps move the project forward.&lt;/p&gt;

&lt;p&gt;Thanks for reading.&lt;/p&gt;

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