<?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: Raja Irfan Ahmed</title>
    <description>The latest articles on DEV Community by Raja Irfan Ahmed (@rajairfanahmed).</description>
    <link>https://dev.to/rajairfanahmed</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%2F3923274%2F96aa98fc-dfb5-4efb-9720-41a8f300b68a.png</url>
      <title>DEV Community: Raja Irfan Ahmed</title>
      <link>https://dev.to/rajairfanahmed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rajairfanahmed"/>
    <language>en</language>
    <item>
      <title>Tired of DevTools?😫 Reverse-Engineer Any Web Design in Seconds⚡</title>
      <dc:creator>Raja Irfan Ahmed</dc:creator>
      <pubDate>Sun, 25 Oct 2026 03:01:14 +0000</pubDate>
      <link>https://dev.to/rajairfanahmed/tired-of-devtools-reverse-engineer-any-web-design-in-seconds-41ni</link>
      <guid>https://dev.to/rajairfanahmed/tired-of-devtools-reverse-engineer-any-web-design-in-seconds-41ni</guid>
      <description>&lt;p&gt;Every frontend developer knows this frustration:&lt;/p&gt;

&lt;p&gt;You see an award-winning site like Stripe, Linear, or Mobbin. You open Chrome DevTools. You start digging through nested &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; tags, copying hex codes, guessing font weights, and trying to inspect hover states. &lt;/p&gt;

&lt;p&gt;Twenty minutes later, you have 15 browser tabs open, color codes scattered in your notes app, and zero working components. 🤦‍♂️&lt;/p&gt;

&lt;p&gt;I got tired of doing this manually. So I built an autonomous web tool to automate the entire process: &lt;strong&gt;md.irfan [STUDIO EXTRACTOR]&lt;/strong&gt; 🚀&lt;/p&gt;

&lt;p&gt;Here is the problem, the solution, and how you can use it right in your browser. 👇&lt;/p&gt;




&lt;h2&gt;
  
  
  🛑 The Problem
&lt;/h2&gt;

&lt;p&gt;Why is studying or reverse-engineering web design so painful today?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;DevTools is slow and manual ⏳:&lt;/strong&gt; Finding the primary color, button padding, border radii, and easing curves across dozens of elements takes hours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Modern sites break traditional scrapers 💥:&lt;/strong&gt; Award-winning sites (built on Vite, React, Framer Motion, and GSAP) use full-screen curtain intro animations, percentage loaders, and lazy IntersectionObservers. Traditional scrapers take a snapshot at 800ms and capture an unhydrated black loading screen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scattered, non-reusable output 🗑️:&lt;/strong&gt; Even if you inspect elements, you only get raw, disconnected CSS snippets instead of structured tokens, Tailwind configs, or reusable component recipes.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  💡 The Solution
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;md.irfan [STUDIO EXTRACTOR]&lt;/strong&gt; is an autonomous browser agent that reverse-engineers live websites directly from their computed CSSOM tree into clean, production-ready specifications. ⚡&lt;/p&gt;

&lt;p&gt;Here is how it handles the hard parts:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Preloader Barrier Dismissal 🚪
&lt;/h3&gt;

&lt;p&gt;It does not use dumb timers. It polls &lt;code&gt;document.readyState&lt;/code&gt; and monitors curtain overlay elements (&lt;code&gt;opacity &amp;lt; 0.05&lt;/code&gt; or &lt;code&gt;display: none&lt;/code&gt;). It only begins extraction once the real hero section mounts into view.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Progressive Micro-Scroll Walk 📜
&lt;/h3&gt;

&lt;p&gt;It progressively walks the document height (&lt;code&gt;0%&lt;/code&gt; -&amp;gt; &lt;code&gt;35%&lt;/code&gt; -&amp;gt; &lt;code&gt;65%&lt;/code&gt; -&amp;gt; &lt;code&gt;100%&lt;/code&gt;). This triggers lazy-loaded images, Framer Motion &lt;code&gt;whileInView&lt;/code&gt; hooks, and GSAP ScrollTrigger timelines so nothing is missed.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Autonomous Interactive Click Engine 🖱️
&lt;/h3&gt;

&lt;p&gt;It safely clicks navigation tabs, collapsible FAQ accordions, and carousel arrows inside a sandboxed session. It records every height expansion and state change into an interactive telemetry ledger.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Multi-Thousand-Line &lt;code&gt;DESIGN.md&lt;/code&gt; Output 📋
&lt;/h3&gt;

&lt;p&gt;It synthesizes the entire site into a disciplined specification containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;YAML Frontmatter 🏷️:&lt;/strong&gt; Complete color scales, typography scales, surface ladders, and radii tokens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architectural Rationale 📐:&lt;/strong&gt; 10-domain breakdown covering hero execution, navigation anatomy, Bento grids, and motion choreography.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Component Recipes 🧱:&lt;/strong&gt; Ready-to-use HTML and CSS with hover, focus, and active states.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Evidence-Based Confidence Score 🎯
&lt;/h3&gt;

&lt;p&gt;Zero AI hallucinations. The confidence score is calculated directly from 4 measured DOM metrics:&lt;/p&gt;

&lt;p&gt;$$\text{Score} = \frac{\text{Components Match} + \text{Colors Covered} + \text{Text Styles Covered} + \text{Tokens Seen}}{4}$$&lt;/p&gt;

&lt;h3&gt;
  
  
  6. 1-Click ZIP Export Package 📦
&lt;/h3&gt;

&lt;p&gt;Downloads the complete design system in a single &lt;code&gt;.zip&lt;/code&gt; bundle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;DESIGN.md&lt;/code&gt; (Full specification)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tokens.json&lt;/code&gt; (Machine-readable tokens)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tokens.css&lt;/code&gt; (Vanilla CSS variables)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tailwind.config.js&lt;/code&gt; (Tailwind theme extension)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;components/&lt;/code&gt; (HTML/CSS component templates)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🛠️ How to Use It
&lt;/h2&gt;

&lt;p&gt;No local installation or terminal commands required:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: Open the live tool 🌐
&lt;/h3&gt;

&lt;p&gt;Launch the web studio directly in your browser:&lt;br&gt;
👉 &lt;strong&gt;&lt;a href="https://designextractor.vercel.app/" rel="noopener noreferrer"&gt;designextractor.vercel.app&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Enter any URL or pick a preset 🎯
&lt;/h3&gt;

&lt;p&gt;Paste any website link (e.g. &lt;code&gt;linear.app&lt;/code&gt;, &lt;code&gt;stripe.com&lt;/code&gt;) or explore flagship presets:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Linear 🟣&lt;/strong&gt; (Near-black canvas, lavender-blue accents)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mobbin ⚪&lt;/strong&gt; (Gallery-white canvas, Saans variable fonts)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Stripe 🔵&lt;/strong&gt; (Deep navy, crisp light surfaces, electric blurple)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Airbnb 🔴&lt;/strong&gt; (Clean hospitality aesthetic, coral accents)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Notion 📓&lt;/strong&gt; (Document canvas, clean typography)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IKEA 🟡&lt;/strong&gt; (Scandinavian minimalism, bold blue and yellow)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 3: Inspect live tokens &amp;amp; evidence 🔍
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Watch the real-time radar walk through preloader dismissal, scrolling, and clicks.&lt;/li&gt;
&lt;li&gt;Check the &lt;strong&gt;Evidence-Based Confidence Score&lt;/strong&gt; with its 4-signal breakdown.&lt;/li&gt;
&lt;li&gt;Switch between &lt;strong&gt;Formatted Preview&lt;/strong&gt;, &lt;strong&gt;Raw Markdown&lt;/strong&gt;, and &lt;strong&gt;Structured YAML Tokens&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 4: Export and build in 1-click 🚀
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;strong&gt;Copy MD&lt;/strong&gt; or &lt;strong&gt;Copy Tokens&lt;/strong&gt; to paste directly into your editor.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Export ZIP&lt;/strong&gt; to download the complete design system package.&lt;/li&gt;
&lt;li&gt;Drop &lt;code&gt;tokens.css&lt;/code&gt; into your Next.js, Vite, or Astro project and start coding immediately!&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌟 Try It Out
&lt;/h2&gt;

&lt;p&gt;The web tool is live and free to explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🚀 &lt;strong&gt;Live Studio:&lt;/strong&gt; &lt;a href="https://designextractor.vercel.app/" rel="noopener noreferrer"&gt;designextractor.vercel.app&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔖 &lt;strong&gt;Bookmark the link&lt;/strong&gt; for your next frontend project or redesign.&lt;/li&gt;
&lt;li&gt;💬 &lt;strong&gt;Drop a comment below:&lt;/strong&gt; 
Suggestions for improvements. 
What issues have you faced using the tool? 
Which tool should I develop next to solve your problem?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>designextractor</category>
      <category>webdev</category>
      <category>designsystem</category>
      <category>designtool</category>
    </item>
    <item>
      <title>I Solved Our Biggest Frontend Problem: Why I Built a 7-Agent UI/UX Suite 🤯!</title>
      <dc:creator>Raja Irfan Ahmed</dc:creator>
      <pubDate>Fri, 16 Oct 2026 07:18:23 +0000</pubDate>
      <link>https://dev.to/rajairfanahmed/i-solved-our-biggest-frontend-problem-why-i-built-a-7-agent-uiux-suite--3n7k</link>
      <guid>https://dev.to/rajairfanahmed/i-solved-our-biggest-frontend-problem-why-i-built-a-7-agent-uiux-suite--3n7k</guid>
      <description>&lt;p&gt;Whenever I started a project, I always hit the exact same roadblock.&lt;/p&gt;

&lt;p&gt;I was stuck on frontend engineering, colors, layout, and UI/UX (User Interface / User Experience).&lt;/p&gt;

&lt;p&gt;Back-end logic made sense. APIs made sense. But turning an idea into a clean, modern, eye-catching web application was always a painful struggle.&lt;/p&gt;

&lt;p&gt;Most AI tools made it worse. Every time I asked an AI assistant for a landing page or portfolio, it gave me the exact same design: dark gray cards, centered walls of text, broken button contrasts, and zero creative personality.&lt;/p&gt;

&lt;p&gt;So I decided to solve our biggest frontend problem once and for all.&lt;/p&gt;

&lt;p&gt;I built an open-source suite of seven specialized agent skills for Google Antigravity and Claude Code. You can check out the live portfolio build at &lt;a href="https://irfanlovefrontend.vercel.app/" rel="noopener noreferrer"&gt;irfanlovefrontend.vercel.app&lt;/a&gt; and clone the full skill suite on &lt;a href="https://github.com/rajairfanahmed/ui-ux-skill" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here is the story of how it works, what it solves, and how you can use it to build better web apps.&lt;/p&gt;




&lt;h2&gt;
  
  
  Contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The Frustration: Why Most AI Frontend Code Fails&lt;/li&gt;
&lt;li&gt;How I Fixed It: 7 Specialized Agent Skills&lt;/li&gt;
&lt;li&gt;The Rules That Make It Look Human&lt;/li&gt;
&lt;li&gt;Live Demo: See It in Action&lt;/li&gt;
&lt;li&gt;How You Can Use It on Your Own Projects&lt;/li&gt;
&lt;li&gt;I Need Your Feedback to Make It Even Better&lt;/li&gt;
&lt;li&gt;Want to Contribute? Let Us Build Together&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Frustration: Why Most AI Frontend Code Fails
&lt;/h2&gt;

&lt;p&gt;When you ask a standard AI model to code an interface, it falls into repetitive statistical habits:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Repetitive Layouts:&lt;/strong&gt; It picks the first generic template in its training weights. Every project looks like a duplicate clone of the previous one.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Text Walls:&lt;/strong&gt; Headlines wrap into 4 to 6 lines because containers are too narrow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Empty Gaps in Grids:&lt;/strong&gt; Multi-card bento grids end up with awkward, dead white spaces.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fragile Animations:&lt;/strong&gt; Complex scroll events crash mobile browsers by listening directly to scroll listeners.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I realized frontend engineering requires distinct cognitive modes. One model trying to do everything at once creates sloppy results.&lt;/p&gt;

&lt;p&gt;To fix this, I separated frontend development into five dedicated engineering stages and two auxiliary tools.&lt;/p&gt;




&lt;h2&gt;
  
  
  How I Fixed It: 7 Specialized Agent Skills
&lt;/h2&gt;

&lt;p&gt;Each skill lives in its own folder and corresponds to an exact slash command:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. &lt;code&gt;/ui-ux&lt;/code&gt; (Master Orchestrator)
&lt;/h3&gt;

&lt;p&gt;Coordinates the full four-stage lifecycle autonomously inside your &lt;code&gt;frontend/&lt;/code&gt; folder. It updates &lt;code&gt;PLAN.md&lt;/code&gt; with real-time checkboxes as each milestone finishes.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. &lt;code&gt;/frontend-architect&lt;/code&gt; (Stage 1 Foundation)
&lt;/h3&gt;

&lt;p&gt;Scaffolds Next.js 15, selects one of six calibrated substrate palettes (like Swiss Industrial, Warm Utilitarian, or Cold Luxury), configures fluid clamp typography, sets up Lenis smooth scrolling, and creates an SVG BrandLogo with small-size favicon legibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. &lt;code&gt;/creative-layout-engineer&lt;/code&gt; (Stage 2 Macro-Layout)
&lt;/h3&gt;

&lt;p&gt;Designs wide hero sections, four distinct hero archetypes, gapless bento grids using Tailwind &lt;code&gt;grid-flow-dense&lt;/code&gt;, and canonical route shells (&lt;code&gt;/about&lt;/code&gt;, &lt;code&gt;/projects&lt;/code&gt;, &lt;code&gt;/skills&lt;/code&gt;, &lt;code&gt;/contact&lt;/code&gt;) with zero layout shift.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. &lt;code&gt;/interactive-component-engineer&lt;/code&gt; (Stage 3 Components &amp;amp; Motion)
&lt;/h3&gt;

&lt;p&gt;Builds Double-Bezel hardware cards, button-in-button CTAs (Call to Action) with kinetic diagonal hover physics, and GSAP ScrollTrigger timelines.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. &lt;code&gt;/experience-qa-auditor&lt;/code&gt; (Stage 4 Production Hardening)
&lt;/h3&gt;

&lt;p&gt;Verifies mobile responsiveness down to 320px viewport width, builds custom 404 pages and client error boundaries, and runs a strict 45+ item mechanical Pre-Flight Check.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. &lt;code&gt;/build-error-resolver&lt;/code&gt; (Auxiliary Build Recovery)
&lt;/h3&gt;

&lt;p&gt;Applies surgical diffs (&amp;lt; 5% of affected code) to fix TypeScript errors and Next.js compilation issues without touching your architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. &lt;code&gt;/github-readme-writer&lt;/code&gt; (Auxiliary Documentation)
&lt;/h3&gt;

&lt;p&gt;Generates authoritative, human-written GitHub READMEs, case studies, and launch posts with zero generic AI clichés and zero em-dashes.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Rules That Make It Look Human
&lt;/h2&gt;

&lt;p&gt;To make sure the output never feels like an AI template, the suite enforces strict design rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The Deterministic Seed Engine:&lt;/strong&gt; A math calculation (&lt;code&gt;len(prompt) % 6&lt;/code&gt;) selects different colors, fonts, and hero layouts for every project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The 2-Line Iron Rule:&lt;/strong&gt; Hero headlines must sit in wide containers (&lt;code&gt;max-w-5xl&lt;/code&gt; or &lt;code&gt;max-w-6xl&lt;/code&gt;) and never exceed 2 lines on desktop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gapless Bento Flow:&lt;/strong&gt; Grid columns mathematically interlock so there is zero empty space.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Double-Bezel Hardware Enclosures:&lt;/strong&gt; Cards feature an outer machined shell and concentric inner radius for real physical depth.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Single-Project Spatial Rhythm:&lt;/strong&gt; Sub-pages share the exact same header Y-axis height and breadcrumb alignment so the page never jumps when navigating.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Live Demo: See It in Action
&lt;/h2&gt;

&lt;p&gt;I used this exact agent skill suite to build a portfolio web application with Next.js 15, TypeScript, Tailwind CSS, Lenis, and GSAP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Live URL:&lt;/strong&gt; &lt;a href="https://irfanlovefrontend.vercel.app/" rel="noopener noreferrer"&gt;https://irfanlovefrontend.vercel.app/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/rajairfanahmed/ui-ux-skill" rel="noopener noreferrer"&gt;https://github.com/rajairfanahmed/ui-ux-skill&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Take a look on both desktop and mobile to see the spatial consistency, font pairings, and smooth scroll in action.&lt;/p&gt;




&lt;h2&gt;
  
  
  How You Can Use It on Your Own Projects
&lt;/h2&gt;

&lt;p&gt;You can install these skills into your Antigravity or Claude Code setup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/rajairfanahmed/ui-ux-skill.git
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the &lt;code&gt;.agents/skills&lt;/code&gt; folder to your project root or your global agent configuration directory.&lt;/p&gt;

&lt;p&gt;Then invoke the master skill inside your editor:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/ui-ux Build a bespoke landing page for an engineering studio with dark mode, smooth scroll, and case study cards.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also specify your own custom preferences in your prompt:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Custom color palettes (e.g. "Use deep navy &lt;code&gt;#0A1128&lt;/code&gt; with gold &lt;code&gt;#D4AF37&lt;/code&gt; accent")&lt;/li&gt;
&lt;li&gt;Custom typography (e.g. "Use Outfit for headlines and Plus Jakarta Sans for body")&lt;/li&gt;
&lt;li&gt;Specific pages (e.g. "Include &lt;code&gt;/services&lt;/code&gt;, &lt;code&gt;/case-studies&lt;/code&gt;, and &lt;code&gt;/pricing&lt;/code&gt;")&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The agent will adopt your constraints while preserving strict anti-slop rules.&lt;/p&gt;




&lt;h2&gt;
  
  
  I Need Your Feedback to Make It Even Better
&lt;/h2&gt;

&lt;p&gt;This is version 1.0.0, and I want to keep improving it for developers everywhere.&lt;/p&gt;

&lt;p&gt;I need your honest advice:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Colors:&lt;/strong&gt; Are the substrate palettes hitting the right contrast and mood?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Typography:&lt;/strong&gt; Which font pairings look best on your screen?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Animations:&lt;/strong&gt; Are the GSAP spring physics smooth, or do you prefer subtler transitions?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Layouts:&lt;/strong&gt; What reference websites do you love? Share them with me so I can study their layout rhythm and add them as inspiration patterns.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Please do not hesitate to comment below. Every single suggestion helps me upgrade the suite.&lt;/p&gt;




&lt;h2&gt;
  
  
  Want to Contribute? Let Us Build Together
&lt;/h2&gt;

&lt;p&gt;The project is released under the &lt;strong&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You are free to inspect, learn from, and run the suite for your non-commercial personal projects.&lt;/li&gt;
&lt;li&gt;You can fork the repository, improve the rules, and submit Pull Requests.&lt;/li&gt;
&lt;li&gt;You may NOT resell or package the skills for commercial monetization or personal financial gain.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you want to contribute, please reach out or open a Pull Request on GitHub.&lt;/p&gt;

&lt;p&gt;And if this project helps solve your frontend headaches, please consider starring the repository on GitHub:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/rajairfanahmed/irfanlovefront" rel="noopener noreferrer"&gt;https://github.com/rajairfanahmed/irfanlovefront&lt;/a&gt;&lt;br&gt;&lt;br&gt;
👉 &lt;strong&gt;Live Preview:&lt;/strong&gt; &lt;a href="https://irfanlovefront.vercel.app/" rel="noopener noreferrer"&gt;https://irfanlovefront.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thank you for reading, and let us build cleaner frontend interfaces together!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>frontend</category>
      <category>uiux</category>
    </item>
    <item>
      <title>I Built a GitHub Achievement Automation Toolkit (CLI + Local Dashboard)</title>
      <dc:creator>Raja Irfan Ahmed</dc:creator>
      <pubDate>Sun, 10 May 2026 13:10:46 +0000</pubDate>
      <link>https://dev.to/rajairfanahmed/i-built-a-github-achievement-automation-toolkit-cli-local-dashboard-22im</link>
      <guid>https://dev.to/rajairfanahmed/i-built-a-github-achievement-automation-toolkit-cli-local-dashboard-22im</guid>
      <description>&lt;p&gt;Have you ever looked at a GitHub profile and wondered how people get badges like Pull Shark, Galaxy Brain, and Quickdraw?? If so, this post is for you.&lt;/p&gt;

&lt;p&gt;I created a toolkit that automates GitHub achievement tasks. You can use it from your terminal or a local browser dashboard. No cloud, no third-party service; your tokens stay on your machine.&lt;/p&gt;




&lt;h2&gt;
  
  
  What It Does
&lt;/h2&gt;

&lt;p&gt;The toolkit handles the repetitive GitHub actions that trigger achievement milestones&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pair Extraordinaire — co-authored commits on merged PRs (tiers: 1 / 10 / 24 / 48)&lt;/li&gt;
&lt;li&gt;Pull Shark — merged pull requests (tiers: 2 / 16 / 128 / 1024)&lt;/li&gt;
&lt;li&gt;Galaxy Brain — accepted answers in Discussions (tiers: 2 / 8 / 16 / 32)&lt;/li&gt;
&lt;li&gt;Quickdraw — close an issue within 5 minutes (single tier)&lt;/li&gt;
&lt;li&gt;YOLO — merge a PR without a code review (single tier)&lt;/li&gt;
&lt;li&gt;Starstruck — star milestones on one repository (tiers: 16 / 128 / 512 / 4096)&lt;/li&gt;
&lt;li&gt;Public Sponsor — verifies your public sponsorship status&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You run it from the CLI or the dashboard. It checks your GitHub REST rate limit first. Then, it uses delays and controls to avoid throttling. It also shows the API reset ETA live.&lt;/p&gt;




&lt;h2&gt;
  
  
  Two Modes
&lt;/h2&gt;

&lt;p&gt;CLI (&lt;code&gt;npm start&lt;/code&gt;) — Terminal menus powered by Ink. Use them for setup, running achievements, checking status, and repo helpers.&lt;/p&gt;

&lt;p&gt;Dashboard (&lt;code&gt;npm run web:dev&lt;/code&gt;) — A local Next.js app (port 3000) with four tabs&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tab&lt;/th&gt;
&lt;th&gt;What it shows&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Overview&lt;/td&gt;
&lt;td&gt;.env check, token validity, repo access, Discussions status, rate limit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Achievements&lt;/td&gt;
&lt;td&gt;Pick a tier, hit Run or Resume — one job is active at a time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;History&lt;/td&gt;
&lt;td&gt;Paginated local log with links to GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Settings&lt;/td&gt;
&lt;td&gt;Env summary (no secrets shown)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The "Stop run" button is cooperative. It waits for the current GitHub request to finish before stopping. No hard kills, no broken states.&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works (Two Accounts Required)
&lt;/h2&gt;

&lt;p&gt;You need two GitHub accounts: a main account (where the badges appear) and a helper account (acts as the second party for co-authoring, PR reviews, discussion answers, etc.).&lt;/p&gt;

&lt;p&gt;The main account owns a test repository. The team adds the helper as a collaborator with write access. Each account gets its own Personal Access Token (classic).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;GITHUB_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ghp_your_main_account_token
&lt;span class="nv"&gt;GITHUB_USERNAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;your-main-username
&lt;span class="nv"&gt;TARGET_REPO&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;your-main-username/your-test-repo-name
&lt;span class="nv"&gt;HELPER_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;ghp_your_helper_account_token
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both tokens stay in a &lt;code&gt;.env&lt;/code&gt; file on your machine; never committed, never sent anywhere.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Setup (4 Steps)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Part A — Main account + test repo&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new repo under your main account&lt;/li&gt;
&lt;li&gt;Enable Discussions: Repo Settings → General → Features → Discussions (needed for Galaxy Brain)&lt;/li&gt;
&lt;li&gt;Note your &lt;code&gt;TARGET_REPO&lt;/code&gt; as &lt;code&gt;username/repo-name&lt;/code&gt; (not the full URL)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Part B — Helper account + collaborator invite&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log in as your helper account&lt;/li&gt;
&lt;li&gt;From your main account: repo Settings → Collaborators → invite the helper with write access&lt;/li&gt;
&lt;li&gt;Accept the invite from the helper account&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Part C — Generate tokens&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Main account token: scope &lt;code&gt;repo&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Helper account token: scopes &lt;code&gt;repo&lt;/code&gt; + &lt;code&gt;write:discussion&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Part D — Install and run&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/rajairfanahmed/github-achievement-unlocker-badge-automation-toolkit
&lt;span class="nb"&gt;cd &lt;/span&gt;github-achievement-unlocker-badge-automation-toolkit
npm &lt;span class="nb"&gt;install&lt;/span&gt;      &lt;span class="c"&gt;# automatically creates .env from .env.example&lt;/span&gt;
&lt;span class="c"&gt;# fill in your .env values&lt;/span&gt;
npm start        &lt;span class="c"&gt;# CLI&lt;/span&gt;
npm run web:dev  &lt;span class="c"&gt;# Dashboard at localhost:3000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  A Note on Public Sponsor and Starstruck
&lt;/h2&gt;

&lt;p&gt;We manage these two in distinct ways. The tool does not provide hacks or shortcuts for them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public Sponsor&lt;/strong&gt; — You sponsor on GitHub first (real sponsorship). The tool only verifies your account's public sponsor state afterward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starstruck&lt;/strong&gt; — Requires real stars from real users. The tool can poll your star count and help you track progress, but the stars have to be genuine.&lt;/p&gt;




&lt;h2&gt;
  
  
  Local State, Not GitHub State
&lt;/h2&gt;

&lt;p&gt;The system saves progress to &lt;code&gt;achievements-data-&amp;lt;username&amp;gt;.json&lt;/code&gt; in the project root. Git has ignored this file. It tracks local operation history and tier progress. It does not interact with GitHub's badge system in a direct manner. GitHub awards badges on its end based on the actual actions performed.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Mistakes to Avoid
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Wrong&lt;/th&gt;
&lt;th&gt;Right&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TARGET_REPO=https://github.com/user/repo&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;TARGET_REPO=user/repo&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Same token for both accounts&lt;/td&gt;
&lt;td&gt;Separate tokens, separate accounts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Helper invited but invite not accepted&lt;/td&gt;
&lt;td&gt;Helper must accept the invite&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;GITHUB_TOKEN="ghp_..."&lt;/code&gt; with quotes&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;GITHUB_TOKEN=ghp_...&lt;/code&gt; without quotes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Built On
&lt;/h2&gt;

&lt;p&gt;This project is based on and improved from the original work by &lt;a href="https://github.com/n0/GitHub-Achievement-CLI" rel="noopener noreferrer"&gt;n0&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This version includes several updates&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A local Next.js dashboard&lt;/li&gt;
&lt;li&gt;A live rate limit display&lt;/li&gt;
&lt;li&gt;Achievement cards with tier protection (finished tiers can't be rerun)&lt;/li&gt;
&lt;li&gt;Cooperative stop behavior&lt;/li&gt;
&lt;li&gt;History pagination&lt;/li&gt;
&lt;li&gt;Post-install bootstrap for .env&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Node.js 18+&lt;/li&gt;
&lt;li&gt;npm&lt;/li&gt;
&lt;li&gt;Two GitHub accounts&lt;/li&gt;
&lt;li&gt;A test repository owned by the main account&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Repo
&lt;/h2&gt;

&lt;p&gt;Everything is open source. Check the setup guide, the &lt;code&gt;.env.example&lt;/code&gt;, and the dashboard at:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/rajairfanahmed/github-achievement-unlocker-badge-automation-toolkit" rel="noopener noreferrer"&gt;github.com/rajairfanahmed/github-achievement-unlocker-badge-automation-toolkit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If this saves you time, drop a star; it helps others find it.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://rajairfanahmed.vercel.app" rel="noopener noreferrer"&gt;Portfolio&lt;/a&gt;&lt;/p&gt;

</description>
      <category>github</category>
      <category>opensource</category>
      <category>devtools</category>
      <category>productivity</category>
    </item>
    <item>
      <title>🚀I Built a Chrome Extension That Runs Entire Coursera Courses on Autopilot</title>
      <dc:creator>Raja Irfan Ahmed</dc:creator>
      <pubDate>Sun, 10 May 2026 12:54:38 +0000</pubDate>
      <link>https://dev.to/rajairfanahmed/i-built-a-chrome-extension-that-runs-entire-coursera-courses-on-autopilot-3cmi</link>
      <guid>https://dev.to/rajairfanahmed/i-built-a-chrome-extension-that-runs-entire-coursera-courses-on-autopilot-3cmi</guid>
      <description>&lt;p&gt;🚀 I Built a Chrome Extension That Automates Entire Coursera Courses&lt;/p&gt;

&lt;p&gt;If you have ever taken a course on Coursera, you know the routine.&lt;/p&gt;

&lt;p&gt;Play a video. Wait. Click next. Open a reading. Mark it complete. Start a quiz. Repeat&lt;/p&gt;

&lt;p&gt;After a while, it doesn’t feel like learning — it feels like doing the same actions again and again.&lt;/p&gt;

&lt;p&gt;So I decided to build something for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;💡 The Idea&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;I didn’t want a small automation script.&lt;/p&gt;

&lt;p&gt;I needed a tool that could manage a whole course from beginning to end. I wanted it to work without needing me to intervene all the time.&lt;/p&gt;

&lt;p&gt;Something that could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1. Navigate through lessons without manual input.&lt;/li&gt;
&lt;li&gt;2. Handle videos, readings, and quizzes&lt;/li&gt;
&lt;li&gt;3. And continue running without breaking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A one-click autopilot specifically designed for managing courses.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;⚙️ What It Does?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Once you start it, the extension takes over.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎬 Plays videos with automatic playback and speed control.&lt;/li&gt;
&lt;li&gt;⏭ Moves to the next lesson when done&lt;/li&gt;
&lt;li&gt;📖 Marks readings as complete&lt;/li&gt;
&lt;li&gt;🧠 Solves quizzes using AI&lt;/li&gt;
&lt;li&gt;🔁 Keeps progressing until the course is finished&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don’t need to keep clicking anything.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🧠 AI Quiz Solving&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;This was the most interesting part to build.&lt;/p&gt;

&lt;p&gt;The extension:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extracts questions directly from the page&lt;/li&gt;
&lt;li&gt;Sends them to AI (Claude or ChatGPT)&lt;/li&gt;
&lt;li&gt;Parses the response&lt;/li&gt;
&lt;li&gt;Fills answers automatically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also use it more safely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fill in answers only&lt;/li&gt;
&lt;li&gt;Review them yourself before submitting&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🧩 The Real Challenge&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Automation sounds simple, but real websites are messy.&lt;/p&gt;

&lt;p&gt;Things break easily&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Videos pause randomly&lt;/li&gt;
&lt;li&gt;Buttons change behavior&lt;/li&gt;
&lt;li&gt;Quizzes have different formats&lt;/li&gt;
&lt;li&gt;Pages don’t always load the same way&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal wasn’t just automation — it was making it stable.&lt;/p&gt;

&lt;p&gt;So a lot of effort went into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Detecting what is happening on the page&lt;/li&gt;
&lt;li&gt;Handling edge cases&lt;/li&gt;
&lt;li&gt;Preventing loops and failures&lt;/li&gt;
&lt;li&gt;Keeping everything running smoothly&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;🔄 How I Approached It?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Instead of treating everything differently, I simplified the logic.&lt;/p&gt;

&lt;p&gt;Every step in a course is just one of these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Video&lt;/li&gt;
&lt;li&gt;Reading&lt;/li&gt;
&lt;li&gt;Quiz&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So the system keeps checking:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&amp;gt; “What type of page is this, and what should I do next?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That made the whole flow predictable and easier to control.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;⚡ Why I Built This?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Mainly to remove friction&lt;/p&gt;

&lt;p&gt;When something is repetitive, it kills momentum.&lt;/p&gt;

&lt;p&gt;This tool doesn’t skip learning. Instead, it cuts out pointless manual tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## 💭 Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project ended up being more than I expected.&lt;/p&gt;

&lt;p&gt;It wasn’t just about automation, but about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Building something that runs continuously&lt;/li&gt;
&lt;li&gt;Handling real-world unpredictability&lt;/li&gt;
&lt;li&gt;Integrating AI in a practical way&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the primary goal is to create something genuinely useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## 🔗 Project Link&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to check it out or try it&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/rajairfanahmed/coursera-automation-tool" rel="noopener noreferrer"&gt;Coursera Automation Tool&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://rajairfanahmed.vercel.app" rel="noopener noreferrer"&gt;Portfolio&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
