<?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: Hashir Khan</title>
    <description>The latest articles on DEV Community by Hashir Khan (@hashirkhan).</description>
    <link>https://dev.to/hashirkhan</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%2F3556137%2F24c5e2b2-7378-4d04-a37c-cdee8b33eb37.jpg</url>
      <title>DEV Community: Hashir Khan</title>
      <link>https://dev.to/hashirkhan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hashirkhan"/>
    <language>en</language>
    <item>
      <title>I Built a Full SaaS-Style WhatsApp Subscription Management System, Here's How</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Wed, 10 Jun 2026 08:50:46 +0000</pubDate>
      <link>https://dev.to/hashirwebx/i-built-a-full-saas-style-whatsapp-subscription-management-system-heres-how-253n</link>
      <guid>https://dev.to/hashirwebx/i-built-a-full-saas-style-whatsapp-subscription-management-system-heres-how-253n</guid>
      <description>&lt;p&gt;&lt;strong&gt;Most subscription tools are complex, overpriced, and ignore how small businesses actually operate.&lt;br&gt;
In Pakistan and across emerging markets, businesses manage subscriptions through WhatsApp. Not emails. Not portals. WhatsApp.&lt;br&gt;
So I built a complete frontend system around that exact workflow.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;While working as a Frontend Engineering Intern at Peham LTD, I kept noticing the same gap: businesses needed a clean way to manage subscriptions tied to WhatsApp-based communication workflows.&lt;br&gt;
Existing SaaS dashboards are built for enterprise. They assume complex CRMs, payment APIs, and dedicated ops teams.&lt;/p&gt;

&lt;p&gt;But a local gym, a newsletter creator, or a service business running on WhatsApp? They need something simpler — and more focused.&lt;/p&gt;

&lt;p&gt;I wanted to build a real SaaS-style product that solved this specific problem. A system with a proper landing page, an admin dashboard, and a workflow that maps to how these businesses actually communicate with their users.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;WhatsApp Subscription Management System — a complete frontend SaaS application with two core parts:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🏠 Landing Page&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean, conversion-focused hero section&lt;/li&gt;
&lt;li&gt;Feature highlights explaining the WhatsApp-first workflow&lt;/li&gt;
&lt;li&gt;Pricing section&lt;/li&gt;
&lt;li&gt;Call-to-action flows&lt;/li&gt;
&lt;li&gt;Fully responsive across all screen sizes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;📊 Admin Dashboard&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subscription overview and stats&lt;/li&gt;
&lt;li&gt;Subscriber list with status management (active, paused, cancelled)&lt;/li&gt;
&lt;li&gt;WhatsApp message workflow triggers&lt;/li&gt;
&lt;li&gt;Clean UI with intuitive navigation&lt;/li&gt;
&lt;li&gt;Mobile-responsive layout&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React.js — component-based architecture&lt;/li&gt;
&lt;li&gt;Modern CSS — responsive, utility-first styling&lt;/li&gt;
&lt;li&gt;React Router — client-side navigation between landing and dashboard&lt;/li&gt;
&lt;li&gt;Component composition — reusable UI elements across views&lt;/li&gt;
&lt;li&gt;Vercel — deployed and live&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 Live Demo: whatsappsubscriptionmanagementsyste-flax. vercel.app&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It — The Breakdown
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Landing Page Architecture
The landing page was designed as a standalone marketing surface. I separated it from the dashboard routing intentionally — different goals, different component trees.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key sections:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;HeroSection — above-the-fold hook with CTA&lt;/li&gt;
&lt;li&gt;FeaturesGrid — card-based feature breakdown&lt;/li&gt;
&lt;li&gt;Pricing Section — tiered plan layout&lt;/li&gt;
&lt;li&gt;Footer — links and brand close&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each section is a standalone component. Easy to update independently without touching unrelated UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Admin Dashboard Structure
&lt;/h2&gt;

&lt;p&gt;The dashboard follows a classic SaaS layout pattern:&lt;/p&gt;

&lt;p&gt;Fixed sidebar with navigation&lt;br&gt;
Top bar with context and user info&lt;br&gt;
Main content area with dynamic views&lt;/p&gt;

&lt;p&gt;I built the subscriber management table as a controlled component with local state, cleanly handling status filters, row actions, and empty states.&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%2Fg71wpi6zuxvbzrjtc3ph.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%2Fg71wpi6zuxvbzrjtc3ph.png" alt=" " width="800" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. WhatsApp Workflow UI
&lt;/h2&gt;

&lt;p&gt;This is the most unique part of the system. Instead of generic "send email" buttons, the workflow UI is built around WhatsApp actions — message triggers tied to subscription lifecycle events (onboarding, renewal reminder, cancellation confirmation).&lt;br&gt;
Each trigger maps to a clear UI state. No backend yet — but the frontend is structured to plug into a WhatsApp API layer (like Twilio or Meta's Cloud API) without a rebuild.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Responsive Design Strategy
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;I used a mobile-first approach throughout:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sidebar collapses to a hamburger on mobile&lt;br&gt;
The subscriber table becomes a card list on smaller screens&lt;br&gt;
Landing page sections stack cleanly on all breakpoints&lt;/p&gt;

&lt;p&gt;No UI library — custom responsive components. More control, less bloat.&lt;/p&gt;

&lt;h2&gt;
  
  
  Result &amp;amp; What I Learned:
&lt;/h2&gt;

&lt;p&gt;The system is live and fully functional as a frontend application.&lt;br&gt;
What I got out of this build:&lt;/p&gt;

&lt;p&gt;✅ Deeper understanding of SaaS dashboard architecture in React&lt;br&gt;
✅ Cleaner thinking about component separation and responsibility&lt;br&gt;
✅ Hands-on experience designing around real-world workflows (not textbook features)&lt;br&gt;
✅ Confidence in building landing page + dashboard as one cohesive product&lt;/p&gt;

&lt;p&gt;The biggest shift was thinking like a product engineer rather than just a UI developer. Every component decision is tied back to: Does this serve the user's actual workflow?&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts:
&lt;/h2&gt;

&lt;p&gt;Frontend engineering isn't just about shipping UI — it's about building systems that fit how people actually work.&lt;br&gt;
This project pushed me to design around a specific, real use case. Not a generic CRUD app. A product that understands its users communicate through WhatsApp, not email, and builds the entire experience around that.&lt;br&gt;
That kind of thinking — workflow-first, not feature-first — is what I want to carry into every project I build at Hashir WebX Studio.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Let's Talk 💬&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;🔗 &lt;a href="https://whatsappsubscriptionmanagementsyste-flax.vercel.app" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Want the source code? Drop a comment, and I'll share the GitHub link.&lt;br&gt;
Should I break down the WhatsApp workflow architecture in a dedicated post?&lt;br&gt;
What kind of SaaS dashboard should I build next — open to ideas from the community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built by Hashir WebX Studio — React.js • Next.js • TypeScript • SaaS UI Engineering&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>That blocks distracting websites using AI. Here's the full code (Next.js + TypeScript)</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Thu, 04 Jun 2026 19:38:16 +0000</pubDate>
      <link>https://dev.to/hashirkhan/that-blocks-distracting-websites-using-ai-heres-the-full-code-nextjs-typescript-3mhe</link>
      <guid>https://dev.to/hashirkhan/that-blocks-distracting-websites-using-ai-heres-the-full-code-nextjs-typescript-3mhe</guid>
      <description>&lt;p&gt;Combines your 3 strengths (Chrome Extension + AI + TypeScript). "Full code" promise = massive click driver.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opening hook:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"I wasted 3 hours on Reddit yesterday while 'working'. So I built a Chrome Extension that fights back — using AI to detect distracting patterns and block them dynamically. Here's everything, including the full source code."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Outline:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The problem (relatable: developers losing focus)&lt;br&gt;
Demo GIF of the extension in action ← , critical, embed this!&lt;br&gt;
Architecture overview: manifest v3 + content scripts + TypeScript&lt;br&gt;
Calling an AI API (OpenAI/Gemini) to score distracting URLs&lt;br&gt;
Full code walkthrough — 3 key files with comments&lt;br&gt;
How to publish to Chrome Web Store (bonus value)&lt;br&gt;
CTA: "What sites distract YOU most? Drop it in the comments 👇"&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>typescript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Stopped Using CSS for Animations. GSAP Changed Everything.</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Wed, 03 Jun 2026 16:31:25 +0000</pubDate>
      <link>https://dev.to/hashirkhan/i-stopped-using-css-for-animations-gsap-changed-everything-nai</link>
      <guid>https://dev.to/hashirkhan/i-stopped-using-css-for-animations-gsap-changed-everything-nai</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;I wasted 8 months fighting CSS animations.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Keyframes, transition, animation-delay hacks, browser inconsistencies — it felt like building a house with tape.&lt;br&gt;
Then I tried GSAP for a one-weekend project. I never went back.&lt;br&gt;
Here's exactly what changed — and the **3 animations&lt;/strong&gt; that would have taken me 3 days in CSS, but took 3 hours in GSAP:**&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Animation 1:&lt;/strong&gt; Staggered text reveal on page load&lt;br&gt;
Every portfolio wants this. CSS version? 20 lines, fragile. GSAP version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;javascriptgsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.hero-text span&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;stagger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.08&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;power3.out&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Done. Each word staggers in smoothly. Zero browser quirks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Animation 2:&lt;/strong&gt; Scroll-triggered section reveal&lt;br&gt;
, JavaScript GSAP.registerPlugin(ScrollTrigger);&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.section&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;scrollTrigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.section&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;power2.out&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No Intersection Observer boilerplate. No manual cleanup. It just works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Animation 3:&lt;/strong&gt; Magnetic button hover effect&lt;br&gt;
javascriptconst btn = document.querySelector(".magnetic-btn");&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mousemove&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBoundingClientRect&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientX&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;left&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientY&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;top&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;power2.out&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mouseleave&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;elastic.out(1.2, 0.4)&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This one thing made my portfolio feel like a $50K agency site.&lt;/p&gt;

&lt;p&gt;The truth nobody tells you: CSS animations are fine for simple things. But the moment you need sequencing, scroll-linking, or interactive motion — GSAP wins by a mile.&lt;br&gt;
I now use GSAP on every single project: portfolios, real estate demos, agency sites, and Chrome extensions.&lt;/p&gt;

&lt;p&gt;What's the animation YOU've been trying to build but couldn't figure out? Drop it in the comments — I'll write a GSAP solution for the best one. 👇&lt;/p&gt;

</description>
      <category>gsap</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>frontend</category>
    </item>
    <item>
      <title>I Stopped Using CSS for Animations. GSAP Changed Everything.</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Wed, 03 Jun 2026 16:31:25 +0000</pubDate>
      <link>https://dev.to/hashirkhan/i-stopped-using-css-for-animations-gsap-changed-everything-90p</link>
      <guid>https://dev.to/hashirkhan/i-stopped-using-css-for-animations-gsap-changed-everything-90p</guid>
      <description>&lt;h3&gt;
  
  
  &lt;strong&gt;I wasted 8 months fighting CSS animations.&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Keyframes, transition, animation-delay hacks, browser inconsistencies — it felt like building a house with tape.&lt;br&gt;
Then I tried GSAP for a one-weekend project. I never went back.&lt;br&gt;
Here's exactly what changed — and the **3 animations&lt;/strong&gt; that would have taken me 3 days in CSS, but took 3 hours in GSAP:**&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Animation 1:&lt;/strong&gt; Staggered text reveal on page load&lt;br&gt;
Every portfolio wants this. CSS version? 20 lines, fragile. GSAP version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;javascriptgsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.hero-text span&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;stagger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.08&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;power3.out&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Done. Each word staggers in smoothly. Zero browser quirks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Animation 2:&lt;/strong&gt; Scroll-triggered section reveal&lt;br&gt;
, JavaScript GSAP.registerPlugin(ScrollTrigger);&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;from&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.section&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;scrollTrigger&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;.section&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;power2.out&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No Intersection Observer boilerplate. No manual cleanup. It just works.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Animation 3:&lt;/strong&gt; Magnetic button hover effect&lt;br&gt;
javascriptconst btn = document.querySelector(".magnetic-btn");&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mousemove&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getBoundingClientRect&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientX&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;left&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;width&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clientY&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;top&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="nx"&gt;rect&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;height&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;y&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;power2.out&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;mouseleave&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;gsap&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;to&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;btn&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;0.6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;ease&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;elastic.out(1.2, 0.4)&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This one thing made my portfolio feel like a $50K agency site.&lt;/p&gt;

&lt;p&gt;The truth nobody tells you: CSS animations are fine for simple things. But the moment you need sequencing, scroll-linking, or interactive motion — GSAP wins by a mile.&lt;br&gt;
I now use GSAP on every single project: portfolios, real estate demos, agency sites, and Chrome extensions.&lt;/p&gt;

&lt;p&gt;What's the animation YOU've been trying to build but couldn't figure out? Drop it in the comments — I'll write a GSAP solution for the best one. 👇&lt;/p&gt;

</description>
      <category>gsap</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>frontend</category>
    </item>
    <item>
      <title>React didn't make me a better developer. This did.</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Tue, 02 Jun 2026 09:19:03 +0000</pubDate>
      <link>https://dev.to/hashirkhan/react-didnt-make-me-a-better-developer-this-did-jei</link>
      <guid>https://dev.to/hashirkhan/react-didnt-make-me-a-better-developer-this-did-jei</guid>
      <description>&lt;p&gt;When I first started learning React, I thought mastering hooks, components, and state management would automatically make me a great developer.&lt;/p&gt;

&lt;p&gt;It didn't.&lt;/p&gt;

&lt;p&gt;For months, I consumed tutorials.&lt;/p&gt;

&lt;p&gt;I built clones.&lt;/p&gt;

&lt;p&gt;I copied code.&lt;/p&gt;

&lt;p&gt;I followed along with YouTube videos.&lt;/p&gt;

&lt;p&gt;And honestly?&lt;/p&gt;

&lt;p&gt;I felt productive.&lt;/p&gt;

&lt;p&gt;But the moment I faced a real-world problem without a tutorial...&lt;/p&gt;

&lt;p&gt;I got stuck.&lt;/p&gt;

&lt;p&gt;That's when I realized something important:&lt;/p&gt;

&lt;p&gt;Frameworks don't create developers. Problems do.&lt;/p&gt;

&lt;p&gt;The biggest growth in my frontend journey didn't come from learning React.&lt;/p&gt;

&lt;p&gt;It came from:&lt;/p&gt;

&lt;p&gt;✅ Debugging issues that took hours to solve&lt;/p&gt;

&lt;p&gt;✅ Breaking applications and figuring out why&lt;/p&gt;

&lt;p&gt;✅ Designing scalable architectures&lt;/p&gt;

&lt;p&gt;✅ Refactoring messy code&lt;/p&gt;

&lt;p&gt;✅ Building projects without step-by-step guidance&lt;/p&gt;

&lt;p&gt;Every difficult bug forced me to think deeper.&lt;/p&gt;

&lt;p&gt;Every failed implementation taught me a better solution.&lt;/p&gt;

&lt;p&gt;Every project improved my decision-making.&lt;/p&gt;

&lt;p&gt;Today, when I approach a React or Next.js application, I focus less on writing code and more on solving problems.&lt;/p&gt;

&lt;p&gt;Because great developers aren't measured by how many frameworks they know.&lt;/p&gt;

&lt;p&gt;They're measured by how effectively they solve problems.&lt;/p&gt;

&lt;p&gt;React is a tool.&lt;/p&gt;

&lt;p&gt;Problem-solving is a skill.&lt;/p&gt;

&lt;p&gt;That's the difference.&lt;/p&gt;

&lt;p&gt;👇 What's one challenge that taught you more than any tutorial ever could?&lt;/p&gt;

</description>
      <category>learning</category>
      <category>webdev</category>
      <category>codinglife</category>
      <category>react</category>
    </item>
    <item>
      <title>I Built a Chrome Extension That Turns Any Website Into Clean, Usable Code</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Sun, 22 Feb 2026 16:49:26 +0000</pubDate>
      <link>https://dev.to/hashirkhan/i-built-a-chrome-extension-that-turns-any-website-into-clean-usable-code-13la</link>
      <guid>https://dev.to/hashirkhan/i-built-a-chrome-extension-that-turns-any-website-into-clean-usable-code-13la</guid>
      <description>&lt;p&gt;As frontend developers, we spend a surprising amount of time doing one repetitive task:&lt;/p&gt;

&lt;p&gt;Inspecting elements.&lt;br&gt;
Digging through deeply nested DOM structures.&lt;br&gt;
Copying incomplete or messy styles.&lt;/p&gt;

&lt;p&gt;It’s slow. It’s frustrating. And it breaks the flow.&lt;/p&gt;

&lt;p&gt;So I built a tool to fix it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing: HTML Element Picker
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;HTML Element Picker&lt;/strong&gt; is a Chrome extension designed to help developers instantly extract clean, usable code from any webpage.&lt;/p&gt;

&lt;p&gt;Instead of manually inspecting and reconstructing UI components, you can now select any element and get everything you need — instantly.&lt;/p&gt;

&lt;h3&gt;
  
  
  What it does
&lt;/h3&gt;

&lt;p&gt;With a single click, you can extract:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Clean, structured HTML&lt;/li&gt;
&lt;li&gt;Computed CSS with intelligent filtering&lt;/li&gt;
&lt;li&gt;Tailwind CSS classes generated automatically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No unnecessary noise. No redundant styles. Just production-ready output.&lt;/p&gt;




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

&lt;p&gt;Most developer tools give you &lt;em&gt;too much&lt;/em&gt; information.&lt;/p&gt;

&lt;p&gt;This one focuses on giving you the &lt;strong&gt;right information&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It intelligently filters:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Default browser styles&lt;/li&gt;
&lt;li&gt;Inherited noise&lt;/li&gt;
&lt;li&gt;Irrelevant layout values&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So what you get is actually usable in real projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;One-click element picking with real-time visual overlay&lt;/li&gt;
&lt;li&gt;Smart CSS extraction with noise reduction&lt;/li&gt;
&lt;li&gt;Automatic Tailwind CSS conversion&lt;/li&gt;
&lt;li&gt;Multi-format output (HTML, CSS, Tailwind)&lt;/li&gt;
&lt;li&gt;Clean, syntax-highlighted output&lt;/li&gt;
&lt;li&gt;One-click copy for individual sections or full output&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Built for Real Workflows
&lt;/h2&gt;

&lt;p&gt;This extension isn’t just a concept — it’s designed around how developers actually work.&lt;/p&gt;

&lt;p&gt;From architecture to UX, everything is optimized for speed and clarity:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Popup interface for quick control and preview&lt;/li&gt;
&lt;li&gt;Content script for real-time DOM interaction&lt;/li&gt;
&lt;li&gt;Efficient style processing engine&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is simple:&lt;br&gt;
&lt;strong&gt;Reduce friction between inspection and implementation.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Privacy-First by Design
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;No data collection&lt;/li&gt;
&lt;li&gt;No external API calls&lt;/li&gt;
&lt;li&gt;Fully user-controlled interactions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your workflow stays yours.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real Value for Developers &amp;amp; Teams
&lt;/h2&gt;

&lt;p&gt;Tools like this are not just about convenience — they directly impact productivity.&lt;/p&gt;

&lt;p&gt;For:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Freelancers → faster delivery&lt;/li&gt;
&lt;li&gt;Agencies → consistent code extraction&lt;/li&gt;
&lt;li&gt;Product teams → rapid UI replication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Reducing repetitive work means more time spent building actual features.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;This is just Version 1.&lt;/p&gt;

&lt;p&gt;Planned improvements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Component detection&lt;/li&gt;
&lt;li&gt;Framework-aware output (React, Vue)&lt;/li&gt;
&lt;li&gt;Advanced Tailwind optimization&lt;/li&gt;
&lt;li&gt;Export to reusable components&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Get Access
&lt;/h2&gt;

&lt;p&gt;I’m currently sharing the extension with developers and teams looking to streamline their workflows.&lt;/p&gt;

&lt;p&gt;If you’re interested, reach out or connect — I’d be happy to share it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;We don’t need more tools that show everything.&lt;/p&gt;

&lt;p&gt;We need tools that show &lt;strong&gt;exactly what matters&lt;/strong&gt;.&lt;/p&gt;




&lt;p&gt;If this sounds useful to you, I’d love to hear your thoughts.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>chromeextension</category>
      <category>javascript</category>
      <category>learning</category>
    </item>
    <item>
      <title>Making Web Interfaces Feel Alive with Animejs</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Fri, 20 Feb 2026 10:48:15 +0000</pubDate>
      <link>https://dev.to/hashirkhan/making-web-interfaces-feel-alive-with-animejs-2hmo</link>
      <guid>https://dev.to/hashirkhan/making-web-interfaces-feel-alive-with-animejs-2hmo</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Most websites look good… but they feel static.&lt;br&gt;
As frontend developers, we often focus on layout, colors, and responsiveness — but we ignore one powerful element: animation.&lt;br&gt;
Recently, I started using**** Anime.js in my projects, and it completely changed how users interact with my UI.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why Anime.js?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Simple yet powerful API&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Works with CSS, SVG, and DOM&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Timeline control for complex animations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lightweight and fast&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Real Use Cases:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Hero section animations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scroll-triggered effects&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Smooth UI transitions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Micro-interactions&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Insight:
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Users don’t just see your UI — they feel it.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Adding motion brings life to your interface and improves user engagement significantly.&lt;/p&gt;

&lt;p&gt;If you're building modern web apps, Anime.js is definitely worth exploring.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://animejs.com/" rel="noopener noreferrer"&gt;https://animejs.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What animation library do you prefer — Anime.js or GSAP?&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>javascript</category>
      <category>ui</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Boost Your Productivity with a Smart Time-Tracking Chrome Extension</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Thu, 05 Feb 2026 11:02:26 +0000</pubDate>
      <link>https://dev.to/hashirkhan/boost-your-productivity-with-a-smart-time-tracking-chrome-extension-njl</link>
      <guid>https://dev.to/hashirkhan/boost-your-productivity-with-a-smart-time-tracking-chrome-extension-njl</guid>
      <description>&lt;p&gt;Staying focused online is harder than ever. With endless tabs, social media notifications, and tempting websites, it’s easy to lose track of time. That’s why I built a practical time-tracking Chrome extension designed for real users, not just as a proof-of-concept.&lt;/p&gt;

&lt;p&gt;Here’s what it does:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tracks time spent on every website&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identifies distractions and unproductive habits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blocks websites that waste your time&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Limits access to specific websites for better focus&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Built entirely in JavaScript as a real-world, usable application&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This project is perfect for anyone looking to understand their browsing habits, reduce distractions, and boost productivity without relying on generic solutions.&lt;/p&gt;

&lt;p&gt;I designed it with practicality in mind, ensuring that it actually helps real users improve their workflow rather than just being a technical demo.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Try it out and see it in action: &lt;a href="https://youtu.be/SVlvSl-nNx4" rel="noopener noreferrer"&gt;Watch the YouTube Demo&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check out the code or contribute: &lt;a href="https://github.com/hashirwebx/smart-productivity-extension" rel="noopener noreferrer"&gt;GitHub Link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>extensions</category>
      <category>javascript</category>
      <category>learning</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Chrome extension tracked on your own websites, so you can spend time</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Fri, 30 Jan 2026 15:27:04 +0000</pubDate>
      <link>https://dev.to/hashirkhan/chrome-extension-tracked-on-your-own-website-so-you-can-spend-time-3nj</link>
      <guid>https://dev.to/hashirkhan/chrome-extension-tracked-on-your-own-website-so-you-can-spend-time-3nj</guid>
      <description>&lt;p&gt;I tracked my own distractions… and it made me realize how much time gets lost during daily browsing.&lt;/p&gt;

&lt;p&gt;So instead of ignoring the problem, I built a solution.&lt;/p&gt;

&lt;p&gt;I recently developed a Smart Productivity Assistant Chrome Extension using Manifest V3 and modern extension architecture. This was not just another practice project, but a productivity tool designed around real user problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;The extension helps users:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;• Automatically track time spent on websites&lt;br&gt;
• Run smoothly in the background using Chrome Service Workers&lt;br&gt;
• Display clear and simple usage analytics in a popup dashboard&lt;br&gt;
• Block distracting websites to improve focus&lt;br&gt;
• Work completely offline using privacy-focused local storage with no tracking or external servers&lt;/p&gt;

&lt;p&gt;While developing this project, I focused on building production-ready architecture rather than just writing functional code.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Development priorities included:&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;• Clean and scalable project structure&lt;br&gt;
• Proper separation of concerns between background, popup, content scripts, and options&lt;br&gt;
• Following Manifest V3 best practices&lt;br&gt;
• Using minimal and optimized permissions&lt;br&gt;
• Writing developer-friendly and client-ready code&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;This project significantly strengthened my understanding of:&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;• Chrome Extension APIs in real-world applications&lt;br&gt;
• Background Service Workers and Content Script communication&lt;br&gt;
• Event-driven software design&lt;br&gt;
• Product-focused development thinking&lt;/p&gt;

&lt;p&gt;The objective was simple: build something practical, secure, and scalable that users could genuinely benefit from, not just a portfolio demonstration.&lt;/p&gt;

&lt;p&gt;This is the first version, and I am looking forward to improving it further and building more real-world solutions.&lt;/p&gt;

&lt;p&gt;I would appreciate feedback from developers, productivity enthusiasts, and Chrome extension users.&lt;/p&gt;

&lt;p&gt;Do productivity tools genuinely help improve focus, or do they sometimes become distractions themselves?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>chromeextension</category>
      <category>typescript</category>
      <category>chromeapis</category>
    </item>
    <item>
      <title>Building a Modern Real Estate Website Demo with Next.js, TypeScript &amp; GSAP</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Sat, 03 Jan 2026 13:34:19 +0000</pubDate>
      <link>https://dev.to/hashirkhan/building-a-modern-real-estate-website-demo-with-nextjs-typescript-gsap-8di</link>
      <guid>https://dev.to/hashirkhan/building-a-modern-real-estate-website-demo-with-nextjs-typescript-gsap-8di</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Building a real estate website means much more than just showing houses. For example, in the Real Estate – Single Demo project, the following are some aspects to take into consideration: &lt;br&gt;
In this blog post, I will guide you through the process based on the Real Estate – Single Demo project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Project Overview&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This is basically an example of how a single-page real estate website demo might look while being able to feature properties, scroll, and organize correctly, just as it would on an actual working real estate service.&lt;/p&gt;

&lt;p&gt;"The primary objective was to create something that incorporates the feeling of:"&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fast&lt;/li&gt;
&lt;li&gt;Visually premium&lt;/li&gt;
&lt;li&gt;Smooth in interaction&lt;/li&gt;
&lt;li&gt;Scalable in structure&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Next.js – App routing and performance optimization&lt;/li&gt;
&lt;li&gt;TypeScript - Type safety and improved developer experience&lt;/li&gt;
&lt;li&gt;Tailwind CSS: Utility styling for quick UI development&lt;/li&gt;
&lt;li&gt;GSAP - Scroll animations&lt;/li&gt;
&lt;li&gt;Lenis - Smooth Scrolling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Real estate one-page design with a contemporary hero section GSAP ScrollTrigger Animation for sections and property cards “Lenis.”&lt;/li&gt;
&lt;li&gt;Smooth scrolling for a fluid experience&lt;/li&gt;
&lt;li&gt;Animations in pre-loader for better impression creation during page load&lt;/li&gt;
&lt;li&gt;Fully responsive design, mobile-first - Scalable components with reusability capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why GSAP &amp;amp; Lenis?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In real estate website development, subtle motion plays a big role in perceived quality.&lt;/li&gt;
&lt;li&gt;GSAP controls the animation without hurting performance.&lt;/li&gt;
&lt;li&gt;Lenis gives natural, fluid scrolling without feeling heavy which creates a good UX.&lt;/li&gt;
&lt;li&gt;Combined, they provide a sleek experience that is professional, not over-animated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Designed Approach:&lt;/strong&gt;&lt;br&gt;
In developing this demo, I focused on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A clear visual hierarchy can be created with Premium-feeling spacing and typography&lt;/li&gt;
&lt;li&gt;Animations that complement, rather than compromise, the content.
Performance-first approach&lt;/li&gt;
&lt;li&gt;Real estate websites often serve business purposes, so clarity and usability always come first.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;What This Demo Represents&lt;/strong&gt;&lt;br&gt;
This demo isn't just a UI experiment; it's actually how I would do things in real-world frontend projects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Build with scalability in mind. Performance above all, UX too.&lt;/li&gt;
&lt;li&gt;Keep code clean and maintainable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🔗 &lt;strong&gt;Visit the Project&lt;/strong&gt;&lt;br&gt;
👉 &lt;strong&gt;Live Demo:&lt;/strong&gt;&lt;a href="https://real-estate-5s.vercel.app/" rel="noopener noreferrer"&gt;Please click here&lt;/a&gt;&lt;br&gt;
👉 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/hashirwebx/real-estate" rel="noopener noreferrer"&gt;Click here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts:&lt;/strong&gt;&lt;br&gt;
 This Real Estate Single Demo is a small but concentrated project to demonstrate how modern frontend tools could be combined in the development of business-ready web experiences. If you're building in the real estate space, or any content-heavy platform for that matter, smooth interactions and performance make all the difference.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>tutorial</category>
      <category>typescript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Creative Design Agency Portfolio React, GSAP Animation</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Tue, 23 Dec 2025 15:15:11 +0000</pubDate>
      <link>https://dev.to/hashirkhan/creative-design-agency-portfolio-react-gsap-animation-17mm</link>
      <guid>https://dev.to/hashirkhan/creative-design-agency-portfolio-react-gsap-animation-17mm</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;This Website is a high-end creative agency website crafted to showcase modern web design, cinematic motion, and smooth user interactions.&lt;br&gt;
Built with a strong focus on bold typography, GSAP-powered animations, and a refined Soft Sage &amp;amp; Obsidian color palette, this project blends technical precision with creative storytelling to deliver a premium browsing experience.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Key Features
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Advanced GSAP Animations:&lt;/strong&gt;&lt;br&gt;
Parallax motion, staggered text reveals, and smooth clip-path transitions for a cinematic feel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Liquid “Gooey” Buttons:&lt;/strong&gt;&lt;br&gt;
Custom SVG filter-based interactive buttons with fluid motion effects.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lenis Smooth Scrolling:&lt;/strong&gt;&lt;br&gt;
High-performance inertial scrolling for a seamless, premium user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fully Responsive Design:&lt;/strong&gt;&lt;br&gt;
Optimized for all screen sizes — from mobile devices to ultra-wide 4K displays.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dynamic Project Modals:&lt;/strong&gt;&lt;br&gt;
Immersive modal views with detailed portfolio presentations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tech Stack
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Frontend: React&lt;/li&gt;
&lt;li&gt;Animations: GSAP (GreenSock) &amp;amp; ScrollTrigger&lt;/li&gt;
&lt;li&gt;Styling: Tailwind CSS&lt;/li&gt;
&lt;li&gt;Icons: Lucide React&lt;/li&gt;
&lt;li&gt;Fonts: Anton (Headings) &amp;amp; Inter (Body)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Languages &amp;amp; Tools
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;React.js&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;GSAP Animations&lt;/li&gt;
&lt;li&gt;CSS3&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉 Press here to view the live project: &lt;a href="https://quantumstack-fawn.vercel.app/" rel="noopener noreferrer"&gt;https://quantumstack-fawn.vercel.app/&lt;/a&gt;&lt;br&gt;
👉 Github Repo: &lt;a href="https://github.com/hashirwebx/software-webiste-in-gsap" rel="noopener noreferrer"&gt;https://github.com/hashirwebx/software-webiste-in-gsap&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 I’d really appreciate your feedback and suggestions&lt;br&gt;
 What do you think about this design?&lt;/p&gt;

</description>
      <category>creativeagency</category>
      <category>website</category>
      <category>gsap</category>
      <category>react</category>
    </item>
    <item>
      <title>Modern School / Education Website using React, TailwindCSS, GSAP</title>
      <dc:creator>Hashir Khan</dc:creator>
      <pubDate>Tue, 16 Dec 2025 08:30:32 +0000</pubDate>
      <link>https://dev.to/hashirkhan/modern-school-education-website-using-react-tailwindcss-gsap-om5</link>
      <guid>https://dev.to/hashirkhan/modern-school-education-website-using-react-tailwindcss-gsap-om5</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Project Overview&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;School-website-react is a modern React-based frontend template designed for educational platforms, prioritizing speed, scalability, and maintainability. It leverages Vite for rapid builds, Tailwind CSS for streamlined styling, and a modular component architecture to facilitate scalable development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project purpose and Key Features:&lt;/strong&gt;&lt;br&gt;
This project aims to deliver a fast, responsive, and easy-to-maintain frontend foundation for school websites. The core features include:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Fast Development:&lt;/strong&gt; Utilizes Vite with React for quick builds and hot module replacement, enhancing developer productivity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Tailwind CSS Integration:&lt;/strong&gt; Simplifies styling with a configured CSS setup, enabling consistent and responsive design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Modular Components:&lt;/strong&gt; Offers a structured, component-driven architecture for scalable UI development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Responsive &amp;amp; Interactive UI:&lt;/strong&gt; Features animated navigation and adaptable layouts for seamless user experiences.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Clear Project Structure:&lt;/strong&gt; Organized setup with dedicated pages and components for easy maintenance and extension.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;- Optimized Tooling:&lt;/strong&gt; Uses modern development tools to keep the code clean, fast, and high-performance.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Visit this link:&lt;/strong&gt; &lt;a href="https://school-website-react-ashen.vercel.app/" rel="noopener noreferrer"&gt;https://school-website-react-ashen.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;You can check out the full project code here:&lt;/strong&gt; &lt;a href="https://github.com/Hashir15432/school-website-reacte" rel="noopener noreferrer"&gt;https://github.com/Hashir15432/school-website-reacte&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I’d really appreciate your feedback, suggestions, or stars ⭐ on GitHub!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>school</category>
      <category>website</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
