<?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: Akanksha Sharma</title>
    <description>The latest articles on DEV Community by Akanksha Sharma (@akanksha_sharma).</description>
    <link>https://dev.to/akanksha_sharma</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%2F3282373%2F78dfbb80-2fbb-43f8-b8ce-6d0b2d63bcc6.jpg</url>
      <title>DEV Community: Akanksha Sharma</title>
      <link>https://dev.to/akanksha_sharma</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akanksha_sharma"/>
    <language>en</language>
    <item>
      <title>What If Your Procrastination Had to Explain Itself?</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Sun, 04 Oct 2026 13:59:37 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/what-if-your-procrastination-had-to-explain-itself-3jj</link>
      <guid>https://dev.to/akanksha_sharma/what-if-your-procrastination-had-to-explain-itself-3jj</guid>
      <description>&lt;p&gt;My friend has a very consistent productivity strategy.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I'll do it after lunch.”&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“Okay, after dinner.”&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“I'll definitely do it tomorrow.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And somehow, &lt;strong&gt;tomorrow always wins.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;When I saw the &lt;strong&gt;Build for a Friend&lt;/strong&gt; challenge, I knew I didn't want to build another generic chatbot.&lt;/p&gt;

&lt;p&gt;And I definitely didn't want to build a to-do list with an &lt;strong&gt;“AI” button&lt;/strong&gt; slapped onto it.&lt;/p&gt;

&lt;p&gt;I wanted to build something around a problem I'd actually seen.&lt;/p&gt;

&lt;p&gt;So I built &lt;strong&gt;Tomorrow&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;An AI companion for one very specific problem:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What if the hardest part isn't finishing the task but starting it?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  • So, What Is Tomorrow?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Tomorrow&lt;/strong&gt; is an AI powered anti-procrastination companion.&lt;/p&gt;

&lt;p&gt;It doesn't try to manage your entire life.&lt;/p&gt;

&lt;p&gt;It doesn't give you a 47 step productivity plan.&lt;/p&gt;

&lt;p&gt;And it definitely doesn't respond to every problem with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You got this!”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead, it asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What's actually stopping you?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You tell Tomorrow what you're avoiding.&lt;/p&gt;

&lt;p&gt;It tries to understand &lt;strong&gt;why you're stuck&lt;/strong&gt;, breaks the task into something smaller, picks &lt;strong&gt;one realistic next step&lt;/strong&gt; and helps you start.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I need to finish my React assignment but I don't know where to start.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A typical productivity app might give you a checklist.&lt;/p&gt;

&lt;p&gt;Tomorrow might say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't finish the assignment yet.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open the project.&lt;/p&gt;

&lt;p&gt;Create the form component.&lt;/p&gt;

&lt;p&gt;That's it. Give it 15 minutes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because sometimes the problem isn't the task.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It's the size of the first step.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  • The Core Idea
&lt;/h2&gt;

&lt;p&gt;The entire experience revolves around a simple loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                  ┌──────────────────┐
                  │ What are you     │
                  │ avoiding?        │
                  └────────┬─────────┘
                           ↓
                  ┌──────────────────┐
                  │ Understand the   │
                  │ blocker          │
                  └────────┬─────────┘
                           ↓
                  ┌──────────────────┐
                  │ Break the task   │
                  │ into smaller     │
                  │ actions          │
                  └────────┬─────────┘
                           ↓
                  ┌──────────────────┐
                  │ Pick ONE next    │
                  │ action           │
                  └────────┬─────────┘
                           ↓
                  ┌──────────────────┐
                  │ Focus session    │
                  └────────┬─────────┘
                           ↓
                  ┌──────────────────┐
                  │ Check in         │
                  └────────┬─────────┘
                           ↓
                     ┌─────┴─────┐
                     ↓           ↓
                   Done        Stuck
                     ↓           ↓
                Next step     Reassess
                     │           │
                     └─────┬─────┘
                           ↓
                       Start again
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The interesting part isn't really the timer.&lt;/p&gt;

&lt;p&gt;It's the &lt;strong&gt;feedback loop&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tomorrow doesn't assume the first plan worked.&lt;/p&gt;

&lt;p&gt;If the user gets stuck that becomes new information.&lt;/p&gt;

&lt;p&gt;If the user finishes it moves forward.&lt;/p&gt;

&lt;p&gt;If the task turns out to be bigger than expected it breaks it down again.&lt;/p&gt;

&lt;p&gt;The goal isn't perfect planning.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The goal is progress.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  • Why Procrastination?
&lt;/h2&gt;

&lt;p&gt;This project started with a pretty simple observation.&lt;/p&gt;

&lt;p&gt;Procrastination can look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       Big Task
          ↓
   "I'll do it later"
          ↓
        Guilt
          ↓
      Avoidance
          ↓
   Task feels bigger
          ↓
      "Tomorrow."
          ↓
        Repeat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tomorrow tries to interrupt that loop:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;       Big Task
          ↓
    Tell Tomorrow
          ↓
   Find the blocker
          ↓
    Make it smaller
          ↓
   Start for 15 min
          ↓
       Progress
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Not:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Become a productivity machine.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Let's make starting a little easier.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  • What Does the AI Actually Do?
&lt;/h2&gt;

&lt;p&gt;I didn't want the AI to generate motivational quotes and call that intelligence.&lt;/p&gt;

&lt;p&gt;Its job is much more specific.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Understand the Situation
&lt;/h3&gt;

&lt;p&gt;The user explains what they're avoiding.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“I need to apply for internships but there are so many websites and I don't know where to begin.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The obvious response would be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You're procrastinating.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Cool.&lt;/p&gt;

&lt;p&gt;Not very helpful. &lt;/p&gt;

&lt;p&gt;The actual problem might be &lt;strong&gt;overwhelm&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So Tomorrow tries to identify the blocker behind the task.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Find the Blocker
&lt;/h3&gt;

&lt;p&gt;Different blockers need different responses.&lt;/p&gt;

&lt;p&gt;Some examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The task feels too large&lt;/li&gt;
&lt;li&gt;The first step isn't clear&lt;/li&gt;
&lt;li&gt;The user doesn't know how to begin&lt;/li&gt;
&lt;li&gt;They're overwhelmed&lt;/li&gt;
&lt;li&gt;They're tired&lt;/li&gt;
&lt;li&gt;They're afraid of doing it badly&lt;/li&gt;
&lt;li&gt;The task feels boring&lt;/li&gt;
&lt;li&gt;They've postponed it for so long that starting feels uncomfortable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the problem is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I don't know where to start.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Give them a starting point.&lt;/p&gt;

&lt;p&gt;If it's:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“This feels huge.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Shrink the task.&lt;/p&gt;

&lt;p&gt;If it's:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I'm scared I'll do it badly.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The next step might simply be creating a rough first draft.&lt;/p&gt;

&lt;p&gt;The AI isn't only asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What should you do?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's also asking:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Why aren't you doing it?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  3. Shrink the Task
&lt;/h3&gt;

&lt;p&gt;Let's say the user enters:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Apply for internships&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's not really one task.&lt;/p&gt;

&lt;p&gt;It's a tiny project pretending to be a task. 😭&lt;/p&gt;

&lt;p&gt;Tomorrow can turn it into:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Open your resume.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Pick one internship.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Read only the requirements.&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Decide whether you want to apply.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The goal isn't to solve the entire journey in one response.&lt;/p&gt;

&lt;p&gt;It's to find the &lt;strong&gt;smallest useful action&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  • What a Real Session Looks Like
&lt;/h2&gt;

&lt;p&gt;This is where the idea becomes more than a chatbot.&lt;/p&gt;

&lt;p&gt;Imagine the user says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I need to apply for internships but I'm overwhelmed and keep putting it off.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Tomorrow first tries to understand the blocker.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Task:
Apply for internships

Possible blocker:
Overwhelm

Problem:
The task contains too many hidden steps.

Next action:
Open your resume.

Focus:
15 minutes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So instead of telling the user to spend the next three hours applying everywhere, Tomorrow gives them &lt;strong&gt;one thing&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Open your resume.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now imagine the user comes back and says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I didn't do it.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's not treated as failure.&lt;/p&gt;

&lt;p&gt;It's information.&lt;/p&gt;

&lt;p&gt;Tomorrow can ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What got in the way?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The user says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I opened LinkedIn and started scrolling.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now the next response can change.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Original task
     ↓
Apply for internships
     ↓
Blocker
Overwhelm
     ↓
First action
Open resume
     ↓
User got distracted
     ↓
Reassess
     ↓
Smaller action
Open the resume file only
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI isn't simply repeating:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Try again!”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It's using the failed attempt to decide what to do next.&lt;/p&gt;

&lt;p&gt;That's the part I cared about.&lt;/p&gt;




&lt;h2&gt;
  
  
  • From Chatbot to Workflow
&lt;/h2&gt;

&lt;p&gt;A normal chatbot might work like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ↓
Question
 ↓
AI response
 ↓
Conversation ends
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tomorrow is designed more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User
 ↓
Task
 ↓
Blocker
 ↓
Next action
 ↓
Task state
 ↓
Focus session
 ↓
User check-in
 ↓
Updated context
 ↓
New action
 ↺
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The response isn't just displayed as text.&lt;/p&gt;

&lt;p&gt;It influences the &lt;strong&gt;next state of the task&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That's what turns the AI from a chat box into part of the workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  • Task State
&lt;/h2&gt;

&lt;p&gt;I wanted the application to know where the user actually is instead of treating every message as a completely new conversation.&lt;/p&gt;

&lt;p&gt;The basic state flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;NEW
 ↓
BLOCKED
 ↓
BROKEN_DOWN
 ↓
STARTED
 ↓
COMPLETED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And when things don't go according to plan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;STARTED
   ↓
STUCK
   ↓
REASSESS
   ↓
NEW SMALLER STEP
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That &lt;strong&gt;STUCK → REASSESS&lt;/strong&gt; loop is important.&lt;/p&gt;

&lt;p&gt;Because real people don't follow plans perfectly.&lt;/p&gt;

&lt;p&gt;And honestly, if they did I probably wouldn't have built this. 😂&lt;/p&gt;

&lt;p&gt;The system needs to treat a failed attempt as context not as a dead end.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The plan didn't work. So let's figure out why.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  • How I Built It
&lt;/h2&gt;

&lt;p&gt;I kept the architecture intentionally simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Input
    ↓
React UI
    ↓
Task + Conversation State
    ↓
Context / Prompt Builder
    ↓
Open-Weight AI Model
    ↓
Blocker + Next Action
    ↓
Task State Update
    ↓
Focus Session
    ↓
User Check-In
    ↓
Updated Context
    ↺
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The frontend handles the interaction.&lt;/p&gt;

&lt;p&gt;The application state keeps track of where the user is.&lt;/p&gt;

&lt;p&gt;The context layer gives the model the information it needs about the current task and previous interaction.&lt;/p&gt;

&lt;p&gt;The model then helps determine things like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What is the user trying to do?
        ↓
What is blocking them?
        ↓
How can the task be reduced?
        ↓
What is ONE useful next action?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is what happens &lt;strong&gt;after&lt;/strong&gt; the model responds.&lt;/p&gt;

&lt;p&gt;The result is used to update the task workflow rather than simply being shown as another chat message.&lt;/p&gt;




&lt;h2&gt;
  
  
  • The AI Decision Flow
&lt;/h2&gt;

&lt;p&gt;At a high level, the AI interaction can be thought of as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User message
     ↓
Extract task
     ↓
Identify blocker
     ↓
Estimate task complexity
     ↓
Generate smaller actions
     ↓
Select one next action
     ↓
Return structured guidance
     ↓
Update task state
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Input:
"I need to finish my React project but I'm overwhelmed."

        ↓

Task:
Finish React project

Blocker:
Overwhelm

        ↓

Breakdown:
- Identify missing feature
- Open relevant component
- Create component
- Connect component
- Test it

        ↓

Selected next action:
Open the project and identify the missing feature.

        ↓

State:
STARTED
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is important because I don't want the model to produce a giant wall of productivity advice.&lt;/p&gt;

&lt;p&gt;I want the output to be useful to the application's workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  • Why This Isn't Just an “AI Button”
&lt;/h2&gt;

&lt;p&gt;This was one of the biggest design decisions in the project.&lt;/p&gt;

&lt;p&gt;If the AI were removed the app would lose the part that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;interprets the user's blocker&lt;/li&gt;
&lt;li&gt;decides how much to break down the task&lt;/li&gt;
&lt;li&gt;adapts to failed attempts&lt;/li&gt;
&lt;li&gt;suggests the next smallest action&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model isn't decorating the interface.&lt;/p&gt;

&lt;p&gt;It's helping determine &lt;strong&gt;what happens next&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That makes the open-weight AI part of the core product logic rather than an extra feature added to the UI.&lt;/p&gt;




&lt;h2&gt;
  
  
  • Why Open-Weight AI?
&lt;/h2&gt;

&lt;p&gt;This is where the project became more interesting to me.&lt;/p&gt;

&lt;p&gt;At first, the idea was simply:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I'll use an AI model to help break down tasks.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But then I thought about the kind of information Tomorrow could eventually handle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Personal goals&lt;/li&gt;
&lt;li&gt;Unfinished work&lt;/li&gt;
&lt;li&gt;Study plans&lt;/li&gt;
&lt;li&gt;Career plans&lt;/li&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;li&gt;Routines&lt;/li&gt;
&lt;li&gt;Previous conversations&lt;/li&gt;
&lt;li&gt;Recurring struggles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's a lot of personal context.&lt;/p&gt;

&lt;p&gt;And I didn't want the long-term version of Tomorrow to require sending all of that to a closed AI provider.&lt;/p&gt;

&lt;p&gt;So I designed the project around an &lt;strong&gt;open-weight AI model&lt;/strong&gt; and a local-friendly architecture.&lt;/p&gt;

&lt;p&gt;The open model isn't there just because the challenge asks for open AI.&lt;/p&gt;

&lt;p&gt;It changes what the product can eventually become.&lt;/p&gt;

&lt;p&gt;A productivity assistant that knows your unfinished work and personal struggles is dealing with information that can feel much more sensitive than an ordinary chatbot conversation.&lt;/p&gt;

&lt;p&gt;That's why local inference is an especially interesting direction for this type of product.&lt;/p&gt;




&lt;h2&gt;
  
  
  • Why Local AI Makes Sense Here
&lt;/h2&gt;

&lt;p&gt;Imagine telling your productivity assistant:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I've been avoiding job applications because I'm scared I'll get rejected.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's much more personal than:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Give me a pasta recipe.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;😂&lt;/p&gt;

&lt;p&gt;For something like Tomorrow, privacy matters.&lt;/p&gt;

&lt;p&gt;A long-term version could work like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;              User
                │
                ▼
        Personal Context
                │
                ▼
          Local AI Model
                │
                ▼
        Next Best Action
                │
                ▼
              User
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The idea is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Your personal productivity context shouldn't automatically have to leave your device just to get useful AI assistance.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And because the model is open-weight, the project isn't permanently tied to one proprietary AI provider.&lt;/p&gt;




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

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  AI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Open-weight AI model&lt;/li&gt;
&lt;li&gt;Local-friendly inference&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Application Logic
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Task state management&lt;/li&gt;
&lt;li&gt;Conversational workflow&lt;/li&gt;
&lt;li&gt;Context/prompt construction&lt;/li&gt;
&lt;li&gt;Blocker identification&lt;/li&gt;
&lt;li&gt;Task decomposition&lt;/li&gt;
&lt;li&gt;Focus-session flow&lt;/li&gt;
&lt;li&gt;Check-in and reassessment loop&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  • What Was Actually Hard?
&lt;/h2&gt;

&lt;p&gt;The interesting part of building an AI product isn't always getting the model to respond.&lt;/p&gt;

&lt;p&gt;It's getting the response to be &lt;strong&gt;useful&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;One problem I had to think about was task size.&lt;/p&gt;

&lt;p&gt;If the user says:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I need to finish my project.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A technically correct response could be:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Break the project into smaller tasks.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But that's not actionable.&lt;/p&gt;

&lt;p&gt;The user is still staring at the same giant project.&lt;/p&gt;

&lt;p&gt;So the system needs to go one level deeper:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Finish my project"
        ↓
"What part?"
        ↓
"Build the frontend"
        ↓
"What part of the frontend?"
        ↓
"Create the login page"
        ↓
"What's the smallest action?"
        ↓
"Open the project and create Login.jsx"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's the difference between &lt;strong&gt;advice&lt;/strong&gt; and an &lt;strong&gt;actionable next step&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Another challenge is what happens when the user doesn't complete that step.&lt;/p&gt;

&lt;p&gt;A normal chatbot might simply suggest the same thing again.&lt;/p&gt;

&lt;p&gt;Tomorrow needs to treat that as information.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The plan didn't work. So let's figure out why.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That feedback is what makes the workflow adaptive.&lt;/p&gt;




&lt;h2&gt;
  
  
  • Why I Built It for a Friend
&lt;/h2&gt;

&lt;p&gt;This is probably the most important part of the challenge for me.&lt;/p&gt;

&lt;p&gt;I could have started with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What cool AI application should I build?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead, I started with:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What does my friend actually struggle with?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer was pretty obvious.&lt;/p&gt;

&lt;p&gt;They didn't need another productivity lecture.&lt;/p&gt;

&lt;p&gt;They didn't need a complicated dashboard.&lt;/p&gt;

&lt;p&gt;They needed help getting past:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I'll do it tomorrow.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I built around that.&lt;/p&gt;

&lt;p&gt;And starting with a person instead of a technology changed the product.&lt;/p&gt;

&lt;p&gt;It made me remove things that sounded cool but didn't really solve the problem.&lt;/p&gt;

&lt;p&gt;No giant productivity dashboard.&lt;/p&gt;

&lt;p&gt;No unnecessary streak system.&lt;/p&gt;

&lt;p&gt;No pretending that waking up at 5 AM will magically fix everything.&lt;/p&gt;

&lt;p&gt;Just:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What are you avoiding?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the smallest thing you can do next?&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  • What I Learned
&lt;/h2&gt;

&lt;p&gt;The biggest thing I learned from this project was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI doesn't have to solve the entire problem.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes it just needs to solve the &lt;strong&gt;next 10 minutes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That changed how I thought about the product.&lt;/p&gt;

&lt;p&gt;I initially imagined features like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Streaks&lt;/li&gt;
&lt;li&gt;Analytics&lt;/li&gt;
&lt;li&gt;Habit tracking&lt;/li&gt;
&lt;li&gt;Productivity scores&lt;/li&gt;
&lt;li&gt;Daily reports&lt;/li&gt;
&lt;li&gt;Complex schedules&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But then I asked myself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Would any of this actually help my friend start?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not necessarily.&lt;/p&gt;

&lt;p&gt;So I kept stripping things back.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One problem.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One person.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One next step.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And honestly, I think the product got better every time I removed something.&lt;/p&gt;




&lt;h2&gt;
  
  
  • What's Next?
&lt;/h2&gt;

&lt;p&gt;There are a few directions I'd love to explore.&lt;/p&gt;

&lt;h3&gt;
  
  
  Voice Mode
&lt;/h3&gt;

&lt;p&gt;Instead of typing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I'm avoiding my assignment…”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;the user could just say it.&lt;/p&gt;

&lt;p&gt;That could make the interaction feel much more natural.&lt;/p&gt;

&lt;h3&gt;
  
  
  Procrastination Patterns
&lt;/h3&gt;

&lt;p&gt;Over time, Tomorrow could notice recurring patterns.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“You tend to postpone tasks when the first step isn't clear.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Or:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“You usually get started when the task is broken into smaller actions.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That could make the assistant more personalized without requiring the user to explain everything from scratch every time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fully Local Mode
&lt;/h3&gt;

&lt;p&gt;The long-term goal is to make the entire experience work locally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;UI
 ↓
Local Data
 ↓
Local AI
 ↓
Personalized Guidance
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No cloud AI dependency for the core experience.&lt;/p&gt;

&lt;p&gt;Just a private AI companion running on your own machine.&lt;/p&gt;




&lt;h2&gt;
  
  
  • Agent Session
&lt;/h2&gt;

&lt;p&gt;The project was built and tested through an agent-assisted development workflow as part of the challenge.&lt;/p&gt;

&lt;p&gt;The agent workflow helped iterate on the application logic, task flow and user experience while keeping the core idea focused on one question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What's the smallest useful action the user can take next?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;My friend didn't need another app telling them:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Wake up at 5 AM.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;They didn't need a 12-step morning routine.&lt;/p&gt;

&lt;p&gt;They didn't need another productivity guru.&lt;/p&gt;

&lt;p&gt;They needed something that could say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Forget the whole thing for a second. What's the smallest thing you can do right now?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's what I wanted Tomorrow to become.&lt;/p&gt;

&lt;p&gt;Not an AI that manages your entire life.&lt;/p&gt;

&lt;p&gt;Not another to-do list.&lt;/p&gt;

&lt;p&gt;Not another chatbot that gives you motivational paragraphs and disappears.&lt;/p&gt;

&lt;p&gt;Just a small, private, open-AI companion that helps you take the first step.&lt;/p&gt;

&lt;p&gt;Because sometimes the hardest part of getting something done...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;is simply starting.&lt;/strong&gt; &lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Git Without the Confusion: The Commands You’ll Actually Use</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Tue, 29 Sep 2026 15:43:31 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/git-without-the-confusion-the-commands-youll-actually-use-7l1</link>
      <guid>https://dev.to/akanksha_sharma/git-without-the-confusion-the-commands-youll-actually-use-7l1</guid>
      <description>&lt;p&gt;If you're new to Git, you've probably seen a command like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; feature/login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;…and thought:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Okay… but what exactly am I supposed to remember?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Git has &lt;em&gt;a lot&lt;/em&gt; of commands.&lt;/p&gt;

&lt;p&gt;The good news?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You don't need to memorize all of them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For everyday development there's a small set of commands you'll use again and again.&lt;/p&gt;

&lt;p&gt;So instead of throwing 50+ commands at you here's a &lt;strong&gt;practical Git cheat sheet for beginners&lt;/strong&gt; that you can bookmark and come back to whenever Git decides to confuse you.&lt;/p&gt;




&lt;h1&gt;
  
  
  ⚡ The Quick Git Cheat Sheet
&lt;/h1&gt;

&lt;p&gt;Before getting into the details, here's the short version:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;I want to...&lt;/th&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Set my Git name&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git config&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Start Git in a project&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Download a repository&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git clone&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;See what's changed&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Review my changes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git diff&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stage changes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git add&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Save a checkpoint&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git commit&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;View commit history&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git log&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create a branch&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git branch&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Switch branches&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git switch&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Merge a branch&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git merge&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Upload commits&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Get remote changes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Check remote changes without integrating&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git fetch&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Temporarily save changes&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git stash&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Safely undo a commit&lt;/td&gt;
&lt;td&gt;&lt;code&gt;git revert&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;You don't need to memorize this table.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Bookmark it. That's literally what it's here for. *&lt;/em&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  1. Configure Git
&lt;/h1&gt;

&lt;p&gt;Before using Git, tell it who you are.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Set Your Name
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.name &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tells Git which name to associate with your commits.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Set Your Email
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--global&lt;/span&gt; user.email &lt;span class="s2"&gt;"you@example.com"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sets the email associated with your commits.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Check Your Configuration
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git config &lt;span class="nt"&gt;--list&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Useful when you want to verify your Git settings.&lt;/p&gt;

&lt;p&gt;Think of this as telling Git:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Hey, these commits belong to me.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  2. Start Working With a Repository
&lt;/h1&gt;

&lt;p&gt;There are two common ways to start working with Git.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Create a New Repository
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Initializes Git inside your current project folder.&lt;/p&gt;

&lt;p&gt;Use this when you already have a project on your computer and want Git to start tracking it.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Clone an Existing Repository
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone &amp;lt;repo_url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Downloads an existing repository to your computer.&lt;/p&gt;

&lt;p&gt;Use this when a project already exists on a remote platform such as GitHub and you want a local copy.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Easy way to remember:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;git init&lt;/code&gt; → start Git here&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;git clone&lt;/code&gt; → bring an existing repository here&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  3. Track and Save Your Changes
&lt;/h1&gt;

&lt;p&gt;This is where you'll probably spend most of your time.&lt;/p&gt;

&lt;p&gt;Imagine this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;You changed three files and now have absolutely no idea what Git thinks happened.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Start with:&lt;/p&gt;

&lt;h3&gt;
  
  
  • Check What Changed
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Shows modified, staged and untracked files.&lt;/p&gt;

&lt;p&gt;When you're confused about what's happening in your repository:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run &lt;code&gt;git status&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Seriously.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Review Your Changes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git diff
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Shows changes that haven't been staged yet.&lt;/p&gt;

&lt;p&gt;It's useful when you want to review your work before staging it.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What exactly did I change?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;→ &lt;code&gt;git diff&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  • Stage a Specific File
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &amp;lt;file&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This tells Git:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Include this file's changes in my next commit.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  • Stage Everything
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Stages changes under the current directory and its subdirectories.&lt;/p&gt;

&lt;p&gt;It's convenient when you're sure you want to include those changes.&lt;/p&gt;

&lt;p&gt;Still, it's a good habit to check:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;before committing.&lt;/p&gt;

&lt;p&gt;If you only want to stage a specific file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &amp;lt;file&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  • Create a Commit
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Add login form"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A commit is basically a &lt;strong&gt;checkpoint&lt;/strong&gt; for your project.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"changes"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;prefer something descriptive:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Fix navbar responsiveness"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Good commit messages make your project history much easier to understand.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commit = save a checkpoint of your staged changes.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  • See Your Commit History
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Shows previous commits along with information such as the author, date and commit message.&lt;/p&gt;

&lt;p&gt;Want a shorter version?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git log &lt;span class="nt"&gt;--oneline&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives you a compact view of your commit history.&lt;/p&gt;




&lt;h1&gt;
  
  
  4. Work With Branches
&lt;/h1&gt;

&lt;p&gt;Branches let you work on features, experiments or fixes separately from your main branch.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;main
 │
 ├── feature/navbar
 ├── feature/login
 └── fix/mobile-layout
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of experimenting directly on &lt;code&gt;main&lt;/code&gt;, you can create a separate branch for your work.&lt;/p&gt;

&lt;h3&gt;
  
  
  • See Your Branches
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lists your local branches.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Create a Branch
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch &amp;lt;name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git branch feature/navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creates a new branch but does &lt;strong&gt;not&lt;/strong&gt; switch you to it.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Switch Branches
&lt;/h3&gt;

&lt;p&gt;Modern Git provides &lt;code&gt;git switch&lt;/code&gt; specifically for changing branches:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git switch &amp;lt;branch&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git switch feature/navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You may also see this older, still-common command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout feature/navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You don't necessarily need to use &lt;code&gt;checkout&lt;/code&gt; for everyday branch switching but you should recognize it because you'll encounter it in older tutorials and projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Create and Switch to a Branch
&lt;/h3&gt;

&lt;p&gt;With modern Git:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git switch &lt;span class="nt"&gt;-c&lt;/span&gt; &amp;lt;branch&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git switch &lt;span class="nt"&gt;-c&lt;/span&gt; feature/navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This does two things:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create branch → Switch to branch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You may also see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; feature/navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both patterns are worth recognizing.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Merge a Branch
&lt;/h3&gt;

&lt;p&gt;Suppose you're currently on &lt;code&gt;main&lt;/code&gt; and want to bring changes from &lt;code&gt;feature/navbar&lt;/code&gt; into it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git merge feature/navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Git combines the changes from the specified branch into your current branch.&lt;/p&gt;

&lt;p&gt;The important part:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git merges into the branch you're currently on.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So if you're on &lt;code&gt;main&lt;/code&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 merge feature/navbar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;&lt;strong&gt;“Bring &lt;code&gt;feature/navbar&lt;/code&gt; into &lt;code&gt;main&lt;/code&gt;.”&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  5. Work With Remote Repositories
&lt;/h1&gt;

&lt;p&gt;Your local Git repository and a remote repository such as GitHub are separate.&lt;/p&gt;

&lt;p&gt;These commands help you synchronize them.&lt;/p&gt;

&lt;h3&gt;
  
  
  • See Connected Remotes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote &lt;span class="nt"&gt;-v&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Shows the remote repositories connected to your project.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Add a Remote
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git remote add origin &amp;lt;url&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;origin&lt;/code&gt; is simply the conventional name for the remote repository.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Push Your Commits
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push origin &amp;lt;branch&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uploads your local commits to the remote repository.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;push&lt;/code&gt; → send my commits to the remote&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  • Pull Remote Changes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git pull
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gets changes from the remote repository and integrates them into your current branch.&lt;/p&gt;

&lt;p&gt;Depending on your Git configuration that integration may involve merging or rebasing.&lt;/p&gt;

&lt;p&gt;For beginners, remember:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;pull&lt;/code&gt; → get remote changes + integrate them&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  • Fetch Remote Changes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git fetch
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Downloads information about remote changes &lt;strong&gt;without automatically integrating them&lt;/strong&gt; into your current branch.&lt;/p&gt;

&lt;p&gt;A simple way to remember the difference:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;fetch = get the information&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;pull = get + integrate&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  6. Undo and Manage Changes
&lt;/h1&gt;

&lt;p&gt;This is where Git can start feeling a little scary. &lt;/p&gt;

&lt;p&gt;But you don't need to memorize every recovery command.&lt;/p&gt;

&lt;p&gt;Here are some common situations.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Unstage a File
&lt;/h3&gt;

&lt;p&gt;If you've staged a file but want to remove it from the staging area while keeping your changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git restore &lt;span class="nt"&gt;--staged&lt;/span&gt; &amp;lt;file&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git restore &lt;span class="nt"&gt;--staged&lt;/span&gt; index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Think:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Keep my changes, but take this file out of staging.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You may also see:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git reset &amp;lt;file&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;in older tutorials and workflows.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Safely Undo a Commit
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git revert &amp;lt;commit_id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creates a new commit that reverses the changes introduced by an earlier commit.&lt;/p&gt;

&lt;p&gt;This is useful when you want to undo a committed change while keeping the existing history intact.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Temporarily Save Your Changes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Imagine you're working on something unfinished and suddenly need to switch branches.&lt;/p&gt;

&lt;p&gt;You don't want to commit the unfinished work.&lt;/p&gt;

&lt;p&gt;That's where &lt;code&gt;stash&lt;/code&gt; can help.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Temporarily stores your local changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  • Bring Stashed Changes Back
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git stash pop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Restores the most recently stashed changes and removes that stash entry if the changes are applied successfully.&lt;/p&gt;

&lt;p&gt;Easy way to remember:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;stash → put it away&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;stash pop → bring it back&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  • Remove a File
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;file&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Removes the file and stages that removal.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nb"&gt;rm &lt;/span&gt;old-file.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  • Rename or Move a File
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nb"&gt;mv&lt;/span&gt; &amp;lt;old&amp;gt; &amp;lt;new&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nb"&gt;mv &lt;/span&gt;old.js new.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Renames or moves a file while letting Git track the change.&lt;/p&gt;




&lt;h1&gt;
  
  
  7. The Git Workflow You'll Actually Use
&lt;/h1&gt;

&lt;p&gt;For many everyday tasks, the workflow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Make changes
     ↓
git status
     ↓
git diff
     ↓
git add .
     ↓
git commit -m "Describe your changes"
     ↓
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Think of it as:&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Change → Check → Review → Stage → Commit → Push&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;That's the basic rhythm you'll repeat constantly while working with Git.&lt;/p&gt;

&lt;p&gt;Once you understand this flow, individual commands become much easier to remember.&lt;/p&gt;




&lt;h1&gt;
  
  
  8. What to Remember First
&lt;/h1&gt;

&lt;p&gt;If you're completely new to Git, don't try to memorize everything at once.&lt;/p&gt;

&lt;p&gt;Start with these:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git status
git diff
git add
git commit
git log
git switch
git pull
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then gradually add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
git clone
git branch
git merge
git fetch
git stash
git revert
git restore
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You don't need to know Git perfectly before using Git.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use the commands. Understand what they do. Look them up when you forget.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Eventually, they become second nature.&lt;/p&gt;

&lt;p&gt;And when you forget one?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's what cheat sheets are for.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Bookmark This
&lt;/h1&gt;

&lt;p&gt;Git isn't about memorizing hundreds of commands.&lt;/p&gt;

&lt;p&gt;It's about understanding the workflow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Change
  ↓
Check
  ↓
Review
  ↓
Stage
  ↓
Commit
  ↓
Push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once that workflow makes sense, Git becomes much less intimidating.&lt;/p&gt;

&lt;p&gt;You don't need to remember every command today.&lt;/p&gt;

&lt;p&gt;You just need to know &lt;strong&gt;what you're trying to do&lt;/strong&gt; and which command helps you do it.&lt;/p&gt;

&lt;p&gt;And yes...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;you'll probably still Google &lt;code&gt;git stash&lt;/code&gt; six months from now.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Save this for the next time Git decides to humble you.&lt;/p&gt;

&lt;p&gt;And tell me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Which Git command took you the longest to understand? 👇&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>The AI Was Right. The Answer Was Still Wrong.</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Fri, 25 Sep 2026 14:37:12 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/the-ai-was-right-the-answer-was-still-wrong-2pl4</link>
      <guid>https://dev.to/akanksha_sharma/the-ai-was-right-the-answer-was-still-wrong-2pl4</guid>
      <description>&lt;p&gt;Have you ever asked AI to do something very specific and it did almost everything right?&lt;/p&gt;

&lt;p&gt;Except the one thing you specifically told it &lt;strong&gt;not&lt;/strong&gt; to do. &lt;/p&gt;

&lt;p&gt;That made me curious.&lt;/p&gt;

&lt;p&gt;Instead of asking &lt;strong&gt;“Which AI model is smartest?”&lt;/strong&gt; I wanted to test something much more specific:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Can AI actually follow small instructions while solving a task?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;I created a benchmark focused on &lt;strong&gt;instruction following in coding tasks&lt;/strong&gt;.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Fix this JavaScript function.&lt;br&gt;
Don't use &lt;code&gt;map()&lt;/code&gt;.&lt;br&gt;
Return only the corrected code.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The model isn't only expected to fix the bug.&lt;/p&gt;

&lt;p&gt;It also needs to follow every instruction.&lt;/p&gt;

&lt;p&gt;So I check:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Did it solve the problem?&lt;/li&gt;
&lt;li&gt;Did it use the requested language?&lt;/li&gt;
&lt;li&gt;Did it avoid the prohibited method?&lt;/li&gt;
&lt;li&gt;Did it follow the required output format?&lt;/li&gt;
&lt;li&gt;Did it change anything that wasn't requested?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because sometimes &lt;strong&gt;the answer is correct but the task isn't.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Tested the Models
&lt;/h2&gt;

&lt;p&gt;The testing flow is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Same prompt → Multiple models → Same evaluation → Compare&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For every task, I:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Give the exact same prompt to each model.&lt;/li&gt;
&lt;li&gt;Collect their responses.&lt;/li&gt;
&lt;li&gt;Check whether the main problem was solved.&lt;/li&gt;
&lt;li&gt;Check each instruction separately.&lt;/li&gt;
&lt;li&gt;Record which instructions were followed or violated.&lt;/li&gt;
&lt;li&gt;Compare the results across models.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This keeps the test focused on the model's behavior rather than changing the task for each model.&lt;/p&gt;

&lt;h3&gt;
  
  
  How I Measured It
&lt;/h3&gt;

&lt;p&gt;I didn't want a simple &lt;strong&gt;right/wrong&lt;/strong&gt; score.&lt;/p&gt;

&lt;p&gt;A response can solve the coding problem while still breaking one of the instructions.&lt;/p&gt;

&lt;p&gt;So I measure two things separately:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Task Correctness&lt;/strong&gt;&lt;br&gt;
Did the model actually solve the underlying coding problem?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Instruction Compliance&lt;/strong&gt;&lt;br&gt;
Did it follow the individual constraints in the prompt?&lt;/p&gt;

&lt;p&gt;For example if a task contains four requirements and the model follows three:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3 / 4 = 75% instruction compliance&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Across the benchmark these scores can show whether a model is not only capable of solving the problem but also capable of &lt;strong&gt;doing exactly what was asked&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why This Interested Me
&lt;/h3&gt;

&lt;p&gt;AI is becoming a bigger part of everyday coding.&lt;/p&gt;

&lt;p&gt;We often focus on whether a model can generate working code but real developer tasks usually come with constraints:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Don't change this.”&lt;/p&gt;

&lt;p&gt;“Use this approach.”&lt;/p&gt;

&lt;p&gt;“Return only the code.”&lt;/p&gt;

&lt;p&gt;“Don't use this method.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Those tiny instructions can completely change whether the response is actually useful.&lt;/p&gt;

&lt;p&gt;That's the behavior I wanted to investigate.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'm Looking For
&lt;/h2&gt;

&lt;p&gt;The interesting part isn't simply finding a model with the highest number.&lt;/p&gt;

&lt;p&gt;I'm looking for &lt;strong&gt;patterns&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Do models struggle more when there are several constraints?&lt;/p&gt;

&lt;p&gt;Does solving the code correctly make instruction following more reliable?&lt;/p&gt;

&lt;p&gt;Which types of instructions are most commonly ignored?&lt;/p&gt;

&lt;p&gt;And can a model be &lt;strong&gt;technically right while still being practically wrong?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Those are the questions this benchmark is designed to explore.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I'd Test Next
&lt;/h3&gt;

&lt;p&gt;If I expand the benchmark I'd add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multi-turn instructions&lt;/li&gt;
&lt;li&gt;Longer prompts&lt;/li&gt;
&lt;li&gt;More constraints in a single task&lt;/li&gt;
&lt;li&gt;Conflicting instructions&lt;/li&gt;
&lt;li&gt;Ambiguous instructions&lt;/li&gt;
&lt;li&gt;More complex code editing tasks&lt;/li&gt;
&lt;li&gt;Self correction after an instruction following mistake&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That could reveal whether instruction following remains reliable as tasks become more realistic.&lt;/p&gt;

&lt;h3&gt;
  
  
  Your Turn
&lt;/h3&gt;

&lt;p&gt;Now I'm curious about your experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the smallest instruction you've given an AI that it completely ignored?&lt;/strong&gt; 😭&lt;/p&gt;

&lt;p&gt;Drop it in the comments.&lt;/p&gt;

&lt;p&gt;Maybe your most frustrating AI moment becomes the next benchmark task.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>kagglechallenge</category>
      <category>ai</category>
      <category>machinelearning</category>
    </item>
    <item>
      <title>An AI Agent That Checks Before It Answers</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Fri, 18 Sep 2026 18:04:16 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/i-built-an-ai-agent-that-checks-before-it-answers-47hc</link>
      <guid>https://dev.to/akanksha_sharma/i-built-an-ai-agent-that-checks-before-it-answers-47hc</guid>
      <description>&lt;p&gt;I’ve had this happen more times than I’d like to admit.&lt;/p&gt;

&lt;p&gt;I ask AI a technical question.&lt;/p&gt;

&lt;p&gt;It gives me a beautifully written answer.&lt;/p&gt;

&lt;p&gt;I think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Wow. That makes sense.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then I check the documentation.&lt;/p&gt;

&lt;p&gt;And suddenly:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Oh.”&lt;/strong&gt; 😭&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The answer wasn't completely useless.&lt;/p&gt;

&lt;p&gt;It just didn't have enough context.&lt;/p&gt;

&lt;p&gt;That little problem became the idea behind &lt;strong&gt;ContextGuide&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What if an AI agent looked things up before answering?
&lt;/h2&gt;

&lt;p&gt;Instead of expecting an AI model to magically know everything, I wanted to give it something better:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;a reliable place to look.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ContextGuide is an AI agent that queries a structured Knowledge Base through &lt;strong&gt;Sanity Context + MCP&lt;/strong&gt; before generating an answer.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Don't just ask the AI what it knows. Give it somewhere useful to look.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How ContextGuide Works
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;              👤 USER
                 │
                 │ asks a question
                 ↓
        ┌─────────────────┐
        │  ContextGuide   │
        │                 │
        │ Understand the  │
        │ question        │
        └────────┬────────┘
                 ↓
        ┌─────────────────┐
        │ Sanity Context  │
        │                 │
        │ Find relevant   │
        │ knowledge       │
        └────────┬────────┘
                 ↓
        ┌─────────────────┐
        │  KNOWLEDGE BASE │
        │                 │
        │ Docs • Guides   │
        │ References      │
        └────────┬────────┘
                 ↓
        📚 Relevant Context
                 │
                 ↓
        🤖 Agent Reasoning
                 │
                 ↓
        💬 Answer + Sources
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The important part is that the agent doesn't immediately jump from:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question → Answer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There is a middle step:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Question → Context → Answer&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that middle step is the whole point.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Sanity?
&lt;/h2&gt;

&lt;p&gt;Let's say I ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Which authentication method should I use here?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A basic search might find ten pages containing the word &lt;em&gt;authentication&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Great.&lt;/p&gt;

&lt;p&gt;Except... which one actually answers my question? 😅&lt;/p&gt;

&lt;p&gt;That's where structured content becomes useful.&lt;/p&gt;

&lt;p&gt;With Sanity, information can be organized into meaningful content instead of being treated as one giant pile of text.&lt;/p&gt;

&lt;p&gt;ContextGuide can then retrieve the relevant information through &lt;strong&gt;Sanity Context&lt;/strong&gt; and access it through &lt;strong&gt;MCP&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So the agent isn't just matching words.&lt;/p&gt;

&lt;p&gt;It's trying to find &lt;strong&gt;the right context for the question&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Part That Interests Me Most
&lt;/h2&gt;

&lt;p&gt;What happens when the knowledge base contains conflicting information?&lt;/p&gt;

&lt;p&gt;Imagine:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📄 Guide A
"Use Method X."

        +

📄 Guide B
"Method X is outdated."

        ↓

      Agent

"These sources disagree."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's actually more interesting to me than an agent that confidently picks one answer.&lt;/p&gt;

&lt;p&gt;Because sometimes the honest answer isn't:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Here's the answer.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes it's:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Here's what the sources say and here's where they disagree.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That is information I can actually work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Each Piece Fits
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sanity
   ↓
Organizes the knowledge

Sanity Context
   ↓
Makes that knowledge queryable

MCP
   ↓
Connects the agent to it

ContextGuide
   ↓
Uses the retrieved context

User
   ↓
Gets an answer backed by the relevant content
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each piece has a job.&lt;/p&gt;

&lt;p&gt;Sanity isn't there just because the challenge says to use Sanity.&lt;/p&gt;

&lt;p&gt;It's part of the reason the agent can work this way.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Wanted to Build
&lt;/h2&gt;

&lt;p&gt;I wasn't trying to build an AI that knows everything.&lt;/p&gt;

&lt;p&gt;Honestly, that sounds exhausting. 😭&lt;/p&gt;

&lt;p&gt;I wanted to build an AI that knows &lt;strong&gt;when it should look something up&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Because maybe the future of useful AI isn't just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I know the answer.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Maybe it's:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Let me check the right information first.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And that's the idea behind ContextGuide.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Vibe-Coded a Website for Moods That Shouldn’t Exist</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Fri, 18 Sep 2026 17:14:16 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/i-vibe-coded-a-website-for-moods-that-shouldnt-exist-3gko</link>
      <guid>https://dev.to/akanksha_sharma/i-vibe-coded-a-website-for-moods-that-shouldnt-exist-3gko</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the Sanity Challenge, Path Two: Vibe-Code Something Strange.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I wanted to build something useful.&lt;/p&gt;

&lt;p&gt;Then I changed my mind. 😭&lt;/p&gt;

&lt;p&gt;Instead, I decided to build &lt;strong&gt;MoodShelf&lt;/strong&gt; -a tiny website for fictional moods that are weirdly relatable.&lt;/p&gt;

&lt;p&gt;Think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;☕ &lt;strong&gt;Monday Coffee&lt;/strong&gt;&lt;br&gt;
Tastes like unread emails.&lt;/p&gt;

&lt;p&gt;🛏️ &lt;strong&gt;The 5-Minute Nap&lt;/strong&gt;&lt;br&gt;
Somehow lasted 3 hours.&lt;/p&gt;

&lt;p&gt;💻 &lt;strong&gt;Deadline Mode&lt;/strong&gt;&lt;br&gt;
Activated exclusively at 11:57 PM.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Basically, a tiny museum for feelings that probably shouldn't have names.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;MoodShelf&lt;/strong&gt; is a collection of strange, fictional moods.&lt;/p&gt;

&lt;p&gt;Each mood has things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;Description&lt;/li&gt;
&lt;li&gt;Category&lt;/li&gt;
&lt;li&gt;Vibe score&lt;/li&gt;
&lt;li&gt;Image&lt;/li&gt;
&lt;li&gt;Related moods&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The fun part?&lt;/p&gt;

&lt;p&gt;Instead of hardcoding all of this into the website, I used &lt;strong&gt;Sanity&lt;/strong&gt; to manage the content.&lt;/p&gt;

&lt;h2&gt;
  
  
  How MoodShelf Works
&lt;/h2&gt;

&lt;p&gt;The workflow is pretty simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  Create a weird mood
          ↓
  Add the content in Sanity
          ↓
  Sanity stores the structured data
          ↓
  MoodShelf displays it
          ↓
  People browse the moods
          ↓
  "Why is this so relatable?"

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

&lt;/div&gt;



&lt;p&gt;The idea is to keep &lt;strong&gt;content and the website separate&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If I want to add a new ridiculous mood, I can add it in Sanity without rewriting the whole website.&lt;/p&gt;

&lt;p&gt;So the next time I invent something like &lt;strong&gt;“Sunday Scaries Lite™”&lt;/strong&gt;, I just add it to the collection and let MoodShelf do the rest.&lt;/p&gt;

&lt;p&gt;Which feels like an excellent use of technology. 😂&lt;/p&gt;

&lt;h2&gt;
  
  
  The Vibe-Coding Part
&lt;/h2&gt;

&lt;p&gt;My development process was basically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  "I have an idea."
        ↓
    Prompt AI
        ↓
    Generate
        ↓
  Look at what happened
        ↓
  Something breaks
        ↓
  Ask AI why
        ↓
     Fix it
        ↓
     Repeat

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

&lt;/div&gt;



&lt;p&gt;Very scientific.&lt;/p&gt;

&lt;p&gt;Very professional.&lt;/p&gt;

&lt;p&gt;Definitely not me staring at an error message wondering what I did. 😭&lt;/p&gt;

&lt;p&gt;But that was actually one of the interesting parts of the challenge.&lt;/p&gt;

&lt;p&gt;Vibe coding wasn't just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“AI, build everything for me.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was more like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Here's what I want. Now help me get there.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I still had to decide what the app should do, what the content should look like, what needed fixing and whether the generated code actually made sense.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Sanity?
&lt;/h2&gt;

&lt;p&gt;MoodShelf doesn't need complicated content.&lt;/p&gt;

&lt;p&gt;But it was a fun way to understand the difference between &lt;strong&gt;content and the website displaying that content&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sanity handles the content.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MoodShelf handles the experience.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That means I can keep adding completely unnecessary moods without constantly changing the app itself.&lt;/p&gt;

&lt;p&gt;Which feels like an excellent use of technology. 😂&lt;/p&gt;

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

&lt;p&gt;The biggest thing I learned wasn't how to make a website about fictional moods.&lt;/p&gt;

&lt;p&gt;It was how different development feels when you can describe an idea first and then iteratively shape the result with AI.&lt;/p&gt;

&lt;p&gt;You still need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;understand what you're building&lt;/li&gt;
&lt;li&gt;give clear instructions&lt;/li&gt;
&lt;li&gt;inspect the output&lt;/li&gt;
&lt;li&gt;catch mistakes&lt;/li&gt;
&lt;li&gt;make decisions&lt;/li&gt;
&lt;li&gt;and occasionally tell the AI, &lt;strong&gt;“No. That's not what I meant.”&lt;/strong&gt; 😭&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI can speed up the building process.&lt;/p&gt;

&lt;p&gt;But you still need to be the person holding the steering wheel.&lt;/p&gt;

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

&lt;p&gt;Does the world need another website containing fictional moods?&lt;/p&gt;

&lt;p&gt;Probably not.&lt;/p&gt;

&lt;p&gt;Did I enjoy building one anyway?&lt;/p&gt;

&lt;p&gt;Absolutely.&lt;/p&gt;

&lt;p&gt;Sometimes the best way to learn a new tool isn't to build another serious dashboard or task manager.&lt;/p&gt;

&lt;p&gt;Sometimes you just need to build something &lt;strong&gt;slightly ridiculous&lt;/strong&gt; and see where it takes you.&lt;/p&gt;

&lt;p&gt;And apparently, I had a lot of imaginary moods to catalogue. 🫠&lt;/p&gt;

&lt;p&gt;Now I'm curious...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What weird mood would you add to MoodShelf? 👀&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Give it a name and a one-line description in the comments.&lt;/p&gt;

&lt;p&gt;I might just have to add the best ones. 😂&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
    <item>
      <title>💙 KindLink - Because “I Want to Help” Is Not a Plan 😭</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Sat, 05 Sep 2026 16:04:05 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/kindlink-because-i-want-to-help-is-not-a-plan-4f3a</link>
      <guid>https://dev.to/akanksha_sharma/kindlink-because-i-want-to-help-is-not-a-plan-4f3a</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the Weekend Challenge: Generosity Edition.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Have you ever thought:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I really want to help people.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;…and then immediately:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Okay, but HOW?”&lt;/strong&gt; 🤔&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Same.&lt;/p&gt;

&lt;p&gt;We often want to be generous but turning that feeling into an actual action isn't always easy.&lt;/p&gt;

&lt;p&gt;That little gap between &lt;strong&gt;wanting to help&lt;/strong&gt; and &lt;strong&gt;knowing how to help&lt;/strong&gt; is what made me think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;What if something could connect the two?&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So for this challenge, I came up with &lt;strong&gt;KindLink&lt;/strong&gt;. 💙&lt;/p&gt;

&lt;h2&gt;
  
  
  🌱 What I Created
&lt;/h2&gt;

&lt;p&gt;KindLink is an AI powered platform concept designed to help people discover &lt;strong&gt;practical ways to give back based on what they already have.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because generosity isn't always about money.&lt;/p&gt;

&lt;p&gt;You might have:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Free time&lt;/li&gt;
&lt;li&gt;A useful skill&lt;/li&gt;
&lt;li&gt;Knowledge to share&lt;/li&gt;
&lt;li&gt;Resources someone needs&lt;/li&gt;
&lt;li&gt;Money to donate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“What can I give?” → “Here’s how I can use it.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🔄 How Would KindLink Work?
&lt;/h2&gt;

&lt;p&gt;Imagine opening KindLink and seeing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────────────┐
│     YOUR PROFILE     │
│                      │
│   Free Time          │
│   Skills             │
│   Interests          │
│   Knowledge          │
│   Resources          │
└──────────┬───────────┘
           ↓
     🤖 KINDLINK AI
           ↓
┌──────────────────────┐
│   YOUR KIND MATCHES  │
│                      │
│    Design for NGO    │
│    Mentor Students   │
│    Social Media Help │
└──────────┬───────────┘
           ↓
       ❤️ TAKE ACTION

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

&lt;/div&gt;



&lt;p&gt;No resume required. 😂&lt;/p&gt;

&lt;h3&gt;
  
  
  1️⃣ Tell KindLink what you can give
&lt;/h3&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“I have 2 hours every weekend, I'm good at graphic design and I want to help children.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's enough for KindLink to understand what you might be able to offer.&lt;/p&gt;

&lt;h3&gt;
  
  
  2️⃣ AI connects the dots 🤖
&lt;/h3&gt;

&lt;p&gt;Instead of throwing 500 random volunteering opportunities at you, the idea is for KindLink to consider:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your skills + Your interests + Your availability + Your limitations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;…and find opportunities that actually fit.&lt;/p&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────────┐
│ WHAT I HAVE  │
│              │
│ 2 hrs/week   │
│ Design skill │
└──────┬───────┘
       │
       +
       │
┌──────▼───────┐
│ WHAT I CARE  │
│    ABOUT     │
│              │
│ Helping kids │
└──────┬───────┘
       │
       +
       │
┌──────▼───────┐
│ MY LIMITS    │
│              │
│ Weekends     │
│ Online only  │
└──────┬───────┘
       ↓
   🤖 AI MATCH
       ↓
┌────────────────────┐
│ 🎯 95% MATCH       │
│                    │
│ Create educational │
│ materials for kids │
└────────────────────┘

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

&lt;/div&gt;



&lt;p&gt;So instead of:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Here are thousands of ways to volunteer. Good luck.”&lt;/strong&gt; 😭&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;KindLink could say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“This one looks like you.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  💡 What Could You Actually Do?
&lt;/h2&gt;

&lt;p&gt;For our imaginary graphic designer, KindLink might suggest:&lt;/p&gt;

&lt;p&gt;🎨 &lt;strong&gt;Create educational materials&lt;/strong&gt;&lt;br&gt;
Help a nonprofit create worksheets or learning resources.&lt;/p&gt;

&lt;p&gt;📱 &lt;strong&gt;Help with social media&lt;/strong&gt;&lt;br&gt;
Use design skills to help a small organization improve its online presence.&lt;/p&gt;

&lt;p&gt;📚 &lt;strong&gt;Mentor students online&lt;/strong&gt;&lt;br&gt;
Spend a couple of hours helping students learn something you're already good at.&lt;/p&gt;

&lt;p&gt;The goal isn't simply to tell people:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Go volunteer.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's to answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Here’s something YOU can realistically do.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;


&lt;h2&gt;
  
  
  ❤️ From Intention to Action
&lt;/h2&gt;

&lt;p&gt;Because there's a big difference between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“I should help someday.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“I'm helping this Saturday.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The journey could look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;💭 "I want to help"
          ↓
      🤔 "But how?"
          ↓
     🤖 KindLink
          ↓
   🎯 Find my match
          ↓
   📅 Pick a time
          ↓
     ❤️ "I'll help"

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

&lt;/div&gt;



&lt;p&gt;That's the whole idea.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Less friction. More action.&lt;/strong&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  🤖 Why AI?
&lt;/h2&gt;

&lt;p&gt;I didn't want to add AI just because every project apparently needs a chatbot now. 😭&lt;/p&gt;

&lt;p&gt;The actual problem is &lt;strong&gt;finding the right match&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;There are countless ways to help but not every opportunity is suitable for every person.&lt;/p&gt;

&lt;p&gt;AI could make that process more personal by connecting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;What you can offer&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;What you care about&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What you actually have time for&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;What you're realistically able to do&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;A realistic way to make an impact.&lt;/strong&gt; 🌱
&lt;/h3&gt;




&lt;h2&gt;
  
  
  💭 Why This Idea?
&lt;/h2&gt;

&lt;p&gt;This challenge made me think about generosity beyond donating money.&lt;/p&gt;

&lt;p&gt;Sometimes helping someone means giving:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Two hours of your weekend.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A skill you've spent years learning.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Something you know how to teach.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A resource you no longer need.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Or even:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Hey, I know someone who can help.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Everyone has something they can give.&lt;/p&gt;

&lt;p&gt;Sometimes we just need help figuring out &lt;strong&gt;where it can make a difference.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the idea behind KindLink.&lt;/p&gt;

&lt;h3&gt;
  
  
  Less “I should help.”
&lt;/h3&gt;

&lt;h3&gt;
  
  
  More “Okay, I know how I can help.” 💙
&lt;/h3&gt;

&lt;p&gt;Thanks to the DEV team for the challenge. It got me thinking about how technology can encourage &lt;strong&gt;small, realistic acts of generosity&lt;/strong&gt; instead of just helping us order food faster. 😂❤️&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>🤖 Can Vibe Coding Get You Hired as a Developer?</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Tue, 01 Sep 2026 11:26:25 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/can-vibe-coding-get-you-hired-as-a-developer-g24</link>
      <guid>https://dev.to/akanksha_sharma/can-vibe-coding-get-you-hired-as-a-developer-g24</guid>
      <description>&lt;p&gt;Yes. But There's a Catch.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Or are you just really good at asking AI to fix the code AI wrote?&lt;/em&gt; 😭&lt;/p&gt;

&lt;p&gt;Let's be honest.&lt;/p&gt;

&lt;p&gt;A few years ago, getting hired as a developer meant proving you could write code.&lt;/p&gt;

&lt;p&gt;Today?&lt;/p&gt;

&lt;p&gt;You can type:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Build me a full-stack app with authentication, payments, AI, dark mode and absolutely no bugs.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;30 seconds later…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Congratulations! You are now the CTO.&lt;/strong&gt; 💀&lt;/p&gt;

&lt;p&gt;Welcome to &lt;strong&gt;vibe coding.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🤔 What is vibe coding?
&lt;/h2&gt;

&lt;p&gt;It's basically:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Describe → Generate → Run → Break → Ask AI to fix it → Repeat.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And honestly?&lt;br&gt;
It feels amazing.&lt;/p&gt;

&lt;p&gt;Don't remember the syntax?&lt;br&gt;
AI knows it.&lt;/p&gt;

&lt;p&gt;Don't remember the API?&lt;br&gt;
AI knows it.&lt;/p&gt;

&lt;p&gt;Created 17 errors?&lt;/p&gt;

&lt;p&gt;AI is already typing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I understand the issue.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Meanwhile you're thinking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Same bro. I also understand the issue.”&lt;/strong&gt; 😭&lt;/p&gt;

&lt;p&gt;Except sometimes…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI doesn't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that's the important part.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧠 Can it actually get you hired?
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Yes, but “I can vibe code” isn't the skill companies are hiring for.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The valuable skill is:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“I can use AI to build something, understand what it generated, debug it and make the right technical decisions.”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That's very different from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“AI built my entire app.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Companies still need developers who understand:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Programming → APIs → Databases → Git → Debugging → Testing → Security → Architecture&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because AI can generate code that looks perfect…&lt;/p&gt;

&lt;p&gt;…and still be completely wrong. 🥲&lt;/p&gt;




&lt;h1&gt;
  
  
  💻 And here's where vibe coding gets really powerful
&lt;/h1&gt;

&lt;p&gt;You don't even have to be a professional developer to benefit from it.&lt;/p&gt;

&lt;p&gt;A designer can build a prototype.&lt;/p&gt;

&lt;p&gt;A founder can build an MVP.&lt;/p&gt;

&lt;p&gt;A marketer can automate a repetitive task.&lt;/p&gt;

&lt;p&gt;A data analyst can create a dashboard.&lt;/p&gt;

&lt;p&gt;A product manager can test an idea.&lt;/p&gt;

&lt;p&gt;For these people, vibe coding removes the barrier between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“I have an idea.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“I built something.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's genuinely revolutionary.&lt;/p&gt;

&lt;p&gt;But if &lt;strong&gt;software engineering is your actual job&lt;/strong&gt;, the bar is different.&lt;/p&gt;

&lt;p&gt;Professional software isn't just:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Does it work?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Why does it work, what can break and is this the right solution?”&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🧩 Vibe coding ≠ skipping fundamentals
&lt;/h1&gt;

&lt;p&gt;You don't need to memorize every syntax rule.&lt;/p&gt;

&lt;p&gt;You don't need to write repetitive boilerplate for hours.&lt;/p&gt;

&lt;p&gt;If AI can save you two hours of boring coding…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;LET IT.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But you still need enough fundamentals to judge its output.&lt;/p&gt;

&lt;p&gt;Because when AI gives you 400 lines of code, someone has to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;“Is this actually a good solution?”&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That someone should be &lt;strong&gt;you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI reduces the amount of code you type.&lt;br&gt;
It doesn't reduce the amount of engineering you need to understand.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  ⚡ AI can make you faster. Not automatically better.
&lt;/h1&gt;

&lt;p&gt;Imagine two developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer A:&lt;/strong&gt;&lt;br&gt;
AI writes everything.&lt;br&gt;
Copies the solution.&lt;br&gt;
Can't explain the architecture.&lt;br&gt;
Something breaks → &lt;em&gt;“ChatGPT, fix this.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer B:&lt;/strong&gt;&lt;br&gt;
Uses AI for boilerplate, debugging, testing and exploring solutions.&lt;/p&gt;

&lt;p&gt;But still:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reads the code.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Questions the code.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Tests the code.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Owns the final decision.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Who would you hire?&lt;/p&gt;

&lt;p&gt;Exactly.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 So what's the future?
&lt;/h1&gt;

&lt;p&gt;I don't think the future belongs to the developer who writes the most code.&lt;/p&gt;

&lt;p&gt;It belongs to the developer who can:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think clearly.&lt;br&gt;
Build quickly.&lt;br&gt;
Understand deeply.&lt;br&gt;
Use AI intelligently.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't become:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Prompt → Copy → Paste → Pray 🙏&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Become:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Understand → Think → Prompt → Review → Test → Improve&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Because when AI-generated code breaks in production at 2 AM…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;your manager isn't going to ask the AI what happened.&lt;/strong&gt; 💀&lt;/p&gt;

&lt;p&gt;They're going to ask &lt;strong&gt;you.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💡 The goal isn't to code without AI.
&lt;/h2&gt;

&lt;p&gt;It's to become a developer who is &lt;strong&gt;better because AI exists.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There's a big difference between:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“AI built this for me.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“I built this with AI.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And I think that difference is going to matter more and more.&lt;/p&gt;




&lt;h3&gt;
  
  
  👇 Your turn
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Would you hire a developer who can build an entire application using AI but can't explain the code without AI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Where do you draw the line between an &lt;strong&gt;AI-assisted developer&lt;/strong&gt; and a &lt;strong&gt;professional vibe coder&lt;/strong&gt;? 👀&lt;/p&gt;

</description>
      <category>vibecoding</category>
      <category>ai</category>
      <category>software</category>
      <category>career</category>
    </item>
    <item>
      <title>5 Years Ago, Git &amp; I Met… 💀</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Sat, 29 Aug 2026 12:46:29 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/5-years-ago-git-i-met-1b7n</link>
      <guid>https://dev.to/akanksha_sharma/5-years-ago-git-i-met-1b7n</guid>
      <description>&lt;p&gt;5 years ago, I encountered Git &amp;amp; GitHub for the first time.&lt;/p&gt;

&lt;p&gt;And let me tell you…&lt;/p&gt;

&lt;p&gt;It was NOT love at first commit. 😭&lt;/p&gt;

&lt;p&gt;I watched someone casually type:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Initial commit"&lt;/span&gt;
git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And I was sitting there like:&lt;/p&gt;

&lt;p&gt;“Damn. I’m officially a developer now.” 😎💻&lt;/p&gt;

&lt;p&gt;Meanwhile, my brain was running on 2% battery:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"git add ." → “Add WHAT?”
"git commit" → “Commit to WHAT?”
"git push" → “Push WHERE?”
"origin" → “WHO IS ORIGIN? 😭”
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But did I ask?&lt;/p&gt;

&lt;p&gt;Absolutely not.&lt;/p&gt;

&lt;p&gt;Because apparently, beginner confidence is just confusion with good posture. 💀&lt;/p&gt;

&lt;p&gt;So I did what every totally confident beginner does:&lt;br&gt;
Copy → Paste → Enter → Pray. 🙏🏻&lt;/p&gt;

&lt;p&gt;And then…&lt;/p&gt;

&lt;p&gt;💥 ERROR.&lt;/p&gt;

&lt;p&gt;Me: “Hmm… interesting.”&lt;br&gt;
Git: another error&lt;br&gt;
Me: “Okay…”&lt;br&gt;
Git: another error&lt;br&gt;
Me: “Why does this feel personal?” 😭&lt;/p&gt;

&lt;p&gt;My debugging process was basically:&lt;/p&gt;

&lt;p&gt;Google the error 🔎&lt;br&gt;
↓&lt;br&gt;
Open Stack Overflow&lt;br&gt;
↓&lt;br&gt;
Find a command written in 2017&lt;br&gt;
↓&lt;br&gt;
Copy it without understanding anything&lt;br&gt;
↓&lt;br&gt;
Paste&lt;br&gt;
↓&lt;br&gt;
Press Enter&lt;br&gt;
↓&lt;br&gt;
Stop breathing&lt;/p&gt;

&lt;p&gt;And when it finally worked?&lt;br&gt;
“Yeah, yeah… I knew what I was doing.” 😌&lt;/p&gt;

&lt;p&gt;Narrator:&lt;br&gt;
She absolutely did not. 💀&lt;/p&gt;

&lt;p&gt;Back then, &lt;br&gt;
GitHub was basically:&lt;br&gt;
“That website where I upload my code.”&lt;/p&gt;

&lt;p&gt;And Git?&lt;br&gt;
“Those scary commands I hope I don't accidentally destroy everything with.” 😭&lt;/p&gt;

&lt;p&gt;But eventually, I realized something:&lt;/p&gt;

&lt;p&gt;I didn't want to just memorize Git commands.&lt;br&gt;
I wanted to actually understand what Git was doing behind the scenes.&lt;/p&gt;

&lt;p&gt;So I started my Git &amp;amp; GitHub Zero to Hero series, starting from absolute zero and explaining things without assuming you already know everything.&lt;/p&gt;

&lt;p&gt;Because honestly…&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Nobody should have to pretend they know what "origin" is. 😂🤝&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;And if you're currently in the:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“WHO IS ORIGIN?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;phase…&lt;/p&gt;

&lt;p&gt;Welcome. You're among friends. 💀😂&lt;/p&gt;

&lt;p&gt;Be honest,what was the first Git command that made absolutely ZERO sense to you? &lt;/p&gt;

</description>
      <category>git</category>
      <category>github</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>AI Isn’t Killing Tech Jobs. But It Is Changing Who Gets Hired. 🤖</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Mon, 24 Aug 2026 13:37:11 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/ai-isnt-killing-tech-jobs-but-it-is-changing-who-gets-hired-1430</link>
      <guid>https://dev.to/akanksha_sharma/ai-isnt-killing-tech-jobs-but-it-is-changing-who-gets-hired-1430</guid>
      <description>&lt;p&gt;&lt;strong&gt;If you don't want to read the whole thing, here's the short version:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, AI is affecting the tech industry.&lt;/p&gt;

&lt;p&gt;But I don't think the story is simply:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“AI will replace developers.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I think the bigger story is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI is changing what companies expect from developers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And honestly, that shift has already started.&lt;/p&gt;

&lt;p&gt;AI can generate code, explain errors, write unit tests, create documentation, refactor functions, analyze logs and automate repetitive development tasks.&lt;/p&gt;

&lt;p&gt;A task that might once have taken an hour can sometimes take 15 minutes with the right AI tools.&lt;/p&gt;

&lt;p&gt;And yes, that &lt;strong&gt;can affect hiring&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If a smaller team can deliver the same amount of work because every developer is more productive, companies may need fewer people for certain types of work.&lt;/p&gt;

&lt;p&gt;That's the part we shouldn't ignore.&lt;/p&gt;

&lt;p&gt;But software engineering isn't just typing code.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI can generate code. Engineering is more than code.
&lt;/h2&gt;

&lt;p&gt;Imagine you're building a payment system.&lt;/p&gt;

&lt;p&gt;AI can help you write an API endpoint.&lt;/p&gt;

&lt;p&gt;It can generate a database query.&lt;/p&gt;

&lt;p&gt;It can suggest error handling.&lt;/p&gt;

&lt;p&gt;It can even write tests.&lt;/p&gt;

&lt;p&gt;But who decides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Should the API be REST or event-driven?&lt;/li&gt;
&lt;li&gt;How should authentication work?&lt;/li&gt;
&lt;li&gt;What happens if the payment succeeds but the database update fails?&lt;/li&gt;
&lt;li&gt;How do we prevent duplicate transactions?&lt;/li&gt;
&lt;li&gt;What data should be logged?&lt;/li&gt;
&lt;li&gt;How should sensitive information be protected?&lt;/li&gt;
&lt;li&gt;Will this architecture scale when traffic increases?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those aren't simply code-generation problems.&lt;/p&gt;

&lt;p&gt;They're &lt;strong&gt;engineering problems&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;AI can suggest solutions, but developers still need to understand the trade-offs and validate those solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI can generate code. But code isn't the same thing as engineering.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  AI is changing the development workflow
&lt;/h2&gt;

&lt;p&gt;Think about a typical development cycle.&lt;/p&gt;

&lt;p&gt;Before AI, a developer might:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requirement → Research → Code → Debug → Test → Review → Deploy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With AI assistance, parts of that workflow can become:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Requirement → AI-assisted research → Generate → Review → Test → Debug → Deploy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The difference is important.&lt;/p&gt;

&lt;p&gt;The developer's job doesn't necessarily disappear.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The developer's time shifts toward higher-value decisions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instead of spending 30 minutes writing boilerplate, you might spend that time reviewing architecture.&lt;/p&gt;

&lt;p&gt;Instead of manually writing every test case, you might use AI to generate a starting point and then verify edge cases yourself.&lt;/p&gt;

&lt;p&gt;Instead of searching through documentation for every small syntax issue, you can ask AI for an explanation and validate it against the actual documentation.&lt;/p&gt;

&lt;p&gt;That's productivity.&lt;/p&gt;

&lt;p&gt;But there's an important catch.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI can also create problems faster
&lt;/h2&gt;

&lt;p&gt;If you don't understand the code AI generates, you're essentially turning your lack of understanding into technical debt.&lt;/p&gt;

&lt;p&gt;AI-generated code can contain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Logic errors&lt;/li&gt;
&lt;li&gt;Security vulnerabilities&lt;/li&gt;
&lt;li&gt;Poor database queries&lt;/li&gt;
&lt;li&gt;Incorrect assumptions&lt;/li&gt;
&lt;li&gt;Unnecessary dependencies&lt;/li&gt;
&lt;li&gt;Performance problems&lt;/li&gt;
&lt;li&gt;Outdated APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And sometimes the code looks perfectly reasonable.&lt;/p&gt;

&lt;p&gt;That's what makes it dangerous.&lt;/p&gt;

&lt;p&gt;A developer who understands the fundamentals can ask:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Why did AI choose this approach?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A developer who doesn't may simply ask:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Does this code run?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Those are very different questions.&lt;/p&gt;

&lt;p&gt;And that's why fundamentals such as &lt;strong&gt;data structures, algorithms, databases, networking, system design, security and debugging&lt;/strong&gt; still matter.&lt;/p&gt;

&lt;p&gt;Possibly more than before.&lt;/p&gt;




&lt;h2&gt;
  
  
  The developer skill set is changing
&lt;/h2&gt;

&lt;p&gt;The valuable skill isn't simply:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“I can write JavaScript.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's becoming:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“I can use JavaScript, understand the system I'm building and use AI to solve problems more efficiently.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example, knowing React is useful.&lt;/p&gt;

&lt;p&gt;But understanding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;component architecture&lt;/li&gt;
&lt;li&gt;state management&lt;/li&gt;
&lt;li&gt;rendering behavior&lt;/li&gt;
&lt;li&gt;API communication&lt;/li&gt;
&lt;li&gt;performance&lt;/li&gt;
&lt;li&gt;accessibility&lt;/li&gt;
&lt;li&gt;security&lt;/li&gt;
&lt;li&gt;testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;is much harder to replace with a code generator.&lt;/p&gt;

&lt;p&gt;The same applies to backend development.&lt;/p&gt;

&lt;p&gt;Knowing how to generate an Express or FastAPI endpoint is useful.&lt;/p&gt;

&lt;p&gt;Understanding &lt;strong&gt;authentication, authorization, database indexing, caching, concurrency, API design, observability and scalability&lt;/strong&gt; is much more valuable.&lt;/p&gt;

&lt;p&gt;AI can help you learn and implement these concepts.&lt;/p&gt;

&lt;p&gt;But it doesn't remove the need to understand them.&lt;/p&gt;




&lt;h2&gt;
  
  
  So who is actually at risk?
&lt;/h2&gt;

&lt;p&gt;Probably not simply “developers.”&lt;/p&gt;

&lt;p&gt;The bigger risk is for developers whose work consists largely of &lt;strong&gt;predictable, repetitive tasks&lt;/strong&gt; and who don't expand their skill set as the tools around them improve.&lt;/p&gt;

&lt;p&gt;And this creates an interesting situation for entry-level developers.&lt;/p&gt;

&lt;p&gt;Junior developers traditionally learn by working on smaller tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fix this bug.&lt;/li&gt;
&lt;li&gt;Build this component.&lt;/li&gt;
&lt;li&gt;Write this API.&lt;/li&gt;
&lt;li&gt;Add this validation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI can increasingly assist with many of those tasks.&lt;/p&gt;

&lt;p&gt;So beginners may need to differentiate themselves through something beyond simply being able to produce code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Problem-solving.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debugging.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understanding systems.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Communication.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learning quickly.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And most importantly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Knowing why the code works, not just how to generate it.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  So, what should developers do?
&lt;/h2&gt;

&lt;p&gt;Don't panic.&lt;/p&gt;

&lt;p&gt;Don't blindly trust AI.&lt;/p&gt;

&lt;p&gt;And don't ignore it either.&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Strengthen your fundamentals.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use AI for repetitive work and exploration.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn to review AI generated code critically.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand security and performance implications.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get better at debugging.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn system design and architecture.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And build projects where you can explain &lt;strong&gt;every major technical decision you made.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because the future probably isn't:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI vs Developers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's more likely:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developers who use AI vs developers who don't.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But there's an even bigger distinction:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developers who understand what AI generates vs developers who simply copy it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So maybe the question isn't:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Will AI take my job?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Maybe the better question is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“If AI makes my current skills cheaper, what valuable skills should I build next?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Because the developers who can combine &lt;strong&gt;strong fundamentals + engineering judgment + AI tools&lt;/strong&gt; may end up being the most valuable ones.&lt;/p&gt;

&lt;p&gt;And now I'm curious:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do you think AI will mostly reduce junior jobs, senior jobs or change both?&lt;/strong&gt; 👇&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>discuss</category>
      <category>career</category>
    </item>
    <item>
      <title>I Blamed React for 45 Minutes. The Bug Was One return. 😭</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Thu, 20 Aug 2026 15:19:52 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/i-blamed-react-for-45-minutes-the-bug-was-one-return-1fp2</link>
      <guid>https://dev.to/akanksha_sharma/i-blamed-react-for-45-minutes-the-bug-was-one-return-1fp2</guid>
      <description>&lt;p&gt;There are two types of Developers:&lt;/p&gt;

&lt;p&gt;People who write clean, predictable code.&lt;br&gt;
People who add &lt;code&gt;console.log()&lt;/code&gt; until the browser starts feeling like a crime scene.&lt;/p&gt;

&lt;p&gt;I am, unfortunately, Team #2. 🫠&lt;/p&gt;

&lt;p&gt;And this story is about the time I spent 45 minutes debugging React only to discover that JavaScript was waiting for me to type one tiny word.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;return&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;It started innocently enough...&lt;/p&gt;

&lt;p&gt;I had a React component fetching data from an API and displaying it on the page.&lt;/p&gt;

&lt;p&gt;Pretty normal stuff.&lt;/p&gt;

&lt;p&gt;The API was working. ✅&lt;br&gt;
The data was coming back. ✅&lt;br&gt;
The component was rendering. ✅&lt;/p&gt;

&lt;p&gt;The UI? &lt;br&gt;
Nothing.&lt;/p&gt;

&lt;p&gt;Just an empty page.&lt;br&gt;
Beautiful.&lt;br&gt;
Minimalist.&lt;br&gt;
Very intentional-looking.&lt;br&gt;
Definitely not broken.🙂&lt;/p&gt;

&lt;p&gt;So obviously, I started investigating.&lt;/p&gt;

&lt;p&gt;First thought:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“Maybe the API isn't working.”&lt;/em&gt;&lt;br&gt;
Checked it.&lt;br&gt;
Working.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;“Maybe the state isn't updating.”&lt;/em&gt;&lt;br&gt;
Checked it.&lt;br&gt;
Working.&lt;/p&gt;

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

&lt;p&gt;&lt;em&gt;“Maybe something is wrong with the component.”&lt;/em&gt;&lt;br&gt;
Checked it.&lt;br&gt;
Also working.&lt;/p&gt;

&lt;p&gt;At this point, I reached the most logical conclusion:&lt;/p&gt;

&lt;p&gt;React is broken.&lt;/p&gt;

&lt;p&gt;Obviously.&lt;/p&gt;

&lt;p&gt;So I did what every experienced developer does when they have absolutely no idea what's happening:&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;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Component rendered&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;API called&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Data received:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Users:&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;users&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;WHY IS THIS EMPTY???&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;My console was slowly becoming a conversation with myself.&lt;/p&gt;

&lt;p&gt;Then I found the crime scene.&lt;/p&gt;

&lt;p&gt;This was the code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&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;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;/&lt;/span&gt;&lt;span class="na"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
})}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I stared at it.&lt;br&gt;
It looked fine.&lt;/p&gt;

&lt;p&gt;I stared at it again.&lt;br&gt;
Still fine.&lt;/p&gt;

&lt;p&gt;Then I noticed it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;There was no &lt;code&gt;return&lt;/code&gt;.&lt;/em&gt;😭&lt;/p&gt;

&lt;p&gt;The problem wasn't React.&lt;br&gt;
The problem wasn't the API.&lt;br&gt;
The problem wasn't my state.&lt;/p&gt;

&lt;p&gt;The problem was...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"ME"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When you use curly braces with an arrow function, you need an explicit return.&lt;/p&gt;

&lt;p&gt;So instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="nx"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&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;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="err"&gt;/&lt;/span&gt;&lt;span class="na"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
})}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I needed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;map&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="p"&gt;))}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And just like that...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;THE UI APPEARED.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I genuinely sat there for a few seconds thinking:&lt;br&gt;
&lt;em&gt;“You have got to be kidding me.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;45 minutes.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Forty.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Five.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Minutes.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I had checked the API.&lt;br&gt;
I had checked the state.&lt;br&gt;
I had checked the component.&lt;/p&gt;

&lt;p&gt;I had added enough &lt;code&gt;console.log()&lt;/code&gt; statements to qualify as a documentary.&lt;/p&gt;

&lt;p&gt;I was mentally preparing to rewrite the entire component.&lt;/p&gt;

&lt;p&gt;Meanwhile, JavaScript was basically sitting there like:&lt;br&gt;
&lt;em&gt;“You forgot to return the thing.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fair enough.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My highly sophisticated debugging methodology&lt;/p&gt;

&lt;p&gt;Minute 1:&lt;br&gt;
&lt;em&gt;“This should work.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Minute 5:&lt;br&gt;
&lt;em&gt;“Maybe it's the API.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Minute 10:&lt;br&gt;
&lt;em&gt;“Let's check the state.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Minute 15:&lt;br&gt;
&lt;em&gt;“Let me add a &lt;code&gt;console.log()&lt;/code&gt;.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Minute 20:&lt;br&gt;
&lt;em&gt;“Okay, another one.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Minute 30:&lt;br&gt;
&lt;em&gt;“Why is React doing this to me?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Minute 40:&lt;br&gt;
&lt;em&gt;“Maybe I'll just rewrite the component.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Minute 45:&lt;br&gt;
&lt;strong&gt;“Oh.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;return.&lt;/code&gt; 😭&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The actual lesson&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The funny thing is, this wasn't some complicated React bug.&lt;br&gt;
I didn't discover some hidden rendering issue.&lt;br&gt;
I didn't need a fancy debugging tool.&lt;br&gt;
I just missed one tiny JavaScript rule.&lt;/p&gt;

&lt;p&gt;And honestly, that's probably one of the most annoying things about debugging:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The longer you stare at a bug, the harder it can become to see the obvious.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sometimes the problem is genuinely complicated.&lt;/p&gt;

&lt;p&gt;And sometimes you've spent 45 minutes investigating your entire application because you forgot one word.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So now, before I start blaming React, I'm trying to go through the boring checklist first:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Is the component rendering?&lt;br&gt;
Is the data actually there?&lt;br&gt;
Is the state updating?&lt;br&gt;
Is my &lt;code&gt;.map()&lt;/code&gt; returning something?&lt;br&gt;
Did I spell the variable correctly?&lt;br&gt;
Did I accidentally comment something out?&lt;br&gt;
Did I, in fact, forget something incredibly obvious? 👀&lt;/p&gt;

&lt;p&gt;Because apparently, that's a real debugging step now.&lt;/p&gt;

&lt;p&gt;And yes, I still use &lt;code&gt;console.log()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I'm not going to pretend this experience magically turned me into a debugging expert.&lt;/p&gt;

&lt;p&gt;The next time something breaks, I'll probably still do:&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;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HERE&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HERE 2&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;HERE 3&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;And then I'll stare at the screen.&lt;br&gt;
And refresh.&lt;br&gt;
And refresh again.&lt;br&gt;
And blame React.&lt;/p&gt;

&lt;p&gt;But maybe...&lt;/p&gt;

&lt;p&gt;I'll check the return first. 😂&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your turn 👇&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What's the stupidest bug you've spent way too long debugging?&lt;/p&gt;

&lt;p&gt;The kind where you finally find the problem and just sit there thinking:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“...I cannot believe I just did that.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Please tell me I'm not alone. 😭&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>bugsmash</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>First Post on DEV 🚀</title>
      <dc:creator>Akanksha Sharma</dc:creator>
      <pubDate>Wed, 19 Aug 2026 12:27:14 +0000</pubDate>
      <link>https://dev.to/akanksha_sharma/first-post-on-dev-3m5i</link>
      <guid>https://dev.to/akanksha_sharma/first-post-on-dev-3m5i</guid>
      <description>&lt;p&gt;Hello, DEV Community! 👋&lt;/p&gt;

&lt;p&gt;After spending a lot of time learning, building, breaking things, fixing them and occasionally wondering “&lt;em&gt;Why is this not working?&lt;/em&gt; ” 😅 -I finally decided to make my first post here.&lt;/p&gt;

&lt;p&gt;I’m a Software Engineer and my journey so far has taught me something important:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Software engineering isn’t just about writing code.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;• It’s about solving problems when there’s no obvious answer.&lt;br&gt;
• It’s about debugging something you were sure was working.&lt;br&gt;
• It’s about making mistakes, learning from them and trying again.&lt;/p&gt;

&lt;p&gt;And sometimes, it’s simply about figuring things out one step at a time. 💻&lt;/p&gt;

&lt;p&gt;I’ve had my share of challenges, unexpected bugs, learning curves and those small wins that make all the frustration worth it.&lt;/p&gt;

&lt;p&gt;From now on, I want to share more of that journey here -not just the final results, but the problems behind them, the mistakes, the solutions and the lessons learned along the way.&lt;/p&gt;

&lt;p&gt;No “I know everything” posts.&lt;/p&gt;

&lt;p&gt;Just learning, building, experimenting and growing in public.🌱&lt;/p&gt;

&lt;p&gt;What’s one lesson software engineering has taught you that you wish you knew when you started?&lt;/p&gt;

</description>
      <category>softwareengineering</category>
      <category>developerjourney</category>
      <category>learninginpublic</category>
    </item>
  </channel>
</rss>
