<?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: Aisha Muhyiddeen Ahmad</title>
    <description>The latest articles on DEV Community by Aisha Muhyiddeen Ahmad (@humairamuhyiddeen).</description>
    <link>https://dev.to/humairamuhyiddeen</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%2F1488353%2Feb9133b0-06fb-495a-838d-7d8c8c0424cb.png</url>
      <title>DEV Community: Aisha Muhyiddeen Ahmad</title>
      <link>https://dev.to/humairamuhyiddeen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/humairamuhyiddeen"/>
    <language>en</language>
    <item>
      <title>I Started With a 16-Week React Roadmap. It Ended Up Becoming Sandbox.</title>
      <dc:creator>Aisha Muhyiddeen Ahmad</dc:creator>
      <pubDate>Thu, 25 Jun 2026 12:08:06 +0000</pubDate>
      <link>https://dev.to/humairamuhyiddeen/i-started-with-a-16-week-react-roadmap-it-ended-up-becoming-sandbox-3pnh</link>
      <guid>https://dev.to/humairamuhyiddeen/i-started-with-a-16-week-react-roadmap-it-ended-up-becoming-sandbox-3pnh</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;I didn't start out trying to build a product.&lt;br&gt;
I started with a simple goal: learn React properly and move beyond tutorials and clone projects.&lt;br&gt;
To stay focused, I created a 16-week roadmap for myself. I wanted a structured path, but more importantly, I wanted proof that I was actually moving forward.&lt;br&gt;
As a developer, it's easy to get caught in a cycle of learning, building, and moving on to the next thing.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Finish a tutorial.&lt;/li&gt;
&lt;li&gt;Build a project.&lt;/li&gt;
&lt;li&gt;Solve a bug.&lt;/li&gt;
&lt;li&gt;Learn a new concept.&lt;/li&gt;
&lt;li&gt;Then move on to the next challenge without realizing how far you've come.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The strange part is that even when you're making progress, it doesn't always feel that way.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmvcs0x0f192rg0w20iqy.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmvcs0x0f192rg0w20iqy.png" alt=" " width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For a long time, a lot of my growth as a developer felt invisible.&lt;br&gt;
Not because I wasn't learning.&lt;br&gt;
Not because I wasn't building.&lt;/p&gt;

&lt;p&gt;But because many of the things that helped me grow never had a place to live.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The concepts I finally understood.&lt;br&gt;
The challenges I solved.&lt;br&gt;
The bugs that taught me important lessons.&lt;br&gt;
The small wins that never made it into a portfolio.&lt;/p&gt;

&lt;p&gt;As I worked through my roadmap, I realized I wanted a way to capture those moments.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0fu7e70jmi0noki000i4.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F0fu7e70jmi0noki000i4.png" alt=" " width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first, Sandbox was simply a React project I was building to practice what I was learning.&lt;br&gt;
But the more I worked on it, the more I found myself solving a problem I personally experienced.&lt;br&gt;
I wasn't just building a project anymore.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I was building a tool I wanted to use.&lt;br&gt;
That's how Sandbox was born.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is Sandbox?
&lt;/h2&gt;

&lt;p&gt;Sandbox is a simple space for developers to track the progress that usually gets lost between tutorials, commits, and shipped projects.&lt;br&gt;
Right now it includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Progress Tracker for concepts and study sessions&lt;/li&gt;
&lt;li&gt;A Challenge Tracker for bugs and coding challenges&lt;/li&gt;
&lt;li&gt;Milestones and reflections&lt;/li&gt;
&lt;li&gt;Dashboard insights based on your activity
It's still very early-stage.
There is no backend yet.
Data is stored locally.
The focus right now is learning, validating the idea, and understanding whether other developers experience the same problem.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I'm Sharing It Early
&lt;/h2&gt;

&lt;p&gt;I could keep building in private for months.&lt;br&gt;
But I've learned that feedback is more valuable than assumptions.&lt;br&gt;
So instead of waiting until everything is perfect, I'm putting it out there now.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn8wlpou98jrvpaygkxk3.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fn8wlpou98jrvpaygkxk3.png" alt=" " width="800" height="422"&gt;&lt;/a&gt;&lt;br&gt;
You can try Sandbox here:&lt;br&gt;
&lt;a href="https://sandbox-sooty-ten.vercel.app/" rel="noopener noreferrer"&gt;https://sandbox-sooty-ten.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you take a look, I'd love to know:&lt;br&gt;
Does this solve a problem you've experienced?&lt;br&gt;
What feels useful?&lt;br&gt;
What feels confusing?&lt;br&gt;
What would make you use it regularly?&lt;br&gt;
Thanks for reading.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;And if there's one thing building Sandbox has reminded me, it's this:&lt;br&gt;
Not all growth is loud, and not all progress belongs on a résumé.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>discuss</category>
      <category>community</category>
      <category>career</category>
      <category>wecoded</category>
    </item>
    <item>
      <title>Building the Learning Tracker the Part That Finally Made Everything “Real”.</title>
      <dc:creator>Aisha Muhyiddeen Ahmad</dc:creator>
      <pubDate>Wed, 19 Nov 2025 11:39:18 +0000</pubDate>
      <link>https://dev.to/humairamuhyiddeen/building-the-learning-tracker-the-part-that-finally-made-everything-real-5e9b</link>
      <guid>https://dev.to/humairamuhyiddeen/building-the-learning-tracker-the-part-that-finally-made-everything-real-5e9b</guid>
      <description>&lt;p&gt;This was the turning point.&lt;br&gt;
The moment &lt;strong&gt;Sandbox&lt;/strong&gt; stopped being &lt;strong&gt;“a dashboard idea”&lt;/strong&gt; and started feeling like an actual learning companion, something I could actually rely on.&lt;br&gt;
It happened when I started to build the Learning Tracker page.&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%2F735u02rl9cgdqwalipsw.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%2F735u02rl9cgdqwalipsw.png" alt=" " width="800" height="395"&gt;&lt;/a&gt;&lt;br&gt;
In my head, it sounded simple:&lt;br&gt;
A form inside a modal&lt;br&gt;
Log what I learned&lt;br&gt;
A table on the page to display the entries &lt;br&gt;
But from the first click, reality humbled me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The First Challenge:&lt;/strong&gt; The Form and the Table Were Living in Two Different Worlds&lt;br&gt;
My layout looked like this:&lt;br&gt;
A button on the page&lt;br&gt;
A modal that opens the form&lt;br&gt;
A table that stays on the page&lt;br&gt;
And somehow these two needed to talk.&lt;br&gt;
The answer introduced me to my first real React communication pattern:&lt;br&gt;
Passing Data Through Props&lt;br&gt;
&lt;code&gt;onAddRecord()&lt;br&gt;
&amp;lt;MyForm onAddRecord={handleNewRecords} closeForm={closeLearningTrackerForm} /&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The form (child) talks to the page (parent)&lt;br&gt;
The child calls the function → the parent receives the data → the table updates.&lt;br&gt;
That was my first “Ahh… this is how real React apps communicate” moment.&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%2Fmrwfh9ceoilcky1c87es.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%2Fmrwfh9ceoilcky1c87es.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;But Then… the Data Kept Disappearing&lt;/strong&gt;&lt;br&gt;
Everything worked until I navigated away.&lt;br&gt;
I’d add a new learning record &lt;br&gt;
The table updated…&lt;br&gt;
But when I refreshed or moved to another page?&lt;br&gt;
Gone.&lt;br&gt;
Clean slate.&lt;br&gt;
Fresh like nothing ever happened.&lt;br&gt;
That’s when it hit me:&lt;br&gt;
If the dashboard is supposed to track my growth, then the data must stay.&lt;br&gt;
So I added my first persistence layer: localStorage.&lt;br&gt;
&lt;code&gt;const [records, setRecords] = useLocalStorage("learnRecords", []);&lt;br&gt;
Then inside handleNewRecords, I saved updates straight into localStorage:&lt;br&gt;
localStorage.setItem("learnRecords", JSON.stringify(updatedRecords));&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I saved every learning record:&lt;br&gt;
refresh? still there&lt;br&gt;
navigate? still there&lt;br&gt;
close browser? still there&lt;br&gt;
That was the moment Sandbox finally started acting like a proper “companion,” not just UI.&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%2Fm1for31qnj4dx6ot7k60.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%2Fm1for31qnj4dx6ot7k60.png" alt=" " width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Turning Point: Auto-Updating Stats&lt;/strong&gt;&lt;br&gt;
Once data persistence worked perfectly, a new question popped up:&lt;br&gt;
“If Sandbox is tracking my learning, why should I manually update stats?”&lt;br&gt;
&lt;em&gt;Exactly.&lt;/em&gt;&lt;br&gt;
Manual stats made no sense.&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%2Fgh4lr5v5p4gq8fd0ui6i.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%2Fgh4lr5v5p4gq8fd0ui6i.png" alt=" " width="800" height="379"&gt;&lt;/a&gt;&lt;br&gt;
So I switched to event-based updates:&lt;br&gt;
Every time a new learning record comes in → recalculate hours&lt;br&gt;
Every new concept added → update the count instantly&lt;br&gt;
So I made the stats update automatically whenever a new learning record is added, no extra buttons, no manual syncing.&lt;br&gt;
Now the dashboard responds instantly:&lt;br&gt;
Hours spent&lt;br&gt;
Concepts learned&lt;/p&gt;

&lt;p&gt;Later, I’ll refactor this with Context so the syncing becomes even cleaner, but for now, the dashboard updates itself the moment I log something new.&lt;br&gt;
And that feels surprisingly good&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Learned&lt;/strong&gt; &lt;br&gt;
Data flow matters more than I thought&lt;br&gt;
Props → modal → parent page is a powerful pattern&lt;br&gt;
Persistence (localStorage) is the heart of any progress-based app&lt;br&gt;
Auto-syncing makes the dashboard feel alive&lt;br&gt;
This was the moment Sandbox stopped being an idea…&lt;br&gt;
and became something I trust.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>react</category>
      <category>software</category>
      <category>learning</category>
    </item>
    <item>
      <title>When One State Rules Them All</title>
      <dc:creator>Aisha Muhyiddeen Ahmad</dc:creator>
      <pubDate>Mon, 03 Nov 2025 10:28:20 +0000</pubDate>
      <link>https://dev.to/humairamuhyiddeen/when-one-state-rules-them-all-hbg</link>
      <guid>https://dev.to/humairamuhyiddeen/when-one-state-rules-them-all-hbg</guid>
      <description>&lt;p&gt;How I learned that structure decides behavior&lt;br&gt;
It started as a simple toggle, making the sidebar collapse.&lt;br&gt;
Turned into a full layout lesson in communication, structure, and shared state.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Challenge&lt;/strong&gt;&lt;br&gt;
The moment I added collapse behavior to my sidebar, everything else began to react like it had a mind of its own, the dashboard felt like it had lost its balance.&lt;br&gt;
At first, I thought the issue was styling. Maybe I needed better width control or transition effects.&lt;br&gt;
But the problem ran deeper. The sidebar knew when it was open or closed, but the layout didn’t.&lt;br&gt;
Each component was living in its own little world.&lt;br&gt;
That’s when I realized the problem wasn’t in the sidebar’s logic…&lt;br&gt;
 …it was where the logic lived.&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%2F4pqi8eh1zny11hlirere.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%2F4pqi8eh1zny11hlirere.png" alt=" " width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Behind the Build&lt;/strong&gt;&lt;br&gt;
At first, I placed my&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;useState
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;directly inside the Sidebar component. It made sense at the time. That’s where the toggle button lived, that’s where the action happened.&lt;br&gt;
A simple&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;useState
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;to manage open and close.&lt;br&gt;
But soon I noticed a problem:&lt;br&gt;
When the sidebar collapsed, the rest of the layout didn’t know what just happened. The header shifted, the content, and everything felt out of sync.&lt;/p&gt;

&lt;p&gt;So I lifted the state up to the Layout , the real parent of everything.&lt;br&gt;
That single change made all the difference:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const [isOpen, setIsOpen] = useState(true);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then I passed it down as props:&lt;br&gt;
To the Sidebar, to toggle it.&lt;br&gt;
To the Header, to adjust spacing and visibility.&lt;br&gt;
To the Main Content, to respond smoothly to layout shifts.&lt;br&gt;
Once I passed isOpen to the Header, everything finally aligned.&lt;/p&gt;

&lt;p&gt;The icons on the header when the sidebar isOpen stopped disappearing.&lt;br&gt;
The layout adjusted perfectly. And the dashboard started behaving as one connected system.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reflection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building my dashboard is like debugging my own thinking.&lt;br&gt;
It’s easy to focus on one part of the interface and forget the bigger picture it belongs to.&lt;/p&gt;

&lt;p&gt;That’s the quiet beauty of React, how a single shared state can bring scattered pieces into sync.&lt;br&gt;
And maybe, it’s not just a lesson in code but in connection too.&lt;br&gt;
When one truth is shared clearly, everything starts to align.&lt;br&gt;
Building my dashboard is like debugging my own thinking.&lt;br&gt;
It’s easy to focus on one part of the interface and forget the bigger picture it belongs to.&lt;br&gt;
Sometimes, it’s not the component that needs fixing,  it’s the structure that defines how everything connects.&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%2Fk2zbt4byfvbegjynzxw2.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%2Fk2zbt4byfvbegjynzxw2.png" alt=" " width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A single truth made the layout consistent.&lt;br&gt;
And in a way, that’s what leadership and design share&lt;br&gt;
In React, that shared understanding is state lifting.&lt;br&gt;
When communication is clear, behavior becomes predictable.&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>devjournal</category>
      <category>developer</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Giving My Dashboard a Voice</title>
      <dc:creator>Aisha Muhyiddeen Ahmad</dc:creator>
      <pubDate>Tue, 28 Oct 2025 10:35:01 +0000</pubDate>
      <link>https://dev.to/humairamuhyiddeen/giving-my-dashboard-a-voice-hnn</link>
      <guid>https://dev.to/humairamuhyiddeen/giving-my-dashboard-a-voice-hnn</guid>
      <description>&lt;p&gt;After building the base of my dashboard a space that grows as I grow.&lt;br&gt;
I wanted to give it something more than just structure “A Voice”&lt;br&gt;
A way to guide me, respond to my clicks, and reflect where I am in my little learning world.&lt;br&gt;
So, I started working on the Sidebar and Header, the parts that make a dashboard feel alive.&lt;/p&gt;

&lt;p&gt;It started with navigation.&lt;br&gt;
I was learning how to connect pages and how to make the flow using React Router.&lt;br&gt;
I learned how to define routes, switch between pages, and (my favorite part) how I can display the current page name dynamically on the header.&lt;br&gt;
It felt like giving my dashboard awareness. It felt like my code was whispering, “I see you. You’re here.”&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%2Flr8rujxvmcwgll8pej7r.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%2Flr8rujxvmcwgll8pej7r.png" alt=" " width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Active State and Layout Wrapping&lt;/strong&gt;&lt;br&gt;
Next, I discovered how to highlight the active page.&lt;br&gt;
It wasn’t just static links anymore; it was reactive, present.&lt;br&gt;
Then came the layout component, the quiet architecture that wraps everything together, the sidebar, header, and content together and each piece had to align. It taught me a bigger lesson about structure: even in code, everything needs a “home” that ties the pieces together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mapping Links&lt;/strong&gt;&lt;br&gt;
Instead of manually typing every link, I learned to map over an array to render multiple links.&lt;br&gt;
It felt like finding a new shortcut  cleaner, smarter, and scalable.&lt;br&gt;
Each link now lives in an array, easy to edit, easy to extend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Mystery of the Vanished Styles&lt;/strong&gt;&lt;br&gt;
Then came one of those classic developer moments.&lt;br&gt;
Suddenly, my Tailwind styles stopped working, everything disappeared.&lt;br&gt;
The colors. The spacing. My layout turned into plain HTML.&lt;br&gt;
I stared at my config, rewrote paths, and restarted. Nothing worked. After almost an hour of debugging I noticed I had accidentally removed &lt;code&gt;index.css&lt;/code&gt;from &lt;code&gt;main.jsx&lt;/code&gt; while setting up routes.&lt;br&gt;
Just one missing import.&lt;br&gt;
One tiny mistake that silenced everything.&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%2Fd8euncgaeez46reatob2.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%2Fd8euncgaeez46reatob2.png" alt=" " width="800" height="368"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;When It Finally Worked&lt;/strong&gt;&lt;br&gt;
When I fixed it and refreshed the page, my dashboard came back  brighter, organized, and present.&lt;br&gt;
The sidebar lit up as I clicked through links. The header whispered my location.&lt;br&gt;
Everything felt... connected.&lt;br&gt;
And I realized something: this dashboard isn’t just learning how to work.&lt;br&gt;
&lt;strong&gt;It’s learning how to speak.&lt;/strong&gt;&lt;br&gt;
To respond, to guide, to mirror how I move through my own learning journey still a little messy, but slowly finding rhythm.&lt;br&gt;
&lt;strong&gt;Quietly Building, Boldly Innovating&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>frontend</category>
      <category>learning</category>
      <category>programming</category>
    </item>
    <item>
      <title>A Dashboard That Grows With Me</title>
      <dc:creator>Aisha Muhyiddeen Ahmad</dc:creator>
      <pubDate>Fri, 24 Oct 2025 20:17:57 +0000</pubDate>
      <link>https://dev.to/humairamuhyiddeen/a-dashboard-that-grows-with-me-40hk</link>
      <guid>https://dev.to/humairamuhyiddeen/a-dashboard-that-grows-with-me-40hk</guid>
      <description>&lt;p&gt;I call it the SandBox, a dashboard that grows as I grow.&lt;/p&gt;

&lt;p&gt;Here’s the idea&lt;br&gt;
Instead of building a “complete” project at once, I learn one concept, practice it, and then bring it into my dashboard. Each card, widget, or feature becomes proof of what I’ve learned, something I truly understand.&lt;/p&gt;

&lt;p&gt;SandBox isn’t just another project. It’s my playground to experiment with what I’m learning in real-time from React components, navigation, and state management.&lt;br&gt;
Step 1: The Messy Lab - Here is where I learn new concepts, I get to try, fail, debug.&lt;/p&gt;

&lt;p&gt;Step 2: SandBox - Once I understand the concept, I rebuild it in my Sandbox as a feature with a little bit of UX thinking.&lt;br&gt;
This way, it becomes more than just a static showcase. It’s a living record of my learning journey, a space where every new concept has a purpose.&lt;/p&gt;

&lt;p&gt;No pressure to know everything at once. No need to learn features for the sake of completing a project. Just steady growth one step, one feature, one lesson at a time.&lt;br&gt;
Quietly Building, Boldly Innovating&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>devjournal</category>
      <category>developer</category>
      <category>react</category>
    </item>
  </channel>
</rss>
