<?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: Victory Nnaemeka</title>
    <description>The latest articles on DEV Community by Victory Nnaemeka (@victory_nnaemeka_b7b1d20f).</description>
    <link>https://dev.to/victory_nnaemeka_b7b1d20f</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%2F3929939%2F7cb12a6e-1383-483b-a169-1a41f5bad921.png</url>
      <title>DEV Community: Victory Nnaemeka</title>
      <link>https://dev.to/victory_nnaemeka_b7b1d20f</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/victory_nnaemeka_b7b1d20f"/>
    <language>en</language>
    <item>
      <title>Stop Prop Drilling: Why I’m Moving Towards Atomic Component Design in React</title>
      <dc:creator>Victory Nnaemeka</dc:creator>
      <pubDate>Fri, 15 May 2026 11:58:59 +0000</pubDate>
      <link>https://dev.to/victory_nnaemeka_b7b1d20f/stop-prop-drilling-why-im-moving-towards-atomic-component-design-in-react-2mpj</link>
      <guid>https://dev.to/victory_nnaemeka_b7b1d20f/stop-prop-drilling-why-im-moving-towards-atomic-component-design-in-react-2mpj</guid>
      <description>&lt;p&gt;Lessons learned on keeping React components clean, reusable, and maintainable in 2026.&lt;/p&gt;

&lt;h2&gt;
  
  
  tags: react, javascript, webdev, architecture
&lt;/h2&gt;

&lt;p&gt;As developers, we often start projects by throwing everything into one big component. It works at first, but as the app grows, you find yourself passing props down 5 levels deep. &lt;/p&gt;

&lt;p&gt;This is &lt;strong&gt;Prop Drilling&lt;/strong&gt;, and it's a productivity killer. Here is how I’ve started restructuring my React apps for better scalability.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ The "Atomic" Approach
&lt;/h2&gt;

&lt;p&gt;I’ve started breaking my UI into three distinct layers:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Atoms:&lt;/strong&gt; Small, pure components like &lt;code&gt;Button&lt;/code&gt;, &lt;code&gt;Input&lt;/code&gt;, or &lt;code&gt;Badge&lt;/code&gt;. They don't know about data; they only care about styles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Molecules:&lt;/strong&gt; Combinations of atoms. For example, a &lt;code&gt;SearchBar&lt;/code&gt; molecule that contains an &lt;code&gt;Input&lt;/code&gt; atom and a &lt;code&gt;Button&lt;/code&gt; atom.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Organisms:&lt;/strong&gt; Complex sections like a &lt;code&gt;Navbar&lt;/code&gt; or my &lt;code&gt;BlogFeed&lt;/code&gt;. These are the "smart" components that actually fetch data.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  💡 The Benefit of Context &amp;amp; Hooks
&lt;/h2&gt;

&lt;p&gt;Instead of passing data down manually, I’m leaning more into &lt;strong&gt;Custom Hooks&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of this:&lt;br&gt;
&lt;code&gt;&amp;lt;Profile user={user} theme={theme} lang={lang} /&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;I prefer this:&lt;br&gt;
&lt;code&gt;const { user } } = useAuth();&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It keeps the component signatures clean and makes testing (shoutout to Vitest!) much easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Why This Matters
&lt;/h2&gt;

&lt;p&gt;Building this way takes 10% more time at the start, but saves 50% of the time when you need to refactor or fix a bug six months later. &lt;/p&gt;

&lt;p&gt;If you are building a portfolio or a client app, treat your components like Lego bricks—small, sturdy, and easy to swap.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;How do you organize your React folders? Do you prefer a "feature-based" structure or a "component-type" structure? Let's discuss! 👇&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>javascript</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How I Built a High-Performance Developer Portfolio with React &amp; SEO Best Practices</title>
      <dc:creator>Victory Nnaemeka</dc:creator>
      <pubDate>Wed, 13 May 2026 19:32:15 +0000</pubDate>
      <link>https://dev.to/victory_nnaemeka_b7b1d20f/how-i-built-a-high-performance-developer-portfolio-with-react-seo-best-practices-2gdc</link>
      <guid>https://dev.to/victory_nnaemeka_b7b1d20f/how-i-built-a-high-performance-developer-portfolio-with-react-seo-best-practices-2gdc</guid>
      <description>&lt;p&gt;**&lt;br&gt;
Building a portfolio is a rite of passage for every developer. However, I didn’t just want a digital business card; I wanted a high-performance, SEO-optimized machine that actually reaches people. Here is the story of how I built mine, the challenges I faced, and the technical decisions I made.&lt;/p&gt;

&lt;p&gt;🛠 The Tech Stack&lt;br&gt;
To ensure the site was both fast and maintainable, I chose a modern stack:&lt;/p&gt;

&lt;p&gt;React (Vite): For a lightning-fast development experience and component-based architecture.&lt;/p&gt;

&lt;p&gt;Tailwind CSS: For a sleek, dark-themed UI without the overhead of massive CSS files.&lt;/p&gt;

&lt;p&gt;Framer Motion: To add subtle, professional animations that improve user engagement.&lt;/p&gt;

&lt;p&gt;Vercel: For seamless CI/CD and global hosting.&lt;/p&gt;

&lt;p&gt;🚧 Overcoming Challenges: Pivoting from EmailJS to Formspree&lt;br&gt;
One of the biggest hurdles was the contact form. Initially, I used EmailJS. While great for basic setups, I ran into "412 Precondition Failed" errors due to domain restrictions and reached subscription limits quickly during testing.&lt;/p&gt;

&lt;p&gt;Instead of getting stuck, I pivoted to Formspree. By using a simple fetch request to a secure endpoint, I removed the need for extra client-side libraries and bypassed the domain headache entirely.&lt;/p&gt;

&lt;p&gt;🔍 SEO &amp;amp; Technical "Under the Hood" Polish&lt;br&gt;
I spent significant time on the "invisible" parts of the site that many developers overlook:&lt;/p&gt;

&lt;p&gt;JSON-LD Structured Data: I implemented Schema.org protocols so search engines see me as a "Person" and a "Developer," not just a collection of div tags.&lt;/p&gt;

&lt;p&gt;Open Graph &amp;amp; Twitter Cards: I optimized my meta tags so that sharing my link on LinkedIn or X generates a beautiful, high-click-through preview.&lt;/p&gt;

&lt;p&gt;Performance Optimization: I used loading="lazy" for gallery images and preloaded critical hero assets to ensure a top-tier Lighthouse score.&lt;/p&gt;

&lt;p&gt;🚀 The Result&lt;br&gt;
The final product is a responsive, accessible portfolio that represents my growth as a Frontend &amp;amp; Mobile App Developer.&lt;/p&gt;

&lt;p&gt;Check it out live: &lt;a href="https://vicx-portfolio.vercel.app/" rel="noopener noreferrer"&gt;https://vicx-portfolio.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;📈 What’s Next?&lt;br&gt;
I’m now focusing on integrating the Dev.to API to pull my latest articles directly into my portfolio, keeping my content fresh and showing my commitment to the developer community.**&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>web3</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
