DEV Community

Ali Hamza
Ali Hamza

Posted on

Day 94 of Learning MERN Stack

Hello Dev Community! 👋

It is officially Day 94 of my 100-day full-stack engineering track! 🎯 We are just 6 days away from finishing this massive timeline. After spending weeks deep in database optimization and complex query structures, I decided to shift my focus back to where it all begins: Core Web Fundamentals (Pure HTML, CSS, and Vanilla JavaScript). 🚀🌐

As developers, it's easy to get comfortable using frameworks like React or libraries that handle everything out-of-the-box. But without a deep, rock-solid grip on native DOM manipulation and browser APIs, you can never truly write clean, performant frontend code.

Today, I engineered two core client-side mini-apps from scratch to test my fundamental layout and event handling workflows.


🧠 Breaking Down Today's Native Implementations

As shown inside my local testing builds across "Screenshot (208).png" and "Screenshot (212).png", here is what I engineered under the hood:

1. Project 1: Dynamic Age Calculator

  • The Concept: A modern interface where users input their birth criteria and evaluate exact time spans relative to target dates.
  • The Core Tech (As referenced in "Screenshot (208).png"):
    • Leveraged the native JavaScript Date() constructor to parse custom user timestamps.
    • Wrote precision difference mathematics to cleanly account for varying days in months and boundary leaps.
    • Used direct DOM selection to swap node text content dynamically without refreshing the page state.

2. Project 2: Interactive Drag & Drop Interface

  • The Concept: A foundational workspace split into distinct container frames, allowing components to move interactively across grid layouts.
  • The Core Tech (As referenced in "Screenshot (212).png"):
    • Stepped away from external libraries and built it using the native HTML5 Drag and Drop API.
    • Configured explicit event listeners: dragstart on draggable item cards, along with dragover and drop boundaries on parent layout containers.
    • Implemented dynamic DOM element appending (appendChild) to seamlessly pass targeted cards between states while preserving styling rules.

💡 The Technical Win: Why Vanilla JavaScript Matters

When you rely entirely on third-party state managers or framework wrappers, your application footprint grows heavier. Understanding browser events at the native layer allows you to manipulate elements directly with zero runtime library overhead. It teaches you how the browser renders pixels, optimizes re-paints, and registers event loops!


🎯 Target Milestones for Tomorrow (Day 95)

The journey continues as we lock in our core engineering stability:

  • Building more Core JS Apps focusing on Web Storage APIs (localStorage) and custom event flows.
  • Deepening my understanding of asynchronous fetching mechanisms (fetch, async/await) using pure native structures.

💬 Let's Connect!

To my fellow engineers: How often do you step back from frameworks to build with pure Vanilla JavaScript? Do you believe strong fundamental mastery is the ultimate cheat code for picking up any new frontend tool? Let's discuss in the comments!

The complete fundamental open-source tracking repository updates daily on GitHub!
[Links in the Comments]

94 days down. Foundations strong. 6 more days to a spectacular finish! 🚀

Top comments (0)