DEV Community

Ali Hamza
Ali Hamza

Posted on

Day 98 of Learning MERN Stack

Hello Dev Community! πŸ‘‹

It is officially Day 98 of my 100-day full-stack engineering track! 🎯 We are just 48 hours away from finishing this incredible 100-day journey. Today, I built an interactive, retrosport-style Hacker Terminal Simulator using absolutely zero external frameworksβ€”just Pure HTML, CSS, and Vanilla JavaScript! πŸ–₯️⚑

Many developers take terminal log animations for granted, but creating sequential execution text flows and writing real-time moving indicator text loops requires a strong grasp of asynchronous queue control and string runtime updates.


🧠 Under the Hood of the Day 98 Terminal Simulator

As shown inside my localized sandbox environments across "Screenshot (220).png" and "Screenshot (221).png", the core engine implements a clean, native terminal execution chain:

1. Sequential Asynchronous Log Queues (Promises & setTimeout)

  • Instead of appending all terminal messages to the screen at once, I engineered a custom async pacing function using Native JS timeouts wrapped inside promises.
  • This allows lines like Searching Files ... and Detect Some Files with Password ... to await completion of preceding routines, simulating genuine database lookups and processing latencies.

2. Real-Time Moving Dots Engine (setInterval)

  • To capture a true console processing aesthetic, I implemented a sub-loop configuration that targets active elements and continuously cycles text states.
  • It increments loading dots sequentially up to a specific index threshold before clearing the text stream buffer back to a single baseline point, producing a seamless, real-time animation loop ("Screenshot (220).png").

3. Execution Lifecycle Handlers

  • Once the process array finishes scanning all system values, a final execution routine triggers, printing the final status payload cleanly onto the view panel: You are Hacked! ... ("Screenshot (221).png").

πŸ’‘ The Architectural Win: Non-Blocking Event Loops

By structuring these intervals properly using Vanilla JS event handlers, the browser can execute text mutations smoothly without causing UI thread freezing. The main thread remains light and responsive while the background timing handlers append data logs directly to the viewport layer.


🎯 Target Milestones for Tomorrow (Day 99)

The penultimate day is coming up fast! Tomorrow:

  • Designing advanced component interfaces focusing on custom viewport interactions.
  • Structuring the final production presentation ready for Day 100.

πŸ’¬ Let's Connect!

To my fellow full-stack and frontend devs: Do you still use simple CSS keyframes for text loading loops, or do you prefer controlling string buffers directly via raw JavaScript engines for granular control? Let's talk optimization steps down below!

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

98 days down. Consistency over everything. Almost at the finish line! πŸš€

Top comments (0)