<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Shoaib Sid]]></title><description><![CDATA[Shoaib Sid]]></description><link>https://shoaibsid.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Mon, 07 Sep 2026 11:52:20 GMT</lastBuildDate><atom:link href="https://shoaibsid.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Motion UI with Framer Motion in 2025 — More Than Just Animations]]></title><description><![CDATA[✍️ By Shoaib — A Full-Stack Developer Sharing What Actually Works

🧠 TL;DR

Framer Motion is not just for pretty effects — it’s a serious tool for delivering smooth, accessible, and performant UI.

In 2025, micro-interactions, scroll-based animation...]]></description><link>https://shoaibsid.hashnode.dev/motion-ui-with-framer-motion-in-2025-more-than-just-animations</link><guid isPermaLink="true">https://shoaibsid.hashnode.dev/motion-ui-with-framer-motion-in-2025-more-than-just-animations</guid><category><![CDATA[framer-motion]]></category><category><![CDATA[motion-ui]]></category><category><![CDATA[Frontend Development]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[React]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[UI]]></category><dc:creator><![CDATA[Shoaib]]></dc:creator><pubDate>Sun, 13 Jul 2025 07:59:36 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1752393074489/2dfc30c6-a9ab-42eb-bd14-dcae9d4edb6f.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p>✍️ By Shoaib — A Full-Stack Developer Sharing What Actually Works</p>
</blockquote>
<h2 id="heading-tldr">🧠 TL;DR</h2>
<ul>
<li><p><strong>Framer Motion</strong> is not just for pretty effects — it’s a serious tool for delivering smooth, accessible, and performant UI.</p>
</li>
<li><p>In 2025, micro-interactions, scroll-based animations, and motion feedback aren’t just “cool” — they’re UX essentials.</p>
</li>
<li><p>I’ll show how I’ve used Framer Motion in real projects (like my portfolio and client work), how to avoid common mistakes, and how to make your animations <strong>production-ready</strong>.</p>
</li>
</ul>
<h2 id="heading-why-motion-ui-actually-matters-now">🚀 Why Motion UI Actually Matters Now</h2>
<p>Let’s be honest: I used to think animations were “fluff.”</p>
<p>But after working on multiple production projects, I’ve realized <strong>micro-interactions and intentional motion</strong> can:</p>
<ul>
<li><p>Improve user engagement</p>
</li>
<li><p>Guide attention (especially in forms, navigation)</p>
</li>
<li><p>Add brand identity</p>
</li>
<li><p>And yes — make your UI feel <em>alive</em></p>
</li>
</ul>
<p>But only when done right.</p>
<p>That’s where <strong>Framer Motion</strong> comes in.</p>
<h2 id="heading-what-is-framer-motion">🧰 What Is Framer Motion?</h2>
<p>Framer Motion is a production-ready animation library for React.</p>
<p>It gives you simple primitives like <code>motion.div</code>, <code>variants</code>, and <code>animatePresence</code> — all built with performance and accessibility in mind.</p>
<p>It’s built on the <strong>Popmotion</strong> engine but feels very “React” to use.</p>
<hr />
<h2 id="heading-how-i-use-framer-motion-in-my-projects">🛠 How I Use Framer Motion in My Projects</h2>
<p>Here’s how I’ve personally used Framer Motion across different projects:</p>
<h3 id="heading-1-subtle-page-transitions">1. <strong>Subtle Page Transitions</strong></h3>
<p>I used <code>AnimatePresence</code> with <code>motion.div</code> for smooth transitions between routes — especially in my portfolio and landing pages.</p>
<pre><code class="lang-javascript"><span class="hljs-keyword">import</span> { motion, AnimatePresence } <span class="hljs-keyword">from</span> <span class="hljs-string">"framer-motion"</span>;

<span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">AnimatePresence</span> <span class="hljs-attr">mode</span>=<span class="hljs-string">"wait"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">motion.div</span>
    <span class="hljs-attr">key</span>=<span class="hljs-string">{route}</span>
    <span class="hljs-attr">initial</span>=<span class="hljs-string">{{</span> <span class="hljs-attr">opacity:</span> <span class="hljs-attr">0</span> }}
    <span class="hljs-attr">animate</span>=<span class="hljs-string">{{</span> <span class="hljs-attr">opacity:</span> <span class="hljs-attr">1</span> }}
    <span class="hljs-attr">exit</span>=<span class="hljs-string">{{</span> <span class="hljs-attr">opacity:</span> <span class="hljs-attr">0</span> }}
    <span class="hljs-attr">transition</span>=<span class="hljs-string">{{</span> <span class="hljs-attr">duration:</span> <span class="hljs-attr">0.3</span> }}
  &gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">YourComponent</span> /&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">motion.div</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">AnimatePresence</span>&gt;</span></span>
</code></pre>
<p>These 300ms transitions <strong>soften the experience</strong> without overloading the UI.</p>
<h3 id="heading-2-button-feedback-amp-micro-interactions">2. <strong>Button Feedback &amp; Micro Interactions</strong></h3>
<p>Buttons are where users interact the most — yet most devs leave them static.</p>
<p>I use <strong>scale on tap</strong> to add tactile feedback:</p>
<pre><code class="lang-javascript">&lt;motion.button
  whileTap={{ <span class="hljs-attr">scale</span>: <span class="hljs-number">0.95</span> }}
  whileHover={{ <span class="hljs-attr">scale</span>: <span class="hljs-number">1.05</span> }}
  className=<span class="hljs-string">"btn-primary"</span>
/&gt;
</code></pre>
<p>It’s subtle, but it makes the experience feel way more responsive.</p>
<h3 id="heading-3-scroll-animations-without-scrolltrigger">3. <strong>Scroll Animations Without ScrollTrigger</strong></h3>
<p>With <code>whileInView</code> and <code>viewport</code> props, Framer Motion handles scroll-based entrance animations without any extra dependency.</p>
<pre><code class="lang-javascript">&lt;motion.div
  initial={{ <span class="hljs-attr">opacity</span>: <span class="hljs-number">0</span>, <span class="hljs-attr">y</span>: <span class="hljs-number">50</span> }}
  whileInView={{ <span class="hljs-attr">opacity</span>: <span class="hljs-number">1</span>, <span class="hljs-attr">y</span>: <span class="hljs-number">0</span> }}
  transition={{ <span class="hljs-attr">duration</span>: <span class="hljs-number">0.4</span> }}
  viewport={{ <span class="hljs-attr">once</span>: <span class="hljs-literal">true</span> }}
&gt;
  <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">YourSection</span> /&gt;</span></span>
&lt;/motion.div&gt;
</code></pre>
<p>Way smoother than handling scroll listeners manually.</p>
<hr />
<h2 id="heading-performance-tips">⚙️ Performance Tips</h2>
<p>A common myth: <strong>"Animations hurt performance."</strong></p>
<p>Yes, they can — if done poorly. Here’s how I avoid that:</p>
<ul>
<li><p>Animate only what’s visible (<code>viewport={{ once: true }}</code>)</p>
</li>
<li><p>Use GPU-accelerated properties (<code>transform</code>, not <code>top</code> or <code>left</code>)</p>
</li>
<li><p>Debounce exit transitions on route changes</p>
</li>
<li><p>Keep transition durations short and consistent</p>
</li>
<li><p>Avoid animating layout shifts that affect <strong>CLS</strong> (Cumulative Layout Shift)</p>
</li>
</ul>
<hr />
<h2 id="heading-accessibility-considerations">♿ Accessibility Considerations</h2>
<p>You don’t want animations to make your site feel dizzy.</p>
<p>Here's what I check:</p>
<ul>
<li><p>Respect user settings (<code>prefers-reduced-motion</code>)</p>
</li>
<li><p>Avoid overly complex motion that distracts</p>
</li>
<li><p>Give control over animated components when needed</p>
</li>
</ul>
<p>Access user preferences easily:</p>
<pre><code class="lang-javascript">jsCopyEditconst shouldReduceMotion = useReducedMotion();
</code></pre>
<hr />
<h2 id="heading-when-not-to-use-motion">💡 When Not to Use Motion</h2>
<p>Not every component needs motion. I usually avoid animations on:</p>
<ul>
<li><p>Loading skeletons (keep them fast and minimal)</p>
</li>
<li><p>Forms with strict validations (delays can feel laggy)</p>
</li>
<li><p>Hero sections with big background videos + motion (too heavy)</p>
</li>
</ul>
<p><strong>Remember:</strong> motion should serve UX, not just aesthetics.</p>
<hr />
<h2 id="heading-motion-ui-in-2025-where-its-headed">🔮 Motion UI in 2025: Where It’s Headed</h2>
<p>What I’m seeing now (and building toward):</p>
<ul>
<li><p>Component libraries like <strong>shadcn/ui</strong> and <strong>Radix UI</strong> integrating Framer Motion out-of-the-box</p>
</li>
<li><p>Design systems using <strong>motion tokens</strong></p>
</li>
<li><p>AI + personalization deciding when and how animations run (e.g., dark mode, screen size, or emotion tracking)</p>
</li>
</ul>
<hr />
<h2 id="heading-my-take-as-a-developer">🧑‍💻 My Take as a Developer</h2>
<p>I never thought I’d be that guy tweaking animation curves — but once I saw the difference it made in how users feel your product, I couldn’t unsee it.</p>
<p>And honestly?<br />It made me enjoy building UIs way more.</p>
<hr />
<h2 id="heading-final-thoughts">📌 Final Thoughts</h2>
<p>Framer Motion isn’t just “nice to have” — it’s becoming a <strong>standard for modern UI development</strong>.</p>
<p>If you're a React or Next.js developer, I highly recommend learning it with intention, not just copying code.</p>
<p>It’s the difference between <strong>“working UI” and memorable UI.”</strong></p>
<hr />
<h2 id="heading-resources">🔗 Resources</h2>
<ul>
<li><p><a target="_blank" href="https://motion.dev/docs">Framer Motion Docs</a></p>
</li>
<li><p><a target="_blank" href="https://www.shoaibsid.dev">My Portfolio</a></p>
</li>
<li><p>Related Blog: <a target="_blank" href="https://www.shoaibsid.dev/blog/building-scalable-ui-systems-with-tailwind-css-v4-and-shadcn-ui">Building Scalable UI Systems with shadcn/ui</a></p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[NestJS in 2025: The New Node.js Framework Everyone’s Talking About — But Is It Worth Learning?]]></title><description><![CDATA[✅ TL;DR

NestJS is a modern, TypeScript-based backend framework built on top of Express.js.

It’s trending in 2025 for its scalability, modularity, and enterprise-grade features.

Unlike Next.js, it focuses purely on server-side logic (APIs, auth, DB...]]></description><link>https://shoaibsid.hashnode.dev/nestjs-in-2025-the-new-nodejs-framework-everyones-talking-about-but-is-it-worth-learning</link><guid isPermaLink="true">https://shoaibsid.hashnode.dev/nestjs-in-2025-the-new-nodejs-framework-everyones-talking-about-but-is-it-worth-learning</guid><category><![CDATA[nestjs]]></category><category><![CDATA[Node.js]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[webdev]]></category><category><![CDATA[backend]]></category><dc:creator><![CDATA[Shoaib]]></dc:creator><pubDate>Thu, 10 Jul 2025 09:08:34 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1752138003398/bd24169e-81a8-4f77-b363-f10bbf677a40.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-tldr"><strong>✅ TL;DR</strong></h2>
<ul>
<li><p><strong>NestJS</strong> is a modern, TypeScript-based backend framework built on top of Express.js.</p>
</li>
<li><p>It’s trending in <strong>2025</strong> for its scalability, modularity, and enterprise-grade features.</p>
</li>
<li><p>Unlike <strong>Next.js</strong>, it focuses purely on server-side logic (APIs, auth, DB layers).</p>
</li>
<li><p>Great choice if you're moving beyond Express or want clean, maintainable backend code.</p>
</li>
<li><p><strong>Verdict</strong>: If you're serious about backend or full-stack dev, <strong>it's 100% worth learning</strong>.</p>
</li>
</ul>
<hr />
<p>When I first heard about <strong>NestJS</strong>, I thought it was “just another backend framework.” But as a developer who’s spent time working with both <strong>Express.js</strong> and full-stack setups like <strong>Next.js</strong>, I’ve come to realize that <strong>NestJS is more than just a trend — it's a major shift in how we build backend applications in 2025</strong>.</p>
<p>In this blog, I’ll break down:</p>
<ul>
<li><p>What NestJS actually is</p>
</li>
<li><p>How it compares to Express and Next.js</p>
</li>
<li><p>Why it's gaining traction</p>
</li>
<li><p>Whether it’s worth learning — especially for frontend or full-stack devs like you and me</p>
</li>
</ul>
<p>Let’s dive in.</p>
<h2 id="heading-what-is-nestjs"><strong>🚀 What Is NestJS?</strong></h2>
<p><strong>NestJS</strong> is a <strong>progressive Node.js framework</strong> designed for building <strong>scalable, maintainable, and efficient server-side applications</strong>. It’s fully written in <strong>TypeScript</strong> and heavily inspired by Angular in terms of structure — using decorators, modules, services, and dependency injection.</p>
<p>While it runs on top of <strong>Express.js</strong> (or optionally <strong>Fastify</strong>), it gives your project an <strong>actual architectural pattern</strong>, which is something traditional Express projects often lack.</p>
<hr />
<h2 id="heading-why-is-nestjs-trending-in-2025"><strong>🔍 Why Is NestJS Trending in 2025?</strong></h2>
<p>I’ve noticed more and more backend job listings mention NestJS — and here’s why:</p>
<h3 id="heading-1-typescript-first-not-just-compatible"><strong>✅ 1. TypeScript First, Not Just Compatible</strong></h3>
<p>NestJS embraces TypeScript out of the box, making type safety a default, not an afterthought — ideal for building large-scale apps.</p>
<h3 id="heading-2-modular-architecture"><strong>✅ 2. Modular Architecture</strong></h3>
<p>You break your app into modules — like <code>UserModule</code>, <code>AuthModule</code>, <code>BlogModule</code>, etc. This makes the codebase clean, testable, and easy to scale.</p>
<h3 id="heading-3-out-of-the-box-features"><strong>✅ 3. Out-of-the-box Features</strong></h3>
<p>NestJS comes with built-in support for:</p>
<ul>
<li><p>Validation (<code>class-validator</code>)</p>
</li>
<li><p>Authentication (Passport.js, JWT)</p>
</li>
<li><p>WebSockets</p>
</li>
<li><p>GraphQL</p>
</li>
<li><p>Microservices</p>
</li>
<li><p>Dependency Injection</p>
</li>
<li><p>Unit testing (Jest-ready)</p>
</li>
</ul>
<p>I didn’t need to wire everything from scratch like I usually would with Express.</p>
<h3 id="heading-4-enterprise-adoption"><strong>✅ 4. Enterprise Adoption</strong></h3>
<p>Big companies love structure, and NestJS brings that to Node. It’s no longer just a hobbyist or startup tool — it’s <strong>enterprise-ready</strong>.</p>
<hr />
<h2 id="heading-nestjs-vs-express-whats-the-difference"><strong>🆚 NestJS vs Express: What's the Difference?</strong></h2>
<p>Here’s how I personally see it, having used both:</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>Feature</strong></td><td><strong>Express.js</strong></td><td><strong>NestJS</strong></td></tr>
</thead>
<tbody>
<tr>
<td>Structure</td><td>Minimal, manual</td><td>Modular, opinionated</td></tr>
<tr>
<td>TypeScript</td><td>Optional</td><td>Fully built-in</td></tr>
<tr>
<td>Learning Curve</td><td>Easy to start</td><td>Slightly higher, but worth it</td></tr>
<tr>
<td>Use Case</td><td>Quick APIs, MVPs</td><td>Scalable apps, microservices, real-world systems</td></tr>
<tr>
<td>Features</td><td>Add via middleware</td><td>Many features come built-in</td></tr>
<tr>
<td>Testing Support</td><td>Manual setup</td><td>Integrated testing ecosystem</td></tr>
</tbody>
</table>
</div><p>Express is like writing in plain JavaScript. NestJS feels like using a proper framework — similar to how Next.js feels structured compared to vanilla React.</p>
<h2 id="heading-nestjs-vs-nextjs-are-they-related"><strong>🔄 NestJS vs Next.js: Are They Related?</strong></h2>
<p>This is a question I get often, especially from frontend developers:</p>
<blockquote>
<p><em>“Are NestJS and Next.js part of the same ecosystem?”</em></p>
</blockquote>
<p><strong>Not at all.</strong> Despite the similar names, they serve very different purposes:</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td><strong>Area</strong></td><td><strong>NestJS (Backend)</strong></td><td><strong>Next.js (Frontend/Full-stack)</strong></td></tr>
</thead>
<tbody>
<tr>
<td>Language</td><td>TypeScript (Node.js)</td><td>React + JavaScript/TypeScript</td></tr>
<tr>
<td>Role</td><td>Backend API Framework</td><td>Frontend Framework with SSR/SSG/ISR</td></tr>
<tr>
<td>UI Layer</td><td>❌ No</td><td>✅ Yes</td></tr>
<tr>
<td>API Support</td><td>✅ First-class (REST, GraphQL)</td><td>✅ API Routes (lightweight)</td></tr>
<tr>
<td>Rendering</td><td>❌ None</td><td>✅ SSR, CSR, SSG</td></tr>
</tbody>
</table>
</div><p>They can absolutely be used <strong>together</strong> — many developers build their <strong>frontend with Next.js</strong> and connect to a <strong>NestJS backend</strong> via REST or GraphQL.</p>
<hr />
<h2 id="heading-is-it-worth-learning-nestjs-in-2025"><strong>💡 Is It Worth Learning NestJS in 2025?</strong></h2>
<p>If you're serious about backend development — or even full-stack — <strong>yes, 100%</strong>. Here’s why I believe so:</p>
<h3 id="heading-youre-already-using-nodejs"><strong>✅ You're already using Node.js</strong></h3>
<p>Then NestJS is a natural upgrade. It gives your app structure, power, and maintainability.</p>
<h3 id="heading-you-know-typescript"><strong>✅ You know TypeScript</strong></h3>
<p>You’ll feel right at home with decorators, typed services, and interfaces.</p>
<h3 id="heading-youre-building-larger-projects-or-apis"><strong>✅ You're building larger projects or APIs</strong></h3>
<p>Unlike Express, NestJS scales really well, and it brings best practices built-in.</p>
<h3 id="heading-you-want-to-future-proof-your-backend-skills"><strong>✅ You want to future-proof your backend skills</strong></h3>
<p>NestJS is not just a trend — it’s solving real-world problems with real structure.</p>
<hr />
<h2 id="heading-final-thoughts-should-you-learn-nestjs"><strong>📌 Final Thoughts: Should You Learn NestJS?</strong></h2>
<p>If you’re coming from the <strong>Express world</strong>, NestJS is a breath of fresh air.</p>
<p>If you're a <strong>frontend dev</strong> wanting to become more “full-stack,” NestJS might seem overwhelming at first — but it’s absolutely learnable.</p>
<p>If you're serious about building <strong>scalable APIs</strong>, <strong>learning clean architecture</strong>, and writing <strong>testable code</strong>, NestJS is <strong>not just worth it</strong> — it’s <strong>what’s next</strong>.</p>
]]></content:encoded></item><item><title><![CDATA[I Built & Launched My Full Stack Developer Portfolio – Here’s How It Went]]></title><description><![CDATA[Hey devs 👋
After a few weeks of planning, building, and refining, I’m excited to officially launch my personal portfolio website!
🔗 Visit the site
🚀 Tech Stack & Tools

Next.js (App Router)

Tailwind CSS for styling

Framer Motion for animations

...]]></description><link>https://shoaibsid.hashnode.dev/i-built-and-launched-my-full-stack-developer-portfolio-heres-how-it-went</link><guid isPermaLink="true">https://shoaibsid.hashnode.dev/i-built-and-launched-my-full-stack-developer-portfolio-heres-how-it-went</guid><category><![CDATA[Next.js]]></category><category><![CDATA[portfolio]]></category><category><![CDATA[Web Development]]></category><category><![CDATA[Tailwind CSS]]></category><category><![CDATA[showdev]]></category><dc:creator><![CDATA[Shoaib]]></dc:creator><pubDate>Sat, 05 Jul 2025 09:06:58 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1751706164946/ffbbb11d-214b-41c2-accf-eb4b2e77d6b2.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey devs 👋</p>
<p>After a few weeks of planning, building, and refining, I’m excited to officially launch my personal portfolio website!</p>
<p><a target="_blank" href="https://www.shoaibsid.dev/">🔗 Visit the site</a></p>
<h3 id="heading-tech-stack-amp-tools">🚀 <strong>Tech Stack &amp; Tools</strong></h3>
<ul>
<li><p><strong>Next.js (App Router)</strong></p>
</li>
<li><p><strong>Tailwind CSS</strong> for styling</p>
</li>
<li><p><strong>Framer Motion</strong> for animations</p>
</li>
<li><p><strong>Supabase</strong> for blog view tracking</p>
</li>
<li><p><strong>Markdown-based blogging system</strong></p>
</li>
<li><p><strong>Custom email form integration</strong></p>
</li>
</ul>
<hr />
<h3 id="heading-what-ive-built">💻 What I’ve Built:</h3>
<ul>
<li><p>🏠 A clean, responsive landing page</p>
</li>
<li><p>📂 Project &amp; services sections with real-world case studies</p>
</li>
<li><p>✍️ A developer blog (focused on frontend performance, dev insights, and real examples)</p>
</li>
<li><p>🧪 Blog view tracking via Supabase</p>
</li>
<li><p>📱 Fully responsive &amp; accessible design</p>
</li>
</ul>
<hr />
<h3 id="heading-why-i-built-it">💡 Why I Built It</h3>
<p>As a full stack developer, I wanted a site that:</p>
<ul>
<li><p>Reflects my work &amp; personality</p>
</li>
<li><p>Grows with my learning and blog writing journey</p>
</li>
<li><p>Helps me connect with other devs &amp; clients</p>
</li>
</ul>
<hr />
<h3 id="heading-id-love-your-feedback">🙌 I’d Love Your Feedback</h3>
<p>I’d really appreciate your thoughts on:</p>
<ul>
<li><p>The overall design and UX</p>
</li>
<li><p>Blog structure and readability</p>
</li>
<li><p>Performance or accessibility suggestions</p>
</li>
</ul>
<p>Thanks for reading! Feel free to reach out or leave feedback.</p>
<p>—</p>
<p>🧑‍💻 <strong>Connect with me</strong><br />🌐 <a target="_blank" href="https://shoaibsid.dev">shoaibsid.dev</a><br />📩 hi@shoaibsid.dev</p>
]]></content:encoded></item></channel></rss>