<?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: Dooa Ansaari</title>
    <description>The latest articles on DEV Community by Dooa Ansaari (@dooaansari).</description>
    <link>https://dev.to/dooaansari</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%2F4164865%2Fb3ae355e-d342-458b-8b1d-501766920859.jpg</url>
      <title>DEV Community: Dooa Ansaari</title>
      <link>https://dev.to/dooaansari</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dooaansari"/>
    <language>en</language>
    <item>
      <title>React 18 and Claude Code Animations Project</title>
      <dc:creator>Dooa Ansaari</dc:creator>
      <pubDate>Fri, 23 Oct 2026 19:45:50 +0000</pubDate>
      <link>https://dev.to/dooaansari/react-18-and-claude-code-animations-project-4cj4</link>
      <guid>https://dev.to/dooaansari/react-18-and-claude-code-animations-project-4cj4</guid>
      <description>&lt;p&gt;I created 10 loader animations using Claude code and Opus 5.5. It was wild to see my imagination coming to life within seconds. The new Anthropic model Opus 5.5 is really good at animations. The project is meant to have fun with animations and try new ideas with AI.&lt;/p&gt;

&lt;p&gt;The result is &lt;strong&gt;&lt;a href="https://github.com/dooa-ansari/react-loaders" rel="noopener noreferrer"&gt;react-loaders&lt;/a&gt;&lt;/strong&gt;: 10 loaders, zero dependencies, each one a folder you can copy into your app.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎬 A few of them
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Glow Dust&lt;/strong&gt;: the button dissolves into ~1,100 particles that drift through a "wind" field. Move your finger through it and the dust swirls around you. At the end, it all gathers into a glowing ✓.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb1wkjocy4zk5a90121hj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb1wkjocy4zk5a90121hj.gif" alt="Glow Dust" width="260" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shooting Star&lt;/strong&gt;: the button becomes a star and launches. A meteor shower follows (swipe to fling your own), then a constellation draws a ✓.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq1143nyw9170v7i1kdcu.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq1143nyw9170v7i1kdcu.gif" alt="Shooting Star" width="260" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cat &amp;amp; Mouse&lt;/strong&gt;: a mouse escapes from the button, a cat chases it for three laps… then pounces. &lt;em&gt;Gotcha!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffvaqmvhcv1kjn31iwyqj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ffvaqmvhcv1kjn31iwyqj.gif" alt="Cat &amp;amp; Mouse" width="260" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The others: Glow Shore (bioluminescent waves you can touch), Heartbeat, Fireworks, Savanna Sunset, Flower Bloom, Thunderstorm and Coin Rush (a tiny retro platformer).&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Try it
&lt;/h2&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/dooa-ansari/react-loaders" rel="noopener noreferrer"&gt;github.com/dooa-ansari/react-loaders&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://react-loaders-production.up.railway.app/" rel="noopener noreferrer"&gt;Test it live&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run it locally with &lt;code&gt;npm install &amp;amp;&amp;amp; npm run dev&lt;/code&gt;, swipe through the cards, and play with the interactive ones. Glow Dust on a phone is weirdly relaxing.&lt;/p&gt;

</description>
      <category>react</category>
      <category>css</category>
      <category>javascript</category>
      <category>claude</category>
    </item>
    <item>
      <title>I Built a Claude Skill That Turns a Boring Resume Into an Animated Web Page</title>
      <dc:creator>Dooa Ansaari</dc:creator>
      <pubDate>Fri, 16 Oct 2026 20:11:02 +0000</pubDate>
      <link>https://dev.to/dooaansari/i-built-a-claude-skill-that-turns-a-boring-resume-into-an-animated-web-page-e70</link>
      <guid>https://dev.to/dooaansari/i-built-a-claude-skill-that-turns-a-boring-resume-into-an-animated-web-page-e70</guid>
      <description>&lt;p&gt;I wanted to try something really fun for generating online profiles and websites; mostly, I wanted it to be customised for each person and have some personality. &lt;/p&gt;

&lt;p&gt;So I built a small &lt;strong&gt;Claude skill&lt;/strong&gt; that takes a normal resume (or a LinkedIn PDF) and turns it into an &lt;strong&gt;animated, interactive one-page profile&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;In this post, I'll show you what it does, how it works under the hood, and how you can try it yourself in about two minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Here's what it looks like
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Friter73js0xbw19ast74.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Friter73js0xbw19ast74.gif" alt="Animated resume demo: a career shown as game levels with an animated avatar" width="560" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demo uses a fictional person, so no real data was harmed in the making of this GIF. 😄&lt;/p&gt;

&lt;h2&gt;
  
  
  What the skill builds
&lt;/h2&gt;

&lt;p&gt;Here's what ends up on the page:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;An animated avatar&lt;/strong&gt; that blinks, types, waves and shows little speech bubbles. You can pick the hairstyle, colors, glasses and so on.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your career as game levels.&lt;/strong&gt; Each job is a level, with a "LEVEL UP!" pop and the skill you unlocked there.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Achievement counters&lt;/strong&gt; and &lt;strong&gt;"why hire me"&lt;/strong&gt; cards, each one tied to something real from your CV.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A character sheet&lt;/strong&gt; with a small animated "happy place" scene and some personality perks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Your GitHub projects&lt;/strong&gt; shown as an interactive graph of projects and technologies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the output is just &lt;strong&gt;one HTML file&lt;/strong&gt;. No framework, no build step. You can drop it on GitHub Pages, and you're done.&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works (the simple version)
&lt;/h2&gt;

&lt;p&gt;When you ask Claude to make an animated resume, the skill walks through four steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;It asks for your resume.&lt;/strong&gt; PDF, DOCX, plain text, or a LinkedIn "Save to PDF" export all work. You can also share your GitHub username.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;It asks a few quick questions&lt;/strong&gt;, like which theme you want, what your avatar should look like, your favourite colours, your hobbies, and the role you're aiming for.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That's the whole trick. Claude does the reading and the interviewing, and a plain Python script does the building.&lt;/p&gt;

&lt;p&gt;Here's roughly how the skill folder is laid out:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;skills/animated-resume/
├── SKILL.md                    # the instructions Claude follows
├── assets/template.html        # the animated page
├── assets/example-profile.json # a full fictional example
├── references/schema.md        # every profile.json field
└── scripts/build.py            # profile.json → index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;p&gt;If you use &lt;strong&gt;Claude Code&lt;/strong&gt;, installing it takes two commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin marketplace add dooa-ansari/animated-resume-claude-skill
/plugin install animated-resume@animated-resume
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then just ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make me an animated resume from my CV.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you use the &lt;strong&gt;Claude app&lt;/strong&gt; (claude.ai or desktop), download &lt;code&gt;animated-resume-skill.zip&lt;/code&gt; from the repo and upload it under &lt;strong&gt;Settings → Capabilities → Skills&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting it online
&lt;/h2&gt;

&lt;p&gt;Since the result is a single HTML file, hosting it is easy:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Put &lt;code&gt;index.html&lt;/code&gt; in a GitHub repo.&lt;/li&gt;
&lt;li&gt;Go to &lt;strong&gt;Settings → Pages → Deploy from a branch&lt;/strong&gt; and pick &lt;code&gt;main&lt;/code&gt; / &lt;code&gt;(root)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Your page goes live at &lt;code&gt;https://&amp;lt;your-username&amp;gt;.github.io/&amp;lt;repo&amp;gt;/&lt;/code&gt;.
Now you have a link you can put on your LinkedIn or in your email signature.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Wrapping up
&lt;/h2&gt;

&lt;p&gt;The code is open source under the MIT license, so feel free to use it, fork it, or borrow ideas for your own skill:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://github.com/dooa-ansari/animated-resume-claude-skill" rel="noopener noreferrer"&gt;github.com/dooa-ansari/animated-resume-claude-skill&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Learning AI as a software developer</title>
      <dc:creator>Dooa Ansaari</dc:creator>
      <pubDate>Wed, 07 Oct 2026 17:14:56 +0000</pubDate>
      <link>https://dev.to/dooaansari/learning-ai-as-a-software-developer-11</link>
      <guid>https://dev.to/dooaansari/learning-ai-as-a-software-developer-11</guid>
      <description>&lt;p&gt;I've been writing software for years – 10 years now – starting with the blue screen of &lt;strong&gt;Turbo C&lt;/strong&gt;, &lt;strong&gt;Android&lt;/strong&gt;, &lt;strong&gt;React&lt;/strong&gt; and now &lt;strong&gt;AI&lt;/strong&gt;. Assisted AI development is not an issue, but applied AI, LLM integrations, RAG, tuning, etc., seem like a whole different world to me. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm5oh6vvr4rti5ejea6kd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fm5oh6vvr4rti5ejea6kd.png" alt="Turbo C Image with Hello AI" width="800" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I ask myself this question every day, and a lot of times, do I need to learn all of this? Am I afraid of being left behind or being archived like an old library? Anyways, I'm finding time to build small things on AI.   &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I have recently started to learn the concepts of &lt;em&gt;RAG&lt;/em&gt;, embeddings and &lt;em&gt;LLM&lt;/em&gt; integrations. I came across &lt;em&gt;GraphRAG&lt;/em&gt; as well, which seemed like an awesome idea. &lt;/p&gt;

&lt;p&gt;GraphRAG was actually more interesting and surprising for me, trying to understand how link traversal works and how indexing happens. &lt;/p&gt;

&lt;p&gt;To really see the process, I built &lt;a href="https://github.com/dooa-ansari/GraphRag-Chats" rel="noopener noreferrer"&gt;GraphRAG Chats&lt;/a&gt;, an open-source React Flow app. You draw a graph by hand, prepare it for search, ask it a question, and watch which nodes and relationships the answer came from.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjk8h4qg484hhznbiqej5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjk8h4qg484hhznbiqej5.gif" alt="Small Demonstration of Graphs" width="600" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. GraphRAG
&lt;/h2&gt;

&lt;p&gt;RAG (retrieval-augmented generation) means the AI looks things up in your data before it answers. Plain RAG finds text chunks that are similar to the question.&lt;/p&gt;

&lt;p&gt;GraphRAG adds relationships. Your data lives in a graph database such as &lt;strong&gt;Neo4j&lt;/strong&gt;, as nodes. Neo4j can also store embeddings in a vector index, so one database handles both parts: finding the right starting node by meaning and then following its relationships. &lt;/p&gt;

&lt;h2&gt;
  
  
  2. Embeddings
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What are embeddings?&lt;/strong&gt; Numbers. A list of a few hundred or a few thousand of them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What do the numbers mean?&lt;/strong&gt; They capture the &lt;em&gt;meaning&lt;/em&gt; of a piece of text. Texts with a similar meaning get similar numbers, so you can measure how close two meanings are.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where does the text come from?&lt;/strong&gt; From your own data. You turn each piece of data into a plain, human-readable sentence first, for example, "Ben is a person. Backend engineer," and send that text to an embedding model.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Process Step by Step
&lt;/h2&gt;

&lt;p&gt;&lt;u&gt;Preparing the data (done once):&lt;/u&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create the graph and define all your relationships properly.&lt;/li&gt;
&lt;li&gt;Save it to a graph database (Neo4j in my case).&lt;/li&gt;
&lt;li&gt;Turn each node into readable text.&lt;/li&gt;
&lt;li&gt;Send that text to an embedding model, and store the embedding on each node in Neo4j's vector index.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;u&gt;Answering a question (done every time):&lt;/u&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Turn the question into an embedding with the same model.&lt;/li&gt;
&lt;li&gt;Use vector search to find the nodes whose embeddings are closest to the question. These are the starting points.&lt;/li&gt;
&lt;li&gt;Traverse the graph from those nodes to collect their relationships and neighbours.&lt;/li&gt;
&lt;li&gt;Send the question plus everything found to an LLM, which writes the answer.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Step 8&lt;/strong&gt; is the "generation" in retrieval-augmented generation. The LLM only writes the answer; the graph decides what facts it gets to see.&lt;/p&gt;

&lt;p&gt;Most of this turned out to be skills I already had as a developer: modelling data, calling APIs, storing things in a database, and debugging when the result is wrong. The new part is a handful of concepts, and they click much faster when you can see them happen.&lt;/p&gt;

&lt;p&gt;I would recommend that other developers as well learn by building and do not hesitate to make mistakes. AI transformation is a difficult time, but let's go through it by keeping up with it. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/dooa-ansari/GraphRag-Chats" rel="noopener noreferrer"&gt;GitHub Project&lt;/a&gt;&lt;br&gt;
&lt;a href="https://rehbarai.com" rel="noopener noreferrer"&gt;Course Link&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tutorial</category>
      <category>beginners</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
