<?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: Hosein Mahmoudi</title>
    <description>The latest articles on DEV Community by Hosein Mahmoudi (@hoseinmdev).</description>
    <link>https://dev.to/hoseinmdev</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%2F4007811%2Fc163beaf-8dfc-405b-af7d-74b6b5dc7585.jpg</url>
      <title>DEV Community: Hosein Mahmoudi</title>
      <link>https://dev.to/hoseinmdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hoseinmdev"/>
    <language>en</language>
    <item>
      <title>📓 I Built an AI App That Makes Learning English Feel Effortless</title>
      <dc:creator>Hosein Mahmoudi</dc:creator>
      <pubDate>Sat, 18 Jul 2026 12:11:14 +0000</pubDate>
      <link>https://dev.to/hoseinmdev/i-built-an-ai-app-that-makes-learning-english-feel-effortless-5236</link>
      <guid>https://dev.to/hoseinmdev/i-built-an-ai-app-that-makes-learning-english-feel-effortless-5236</guid>
      <description>&lt;h1&gt;
  
  
  📓 Stop Memorizing English — I Built an AI App That Actually Works
&lt;/h1&gt;

&lt;h2&gt;
  
  
  ⚡ The Hook
&lt;/h2&gt;

&lt;p&gt;You try to learn English.&lt;br&gt;&lt;br&gt;
You memorize words.  &lt;/p&gt;

&lt;p&gt;And then… you forget them.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 The Real Problem
&lt;/h2&gt;

&lt;p&gt;Most people learn English the wrong way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;memorizing random word lists
&lt;/li&gt;
&lt;li&gt;switching between apps and dictionaries
&lt;/li&gt;
&lt;li&gt;learning without context
&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;That’s why nothing sticks.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🚀 The Idea
&lt;/h2&gt;

&lt;p&gt;What if learning English felt like this:&lt;/p&gt;

&lt;p&gt;👉 You read something interesting&lt;br&gt;&lt;br&gt;
👉 You click a word you don’t know&lt;br&gt;&lt;br&gt;
👉 You instantly understand it  &lt;/p&gt;

&lt;p&gt;No interruptions. No friction.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ Introducing: English Notebook
&lt;/h2&gt;

&lt;p&gt;A modern AI-powered app where you &lt;strong&gt;learn English by interacting with real content&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generate stories
&lt;/li&gt;
&lt;li&gt;click unknown words
&lt;/li&gt;
&lt;li&gt;build vocabulary automatically
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🤖 Generate Stories Based on &lt;em&gt;Your Level&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;This is one of the most powerful features.&lt;/p&gt;

&lt;p&gt;You choose your level:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A1 → Beginner
&lt;/li&gt;
&lt;li&gt;A2
&lt;/li&gt;
&lt;li&gt;B1
&lt;/li&gt;
&lt;li&gt;B2
&lt;/li&gt;
&lt;li&gt;C1
&lt;/li&gt;
&lt;li&gt;C2 → Advanced
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the app generates a &lt;strong&gt;custom story just for you&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  🖼️ Story Generator
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fq43yytkv86f41n1kp3kn.png" alt=" " width="800" height="492"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  📖 Learn by Clicking Words
&lt;/h2&gt;

&lt;p&gt;No more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;copy-pasting
&lt;/li&gt;
&lt;li&gt;opening dictionary tabs
&lt;/li&gt;
&lt;li&gt;losing focus
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just click any word:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;definition
&lt;/li&gt;
&lt;li&gt;translation (your language 🌍)
&lt;/li&gt;
&lt;li&gt;example sentences
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🖼️ Word Interaction
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ff9yyfc96ceryex3rn169.png" alt=" " width="800" height="398"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  📚 Smart Vocabulary Notebook
&lt;/h2&gt;

&lt;p&gt;Every word you click:&lt;/p&gt;

&lt;p&gt;👉 automatically saved&lt;br&gt;&lt;br&gt;
👉 turned into a flashcard  &lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;review anytime
&lt;/li&gt;
&lt;li&gt;mark as mastered ✅
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🖼️ Vocabulary Notebook
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fmwhzdymv2fb50u5bpjbv.png" alt=" " width="441" height="700"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  📊 Track Your Progress (Game Changer)
&lt;/h2&gt;

&lt;p&gt;This is where things get serious.&lt;/p&gt;

&lt;p&gt;You don’t just learn — you &lt;strong&gt;measure your growth&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Dashboard shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;total words learned
&lt;/li&gt;
&lt;li&gt;active vs mastered words
&lt;/li&gt;
&lt;li&gt;daily streak
&lt;/li&gt;
&lt;li&gt;14-day activity trend
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🖼️ Dashboard
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz8g3cvrj8jauotuvatoo.png" alt=" " width="799" height="494"&gt;
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;What gets measured gets improved.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🕘 Nothing Gets Lost (History System)
&lt;/h2&gt;

&lt;p&gt;Every story you generate is saved.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;revisit old stories
&lt;/li&gt;
&lt;li&gt;continue reading anytime
&lt;/li&gt;
&lt;li&gt;track your learning journey
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🖼️ History
&lt;/h3&gt;

&lt;h2&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fu8nol27lix9pcf7iqamp.png" alt=" " width="799" height="490"&gt;
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🔊 Learn with Audio
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;listen to stories
&lt;/li&gt;
&lt;li&gt;follow highlighted words
&lt;/li&gt;
&lt;li&gt;improve pronunciation naturally
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🌍 Multi-Language Support
&lt;/h2&gt;

&lt;p&gt;You can choose your translation language:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Persian 🇮🇷
&lt;/li&gt;
&lt;li&gt;Arabic
&lt;/li&gt;
&lt;li&gt;Spanish
&lt;/li&gt;
&lt;li&gt;Hindi
&lt;/li&gt;
&lt;li&gt;and more
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🎯 Why This App Is Different
&lt;/h2&gt;

&lt;p&gt;Most apps:&lt;/p&gt;

&lt;p&gt;❌ force memorization&lt;br&gt;&lt;br&gt;
❌ feel like school&lt;br&gt;&lt;br&gt;
❌ break your focus  &lt;/p&gt;




&lt;p&gt;&lt;strong&gt;English Notebook:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;✅ learning through stories&lt;br&gt;&lt;br&gt;
✅ real-time interaction&lt;br&gt;&lt;br&gt;
✅ measurable progress&lt;br&gt;&lt;br&gt;
✅ smooth modern UX  &lt;/p&gt;




&lt;h2&gt;
  
  
  🧑‍💻 Built With
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Next.js 15
&lt;/li&gt;
&lt;li&gt;React 19
&lt;/li&gt;
&lt;li&gt;TypeScript
&lt;/li&gt;
&lt;li&gt;Tailwind CSS
&lt;/li&gt;
&lt;li&gt;Prisma + Neon
&lt;/li&gt;
&lt;li&gt;OpenRouter (AI)
&lt;/li&gt;
&lt;li&gt;Auth.js
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Try It Yourself
&lt;/h2&gt;

&lt;p&gt;👉 &lt;a href="https://english-notebook-sigma.vercel.app/" rel="noopener noreferrer"&gt;https://english-notebook-sigma.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Generate a story. Click words. See the difference.&lt;/p&gt;




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

&lt;p&gt;As a developer, I realized:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;English is not optional — it's your growth engine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I built a tool I actually wanted to use.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 Let’s Connect
&lt;/h2&gt;

&lt;p&gt;If you like this project or want to support:&lt;/p&gt;

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

&lt;p&gt;I’m building more tools like this — follow along 🔥&lt;/p&gt;




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

&lt;p&gt;Stop memorizing English.&lt;/p&gt;

&lt;p&gt;Start interacting with it.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;#englishlearning
&lt;/li&gt;
&lt;li&gt;#ai
&lt;/li&gt;
&lt;li&gt;#nextjs
&lt;/li&gt;
&lt;li&gt;#webdev
&lt;/li&gt;
&lt;li&gt;#programming
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>🌍 Why English Is a Superpower for Developers (Not Just a Language)</title>
      <dc:creator>Hosein Mahmoudi</dc:creator>
      <pubDate>Fri, 17 Jul 2026 11:26:47 +0000</pubDate>
      <link>https://dev.to/hoseinmdev/why-english-is-a-superpower-for-developers-not-just-a-language-34nc</link>
      <guid>https://dev.to/hoseinmdev/why-english-is-a-superpower-for-developers-not-just-a-language-34nc</guid>
      <description>&lt;p&gt;You’re learning to code. You’re building projects. You’re improving every day.&lt;/p&gt;

&lt;p&gt;But something invisible is slowing you down.&lt;/p&gt;

&lt;p&gt;It’s not your skills.&lt;br&gt;&lt;br&gt;
It’s your English.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 It’s Not About Speaking Perfectly
&lt;/h2&gt;

&lt;p&gt;Let’s be clear:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You don’t need perfect English to become a great developer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But you &lt;strong&gt;do need enough English to learn, search, and understand&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Because most of the programming world runs on English.&lt;/p&gt;




&lt;h2&gt;
  
  
  💻 1. Almost All Learning Resources Are in English
&lt;/h2&gt;

&lt;p&gt;The best content is written in English:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;documentation
&lt;/li&gt;
&lt;li&gt;blog posts
&lt;/li&gt;
&lt;li&gt;tutorials
&lt;/li&gt;
&lt;li&gt;GitHub READMEs
&lt;/li&gt;
&lt;li&gt;Stack Overflow answers
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ❌ Without English
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You rely only on translated or limited resources
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 slower learning&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ With English
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;You can access global knowledge instantly
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 faster growth&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;The difference is not small. It’s massive.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🔍 2. You Debug Faster
&lt;/h2&gt;

&lt;p&gt;Every developer Googles errors.&lt;/p&gt;




&lt;h3&gt;
  
  
  Example Error
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;TypeError: Cannot &lt;span class="nb"&gt;read &lt;/span&gt;properties of undefined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  ❌ Without English
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;harder to understand the error
&lt;/li&gt;
&lt;li&gt;harder to search correctly
&lt;/li&gt;
&lt;li&gt;limited results
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ✅ With English
&lt;/h3&gt;

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

&lt;ul&gt;
&lt;li&gt;search effectively
&lt;/li&gt;
&lt;li&gt;understand answers
&lt;/li&gt;
&lt;li&gt;fix issues faster
&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;Better English = better debugging&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  📚 3. Documentation Becomes Your Best Friend
&lt;/h2&gt;

&lt;p&gt;Official docs are always in English.&lt;/p&gt;




&lt;h3&gt;
  
  
  ❌ Without English
&lt;/h3&gt;

&lt;p&gt;You avoid docs and rely on random tutorials.&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ With English
&lt;/h3&gt;

&lt;p&gt;You go directly to the source of truth.&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;Great developers read docs. A lot.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🌍 4. You Can Join the Global Developer Community
&lt;/h2&gt;

&lt;p&gt;English connects you to developers worldwide.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;ask questions
&lt;/li&gt;
&lt;li&gt;answer others
&lt;/li&gt;
&lt;li&gt;write blog posts
&lt;/li&gt;
&lt;li&gt;contribute to open source
&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;You don’t need perfect grammar. You need clear communication.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🚀 5. More Opportunities Open Up
&lt;/h2&gt;

&lt;p&gt;Many opportunities require English:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;remote jobs
&lt;/li&gt;
&lt;li&gt;international teams
&lt;/li&gt;
&lt;li&gt;freelance clients
&lt;/li&gt;
&lt;li&gt;open-source collaboration
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ❌ Without English
&lt;/h3&gt;

&lt;p&gt;You stay limited to local opportunities.&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ With English
&lt;/h3&gt;

&lt;p&gt;You unlock global opportunities.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚠️ Common Mistakes Developers Make
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;waiting to be perfect
&lt;/li&gt;
&lt;li&gt;avoiding English content
&lt;/li&gt;
&lt;li&gt;not practicing daily
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ✅ How to Improve English as a Developer
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔹 Read documentation daily
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🔹 Watch tutorials in English
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🔹 Write commits in English
&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;"feat: add authentication flow"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  🔹 Read GitHub projects
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🔹 Think in English while coding
&lt;/h3&gt;




&lt;blockquote&gt;
&lt;p&gt;Combine coding + English = faster improvement&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🧠 The Mindset Shift
&lt;/h2&gt;

&lt;p&gt;Don’t think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“My English is not good enough”&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;“English is part of my developer toolkit”&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;English won’t make you a great developer overnight.&lt;/p&gt;

&lt;p&gt;But it will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;speed up your learning
&lt;/li&gt;
&lt;li&gt;improve your problem-solving
&lt;/li&gt;
&lt;li&gt;connect you to the world
&lt;/li&gt;
&lt;li&gt;unlock better opportunities
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  💬 Let’s Talk
&lt;/h2&gt;

&lt;p&gt;How has English impacted your developer journey?&lt;/p&gt;

&lt;p&gt;Do you learn in English or your native language?&lt;/p&gt;

&lt;p&gt;Drop your thoughts 👇&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;#programming
&lt;/li&gt;
&lt;li&gt;#webdev
&lt;/li&gt;
&lt;li&gt;#career
&lt;/li&gt;
&lt;li&gt;#learning
&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>🐙 Why Every Developer Needs GitHub (Even If You’re Not Job Hunting)</title>
      <dc:creator>Hosein Mahmoudi</dc:creator>
      <pubDate>Thu, 16 Jul 2026 14:07:19 +0000</pubDate>
      <link>https://dev.to/hoseinmdev/why-every-developer-needs-github-even-if-youre-not-job-hunting-5b81</link>
      <guid>https://dev.to/hoseinmdev/why-every-developer-needs-github-even-if-youre-not-job-hunting-5b81</guid>
      <description>&lt;h2&gt;
  
  
  ⚡ The Hook
&lt;/h2&gt;

&lt;p&gt;You write code. You build projects. You learn every day.&lt;/p&gt;

&lt;p&gt;But no one sees it.&lt;/p&gt;

&lt;p&gt;That’s the problem.&lt;/p&gt;

&lt;p&gt;I’ve worked on multiple frontend projects, and one thing became clear:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If your code isn't visible, people can't understand what you can actually build.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Your GitHub is not just a place to store code.&lt;/p&gt;

&lt;p&gt;It is your developer identity.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 GitHub Is More Than Just “Saving Code”
&lt;/h2&gt;

&lt;p&gt;A lot of developers think GitHub is just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“a place to push my code”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That’s only the beginning.&lt;/p&gt;

&lt;p&gt;GitHub is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;your &lt;strong&gt;portfolio&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;your &lt;strong&gt;proof of work&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;your &lt;strong&gt;developer identity&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;your &lt;strong&gt;learning history&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your resume says what you know.&lt;/p&gt;

&lt;p&gt;Your GitHub shows what you build.&lt;/p&gt;




&lt;h1&gt;
  
  
  💻 1. GitHub Shows What You Can Actually Build
&lt;/h1&gt;

&lt;p&gt;Anyone can say:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I know React”&lt;/p&gt;

&lt;p&gt;“I know Next.js”&lt;/p&gt;

&lt;p&gt;“I can build full-stack applications”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;But GitHub gives people something much more valuable:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Evidence.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It shows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;real projects&lt;/li&gt;
&lt;li&gt;real architecture decisions&lt;/li&gt;
&lt;li&gt;real code quality&lt;/li&gt;
&lt;li&gt;your progress over time&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ❌ Without GitHub
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"I built some projects but didn't upload them"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nobody can verify your experience.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ With GitHub
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;github.com/hoseinmdev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;People can see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how you write code&lt;/li&gt;
&lt;li&gt;how you organize projects&lt;/li&gt;
&lt;li&gt;how you solve problems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That creates trust.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 2. GitHub Helps You Become a Better Developer
&lt;/h1&gt;

&lt;p&gt;GitHub is not only for showing your work.&lt;/p&gt;

&lt;p&gt;It improves how you work.&lt;/p&gt;

&lt;p&gt;When you use GitHub consistently, you naturally start:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;writing cleaner commits&lt;/li&gt;
&lt;li&gt;organizing projects better&lt;/li&gt;
&lt;li&gt;documenting your decisions&lt;/li&gt;
&lt;li&gt;thinking about maintainability&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Example
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ❌ Bad 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;"fix"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nobody knows what changed.&lt;/p&gt;




&lt;h3&gt;
  
  
  ✅ Better 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;"fix: handle undefined user data in dashboard API"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now your team understands:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what changed&lt;/li&gt;
&lt;li&gt;why it changed&lt;/li&gt;
&lt;li&gt;where to look&lt;/li&gt;
&lt;/ul&gt;




&lt;blockquote&gt;
&lt;p&gt;Good GitHub habits create better engineering habits.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  🌍 3. GitHub Connects You With Developers
&lt;/h1&gt;

&lt;p&gt;GitHub is not only code.&lt;/p&gt;

&lt;p&gt;It is a community.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;discover open-source projects&lt;/li&gt;
&lt;li&gt;learn from experienced developers&lt;/li&gt;
&lt;li&gt;contribute to real applications&lt;/li&gt;
&lt;li&gt;collaborate with people worldwide&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some of the best developers I know improved because they started reading other people's code.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧩 4. Your GitHub Becomes Your Developer Portfolio
&lt;/h1&gt;

&lt;p&gt;You don't always need a fancy portfolio website.&lt;/p&gt;

&lt;p&gt;A clean GitHub profile can already tell your story.&lt;/p&gt;

&lt;p&gt;A strong profile should have:&lt;/p&gt;

&lt;p&gt;✅ pinned projects&lt;br&gt;&lt;br&gt;
✅ good README files&lt;br&gt;&lt;br&gt;
✅ meaningful commits&lt;br&gt;&lt;br&gt;
✅ clear project descriptions&lt;br&gt;&lt;br&gt;
✅ consistent activity  &lt;/p&gt;




&lt;h2&gt;
  
  
  Example README structure
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# Project Name&lt;/span&gt;

Short explanation about the project.

&lt;span class="gu"&gt;## Features&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; Authentication
&lt;span class="p"&gt;-&lt;/span&gt; Dashboard
&lt;span class="p"&gt;-&lt;/span&gt; API integration

&lt;span class="gu"&gt;## Tech Stack&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; React
&lt;span class="p"&gt;-&lt;/span&gt; Next.js
&lt;span class="p"&gt;-&lt;/span&gt; TypeScript

&lt;span class="gu"&gt;## Installation&lt;/span&gt;

npm install
npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Small details create a professional impression.&lt;/p&gt;




&lt;h1&gt;
  
  
  ⚡ 5. Companies Look At GitHub
&lt;/h1&gt;

&lt;p&gt;Many developers only focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;resume&lt;/li&gt;
&lt;li&gt;LinkedIn&lt;/li&gt;
&lt;li&gt;certificates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But your GitHub can answer the most important question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can this person actually build software?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;People look for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;real projects&lt;/li&gt;
&lt;li&gt;coding style&lt;/li&gt;
&lt;li&gt;problem-solving ability&lt;/li&gt;
&lt;li&gt;consistency&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  ⚠️ Common GitHub Mistakes
&lt;/h1&gt;

&lt;p&gt;I see many developers making these mistakes:&lt;/p&gt;

&lt;h2&gt;
  
  
  ❌ Only private repositories
&lt;/h2&gt;

&lt;p&gt;Nobody can see your growth.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❌ Empty README files
&lt;/h2&gt;

&lt;p&gt;A project without explanation is harder to understand.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❌ Bad commit messages
&lt;/h2&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;"update"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This gives no context.&lt;/p&gt;




&lt;h2&gt;
  
  
  ❌ Uploading everything
&lt;/h2&gt;

&lt;p&gt;Quality is better than quantity.&lt;/p&gt;

&lt;p&gt;A few strong projects are better than dozens of unfinished ones.&lt;/p&gt;




&lt;h1&gt;
  
  
  ✅ How I Recommend Using GitHub
&lt;/h1&gt;

&lt;p&gt;My workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;push projects regularly&lt;/li&gt;
&lt;li&gt;write meaningful commits&lt;/li&gt;
&lt;li&gt;create README files&lt;/li&gt;
&lt;li&gt;pin your best repositories&lt;/li&gt;
&lt;li&gt;contribute when possible&lt;/li&gt;
&lt;li&gt;keep improving old projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You don't need to code 10 hours every day.&lt;/p&gt;

&lt;p&gt;Consistency wins.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧠 The Mindset Shift
&lt;/h1&gt;

&lt;p&gt;Don't think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I will upload my projects later."&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;blockquote&gt;
&lt;p&gt;"If my work is invisible, nobody knows it exists."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Build in public.&lt;/p&gt;

&lt;p&gt;Share your progress.&lt;/p&gt;

&lt;p&gt;Let your code speak.&lt;/p&gt;




&lt;h1&gt;
  
  
  🚀 Real Example
&lt;/h1&gt;

&lt;p&gt;I share my frontend development journey and projects on GitHub:&lt;/p&gt;

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

&lt;p&gt;I focus on building projects with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;clean structure&lt;/li&gt;
&lt;li&gt;modern frontend technologies&lt;/li&gt;
&lt;li&gt;real-world practices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to explore my repositories and share feedback.&lt;/p&gt;




&lt;h1&gt;
  
  
  💬 Let's Build in Public Together
&lt;/h1&gt;

&lt;p&gt;If you are also building projects, learning new technologies, or improving as a developer:&lt;/p&gt;

&lt;p&gt;Let's connect 👇&lt;/p&gt;

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

&lt;p&gt;I love discovering developers who are actively building.&lt;/p&gt;

&lt;p&gt;Drop your GitHub profile in the comments — let's learn from each other and grow together 🚀&lt;/p&gt;




&lt;h1&gt;
  
  
  🔥 Final Thought
&lt;/h1&gt;

&lt;p&gt;GitHub won't magically make you a better developer.&lt;/p&gt;

&lt;p&gt;But it will help you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;make your work visible&lt;/li&gt;
&lt;li&gt;build credibility&lt;/li&gt;
&lt;li&gt;learn faster&lt;/li&gt;
&lt;li&gt;connect with amazing developers&lt;/li&gt;
&lt;li&gt;create new opportunities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your code deserves to be seen.&lt;/p&gt;

&lt;p&gt;Start building in public.&lt;/p&gt;




&lt;ul&gt;
&lt;li&gt;#github&lt;/li&gt;
&lt;li&gt;#webdev&lt;/li&gt;
&lt;li&gt;#programming&lt;/li&gt;
&lt;li&gt;#career&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>How AI Can Help You Improve Your Performance as a Developer</title>
      <dc:creator>Hosein Mahmoudi</dc:creator>
      <pubDate>Thu, 16 Jul 2026 12:54:16 +0000</pubDate>
      <link>https://dev.to/hoseinmdev/how-ai-can-help-you-improve-your-performance-as-a-developer-2cji</link>
      <guid>https://dev.to/hoseinmdev/how-ai-can-help-you-improve-your-performance-as-a-developer-2cji</guid>
      <description>&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;Let’s be real — most of us don’t struggle because we “can’t code”.&lt;/p&gt;

&lt;p&gt;We struggle because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;we waste time on repetitive tasks&lt;/li&gt;
&lt;li&gt;we get stuck on small bugs&lt;/li&gt;
&lt;li&gt;we context-switch too much&lt;/li&gt;
&lt;li&gt;we overthink simple problems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s where AI actually helps.&lt;/p&gt;

&lt;p&gt;Not as a replacement — but as a &lt;strong&gt;performance multiplier&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 First, what AI is &lt;em&gt;actually good at&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;AI is not magic.&lt;/p&gt;

&lt;p&gt;But it’s really good at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generating boilerplate&lt;/li&gt;
&lt;li&gt;explaining errors&lt;/li&gt;
&lt;li&gt;suggesting improvements&lt;/li&gt;
&lt;li&gt;summarizing docs&lt;/li&gt;
&lt;li&gt;speeding up repetitive work&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Basically: &lt;strong&gt;saving your mental energy&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ 1. Write code faster (without burning out)
&lt;/h2&gt;

&lt;p&gt;Instead of writing everything from scratch:&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="c1"&gt;// prompt idea&lt;/span&gt;
&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;create a custom React hook for localStorage&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You get a solid starting point instantly.&lt;/p&gt;

&lt;p&gt;👉 You still review it&lt;br&gt;
👉 You still understand it&lt;br&gt;
👉 But you don’t waste time writing boilerplate&lt;/p&gt;


&lt;h2&gt;
  
  
  🐞 2. Debug faster
&lt;/h2&gt;

&lt;p&gt;Instead of Googling for 20 minutes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Error: Cannot read property 'map' of undefined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You ask AI:&lt;/p&gt;

&lt;p&gt;👉 It explains the issue&lt;br&gt;
👉 suggests fixes&lt;br&gt;
👉 shows edge cases&lt;/p&gt;


&lt;h3&gt;
  
  
  Example mindset shift
&lt;/h3&gt;

&lt;p&gt;Before:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;search → open 5 tabs → read → test → maybe fix&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ask → get explanation → apply → move on&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  🧠 3. Learn way faster
&lt;/h2&gt;

&lt;p&gt;AI is like having a senior dev on demand.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;“Explain React Server Components simply”&lt;/li&gt;
&lt;li&gt;“When should I use memo?”&lt;/li&gt;
&lt;li&gt;“What’s wrong with this pattern?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Instant explanations&lt;br&gt;
👉 Real examples&lt;br&gt;
👉 No fluff&lt;/p&gt;


&lt;h2&gt;
  
  
  🔄 4. Automate boring tasks
&lt;/h2&gt;

&lt;p&gt;Things you shouldn’t waste time on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;writing regex&lt;/li&gt;
&lt;li&gt;generating types&lt;/li&gt;
&lt;li&gt;creating repetitive components&lt;/li&gt;
&lt;li&gt;converting data formats&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 AI handles these in seconds&lt;/p&gt;


&lt;h2&gt;
  
  
  📚 5. Write better documentation
&lt;/h2&gt;

&lt;p&gt;Most devs hate writing docs.&lt;/p&gt;

&lt;p&gt;AI helps you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;generate README files&lt;/li&gt;
&lt;li&gt;write comments&lt;/li&gt;
&lt;li&gt;document APIs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Your project becomes easier to understand&lt;br&gt;
👉 Your team moves faster&lt;/p&gt;


&lt;h2&gt;
  
  
  🧩 6. Break down complex problems
&lt;/h2&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"build a dashboard with auth, charts, and API integration"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ask AI to break it down:&lt;/p&gt;

&lt;p&gt;👉 smaller steps&lt;br&gt;
👉 clear structure&lt;br&gt;
👉 less overwhelm&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ 7. Stay focused (this is underrated)
&lt;/h2&gt;

&lt;p&gt;Biggest hidden benefit:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;less context switching&lt;/strong&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;switching between StackOverflow, docs, and code&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;stay in one flow&lt;/li&gt;
&lt;li&gt;ask → get answer → continue coding&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Real talk (important)
&lt;/h2&gt;

&lt;p&gt;AI is powerful, but:&lt;/p&gt;

&lt;p&gt;❌ Don’t copy blindly&lt;br&gt;
❌ Don’t skip understanding&lt;br&gt;
❌ Don’t rely on it for everything&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ Best way to use AI (my workflow)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;use it for &lt;strong&gt;boilerplate&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;use it for &lt;strong&gt;debugging help&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;use it for &lt;strong&gt;learning concepts&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;review everything before using&lt;/li&gt;
&lt;li&gt;treat it like a &lt;strong&gt;junior dev assistant&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  ⚠️ Common mistakes I see
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;copying code without understanding&lt;/li&gt;
&lt;li&gt;over-relying on AI&lt;/li&gt;
&lt;li&gt;ignoring edge cases&lt;/li&gt;
&lt;li&gt;trusting wrong outputs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 AI is fast, but not always right&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 Final thought
&lt;/h2&gt;

&lt;p&gt;AI won’t replace developers.&lt;/p&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;developers who use AI will replace those who don’t&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Use it to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;move faster&lt;/li&gt;
&lt;li&gt;think clearer&lt;/li&gt;
&lt;li&gt;focus on real problems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Not just write more code.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔥 My takeaway
&lt;/h2&gt;

&lt;p&gt;AI didn’t make me a better developer overnight.&lt;/p&gt;

&lt;p&gt;But it helped me:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;waste less time&lt;/li&gt;
&lt;li&gt;learn faster&lt;/li&gt;
&lt;li&gt;stay focused&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that’s where the real performance gain comes from.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>developers</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to Improve Performance in Next.js Projects</title>
      <dc:creator>Hosein Mahmoudi</dc:creator>
      <pubDate>Wed, 15 Jul 2026 10:15:08 +0000</pubDate>
      <link>https://dev.to/hoseinmdev/how-to-improve-performance-in-nextjs-projects-1doh</link>
      <guid>https://dev.to/hoseinmdev/how-to-improve-performance-in-nextjs-projects-1doh</guid>
      <description>&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;Performance in Next.js isn’t just a “nice to have”.&lt;/p&gt;

&lt;p&gt;It directly affects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;user experience&lt;/li&gt;
&lt;li&gt;SEO&lt;/li&gt;
&lt;li&gt;conversion rate&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the truth is — most performance issues don’t come from React itself, but from &lt;strong&gt;how we use it&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is a breakdown of what actually works in real projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 1. Use Next.js built-in optimizations (don’t fight the framework)
&lt;/h2&gt;

&lt;p&gt;Next.js already gives you a lot for free — if you actually use it.&lt;/p&gt;

&lt;h3&gt;
  
  
  ✅ Image Optimization
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Image&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/image&lt;/span&gt;&lt;span class="dl"&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="nc"&gt;Image&lt;/span&gt;
  &lt;span class="na"&gt;src&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/hero.webp"&lt;/span&gt;
  &lt;span class="na"&gt;alt&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"hero"&lt;/span&gt;
  &lt;span class="na"&gt;width&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;1200&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;height&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;600&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;priority&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;👉 Automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;lazy loads images&lt;/li&gt;
&lt;li&gt;serves modern formats (WebP/AVIF)&lt;/li&gt;
&lt;li&gt;resizes per device&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  ✅ Font Optimization
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Inter&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/font/google&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;inter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Inter&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;subsets&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;latin&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 No layout shift&lt;br&gt;
👉 No external requests&lt;/p&gt;


&lt;h2&gt;
  
  
  ⚡ 2. Code Splitting &amp;amp; Dynamic Imports
&lt;/h2&gt;

&lt;p&gt;Don’t load everything at once.&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="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;dynamic&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/dynamic&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;HeavyComponent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;dynamic&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./HeavyComponent&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;ssr&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;loading&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Loading&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;,
&lt;/span&gt;&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Load only when needed&lt;br&gt;
👉 Reduce initial bundle size&lt;/p&gt;


&lt;h2&gt;
  
  
  📦 3. Reduce Bundle Size
&lt;/h2&gt;

&lt;p&gt;This is where most apps fail.&lt;/p&gt;
&lt;h3&gt;
  
  
  🔍 Analyze your bundle
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @next/bundle-analyzer
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// next.config.js&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;withBundleAnalyzer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@next/bundle-analyzer&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)({&lt;/span&gt;
  &lt;span class="na"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ANALYZE&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;true&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;withBundleAnalyzer&lt;/span&gt;&lt;span class="p"&gt;({});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;ANALYZE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;true &lt;/span&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  💡 Common mistakes
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;importing whole libraries instead of specific functions&lt;/li&gt;
&lt;li&gt;unused dependencies&lt;/li&gt;
&lt;li&gt;large UI libraries without tree-shaking&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Example:&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="c1"&gt;// ❌ bad&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;_&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lodash&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// ✅ good&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;debounce&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;lodash/debounce&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;h2&gt;
  
  
  🧠 4. Use Server Components (when possible)
&lt;/h2&gt;

&lt;p&gt;With modern Next.js (App Router), you should default to &lt;strong&gt;Server Components&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;👉 Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;less JS sent to client&lt;/li&gt;
&lt;li&gt;faster load time&lt;/li&gt;
&lt;li&gt;better SEO&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Example
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// server component by default&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Page&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.com/data&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;

  &lt;span class="k"&gt;return&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="o"&gt;&amp;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;title&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 No &lt;code&gt;useEffect&lt;/code&gt;&lt;br&gt;
👉 No client-side fetching&lt;/p&gt;


&lt;h2&gt;
  
  
  ⚡ 5. Smart Data Fetching &amp;amp; Caching
&lt;/h2&gt;

&lt;p&gt;Next.js gives you built-in caching.&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="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.com/data&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;force-cache&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or:&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="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://api.com/data&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;next&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;revalidate&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;60&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 ISR (Incremental Static Regeneration)&lt;br&gt;
👉 Data stays fresh without killing performance&lt;/p&gt;




&lt;h2&gt;
  
  
  🧩 6. Optimize Rendering
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ❌ Avoid unnecessary re-renders
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;overusing &lt;code&gt;useState&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;passing unstable props&lt;/li&gt;
&lt;li&gt;not memoizing components&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ Use memoization when needed
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;memo&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nf"&gt;memo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;MyComponent&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Don’t overuse it — only where needed&lt;/p&gt;




&lt;h2&gt;
  
  
  🖼️ 7. Optimize Images (properly)
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;always use &lt;code&gt;next/image&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;use correct sizes&lt;/li&gt;
&lt;li&gt;avoid huge images&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 biggest impact on &lt;strong&gt;LCP (Largest Contentful Paint)&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 8. Measure, don’t guess
&lt;/h2&gt;

&lt;p&gt;Use real tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lighthouse&lt;/li&gt;
&lt;li&gt;Web Vitals&lt;/li&gt;
&lt;li&gt;Chrome DevTools&lt;/li&gt;
&lt;li&gt;Vercel Analytics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 If you’re not measuring, you’re guessing&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚠️ Common mistakes I see
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;turning everything into client components&lt;/li&gt;
&lt;li&gt;ignoring bundle size&lt;/li&gt;
&lt;li&gt;fetching data on the client unnecessarily&lt;/li&gt;
&lt;li&gt;not using caching&lt;/li&gt;
&lt;li&gt;overusing libraries&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Real-world mindset
&lt;/h2&gt;

&lt;p&gt;Performance is not about doing one thing.&lt;/p&gt;

&lt;p&gt;It’s about:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;small optimizations everywhere&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  🔥 My go-to checklist
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;use Server Components by default&lt;/li&gt;
&lt;li&gt;optimize images with &lt;code&gt;next/image&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;lazy load heavy components&lt;/li&gt;
&lt;li&gt;analyze bundle size&lt;/li&gt;
&lt;li&gt;use caching properly&lt;/li&gt;
&lt;li&gt;avoid unnecessary client logic&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧩 Final thought
&lt;/h2&gt;

&lt;p&gt;Next.js is already optimized.&lt;/p&gt;

&lt;p&gt;Most performance issues come from:&lt;br&gt;
👉 &lt;strong&gt;how we use it, not the framework itself&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Keep things simple.&lt;br&gt;
Ship less JS.&lt;br&gt;
Measure everything.&lt;/p&gt;

&lt;p&gt;That’s it.&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>performance</category>
      <category>react</category>
      <category>webdev</category>
    </item>
    <item>
      <title>React 19 — What’s New, Benefits &amp; Key Differences</title>
      <dc:creator>Hosein Mahmoudi</dc:creator>
      <pubDate>Tue, 14 Jul 2026 18:46:56 +0000</pubDate>
      <link>https://dev.to/hoseinmdev/react-19-whats-new-benefits-key-differences-4n03</link>
      <guid>https://dev.to/hoseinmdev/react-19-whats-new-benefits-key-differences-4n03</guid>
      <description>&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;If you’ve been working with React for a while, you probably got used to patterns like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;useEffect&lt;/code&gt; for data fetching&lt;/li&gt;
&lt;li&gt;lots of state handling&lt;/li&gt;
&lt;li&gt;extra boilerplate for async logic&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;React 19 changes some of that — not in a “rewrite everything” way, but in a &lt;strong&gt;make things simpler and cleaner&lt;/strong&gt; way.&lt;/p&gt;

&lt;p&gt;This post is a quick breakdown of what actually matters.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What’s new in React 19?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. &lt;code&gt;use()&lt;/code&gt; — Simpler async handling
&lt;/h3&gt;

&lt;p&gt;Before (React 18):&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="kd"&gt;const&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;setData&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/api/data&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;setData&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now (React 19):&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="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/api/data&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;then&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;()));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 No &lt;code&gt;useEffect&lt;/code&gt;, no extra state&lt;br&gt;
👉 Much cleaner async logic&lt;/p&gt;


&lt;h3&gt;
  
  
  2. Server Components (more practical now)
&lt;/h3&gt;

&lt;p&gt;React 19 makes &lt;strong&gt;Server Components&lt;/strong&gt; more usable in real apps.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run components on the server&lt;/li&gt;
&lt;li&gt;Send less JS to the client&lt;/li&gt;
&lt;li&gt;Better performance by default&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 Especially useful if you're using frameworks like Next.js&lt;/p&gt;


&lt;h3&gt;
  
  
  3. Actions (Better form handling)
&lt;/h3&gt;

&lt;p&gt;Handling forms used to be messy.&lt;/p&gt;

&lt;p&gt;Now:&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="k"&gt;async&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;submit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;formData&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// handle form&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;form&lt;/span&gt; &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;submit&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;input&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"email"&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;button&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Send&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&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;form&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;👉 No need for manual event handlers&lt;br&gt;
👉 Cleaner and more native feeling&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Improved performance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Better rendering optimizations&lt;/li&gt;
&lt;li&gt;Smarter updates&lt;/li&gt;
&lt;li&gt;Less unnecessary re-renders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 You don’t always &lt;em&gt;see&lt;/em&gt; it, but you feel it in bigger apps&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Better developer experience
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;clearer patterns&lt;/li&gt;
&lt;li&gt;less boilerplate&lt;/li&gt;
&lt;li&gt;fewer “React hacks”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 React is slowly becoming more intuitive again&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚖️ React 18 vs React 19 (real difference)
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;React 18&lt;/th&gt;
&lt;th&gt;React 19&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;useEffect for async&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;use()&lt;/code&gt; for async&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;more boilerplate&lt;/td&gt;
&lt;td&gt;cleaner logic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;client-heavy&lt;/td&gt;
&lt;td&gt;more server-friendly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;manual forms&lt;/td&gt;
&lt;td&gt;built-in actions&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  💡 So… is it worth upgrading?
&lt;/h2&gt;

&lt;p&gt;Short answer: &lt;strong&gt;yes — but not blindly&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  👍 Upgrade if:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;you’re starting a new project&lt;/li&gt;
&lt;li&gt;you’re using modern React frameworks&lt;/li&gt;
&lt;li&gt;you want cleaner async logic&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ⚠️ Wait if:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;your project is large and stable&lt;/li&gt;
&lt;li&gt;dependencies are not ready yet&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 My take (from a frontend dev)
&lt;/h2&gt;

&lt;p&gt;React 19 isn’t a revolution — it’s a &lt;strong&gt;refinement&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It removes a lot of the awkward patterns we’ve been dealing with for years.&lt;/p&gt;

&lt;p&gt;The biggest win for me:&lt;br&gt;
👉 less &lt;code&gt;useEffect&lt;/code&gt;&lt;br&gt;
👉 less mental overhead&lt;br&gt;
👉 cleaner components&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Useful links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://react.dev/" rel="noopener noreferrer"&gt;https://react.dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://react.dev/blog" rel="noopener noreferrer"&gt;https://react.dev/blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧩 Final thought
&lt;/h2&gt;

&lt;p&gt;React is moving toward:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Write less code, do more by default”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And honestly… it’s about time.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Stop Arguing About Code Style — Set Up Prettier, ESLint &amp; Husky Once</title>
      <dc:creator>Hosein Mahmoudi</dc:creator>
      <pubDate>Tue, 14 Jul 2026 09:59:31 +0000</pubDate>
      <link>https://dev.to/hoseinmdev/stop-arguing-about-code-style-set-up-prettier-eslint-husky-once-1g8j</link>
      <guid>https://dev.to/hoseinmdev/stop-arguing-about-code-style-set-up-prettier-eslint-husky-once-1g8j</guid>
      <description>&lt;h2&gt;
  
  
  Why this matters
&lt;/h2&gt;

&lt;p&gt;I’ve worked on a few frontend projects where code reviews turned into style debates—tabs vs spaces, semicolons, quote styles… you name it.&lt;/p&gt;

&lt;p&gt;It slows everything down and adds zero value.&lt;/p&gt;

&lt;p&gt;At some point, I realized this shouldn’t even be a discussion.&lt;/p&gt;

&lt;p&gt;So now, whenever I start a project, I set up &lt;strong&gt;Prettier + ESLint + Husky&lt;/strong&gt; on day one.&lt;br&gt;
No debates. No manual fixes. No messy PRs.&lt;/p&gt;

&lt;p&gt;This post is exactly how I do it.&lt;/p&gt;


&lt;h2&gt;
  
  
  🧰 What each tool actually does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Prettier&lt;/strong&gt; → formats your code automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ESLint&lt;/strong&gt; → catches bad patterns &amp;amp; enforces rules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Husky&lt;/strong&gt; → runs checks before commits (so no one skips them)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Together → &lt;strong&gt;clean, consistent code without thinking&lt;/strong&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  ⚙️ Step 1 — Install dependencies
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; prettier eslint husky lint-staged
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🎯 Step 2 — Setup Prettier
&lt;/h2&gt;

&lt;p&gt;Create:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;prettier.config.js&lt;/code&gt;&lt;/strong&gt;&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;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;semi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;singleQuote&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;trailingComma&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;all&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;tabWidth&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;.prettierignore&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;node_modules
dist
build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🔍 Step 3 — Setup ESLint
&lt;/h2&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx eslint &lt;span class="nt"&gt;--init&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then tweak your config:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;.eslintrc.js&lt;/code&gt;&lt;/strong&gt;&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;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;extends&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;eslint:recommended&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;plugin:react/recommended&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;prettier&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;rules&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;no-unused-vars&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;warn&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;react/react-in-jsx-scope&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;off&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;👉 Important: &lt;code&gt;"prettier"&lt;/code&gt; disables ESLint rules that conflict with Prettier.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔗 Step 4 — Connect ESLint + Prettier
&lt;/h2&gt;

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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-D&lt;/span&gt; eslint-config-prettier
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it.&lt;br&gt;
Now ESLint won’t fight Prettier.&lt;/p&gt;


&lt;h2&gt;
  
  
  🐶 Step 5 — Setup Husky
&lt;/h2&gt;

&lt;p&gt;Initialize Husky:&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;Add pre-commit hook:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx husky add .husky/pre-commit &lt;span class="s2"&gt;"npx lint-staged"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  🚀 Step 6 — Setup lint-staged
&lt;/h2&gt;

&lt;p&gt;Add to &lt;code&gt;package.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"lint-staged"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"*.{js,jsx,ts,tsx}"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"eslint --fix"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"prettier --write"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  💡 What happens now?
&lt;/h2&gt;

&lt;p&gt;Every time you commit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ESLint checks your code&lt;/li&gt;
&lt;li&gt;Prettier formats it&lt;/li&gt;
&lt;li&gt;Only clean code gets committed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No more:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“fix formatting” PR comments&lt;/li&gt;
&lt;li&gt;broken lint rules in main branch&lt;/li&gt;
&lt;li&gt;inconsistent code styles&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧠 Real impact (from experience)
&lt;/h2&gt;

&lt;p&gt;After adding this to a team project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PR noise dropped a lot&lt;/li&gt;
&lt;li&gt;reviews focused on logic, not style&lt;/li&gt;
&lt;li&gt;onboarding new devs got easier&lt;/li&gt;
&lt;li&gt;nobody thinks about formatting anymore&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Useful links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://prettier.io/" rel="noopener noreferrer"&gt;https://prettier.io/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://eslint.org/" rel="noopener noreferrer"&gt;https://eslint.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://typicode.github.io/husky/" rel="noopener noreferrer"&gt;https://typicode.github.io/husky/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/okonet/lint-staged" rel="noopener noreferrer"&gt;https://github.com/okonet/lint-staged&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧩 Final thought
&lt;/h2&gt;

&lt;p&gt;If you're not setting this up at the start, you’re just postponing the pain.&lt;/p&gt;

&lt;p&gt;Set it once. Forget it forever.&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>productivity</category>
      <category>tooling</category>
      <category>webdev</category>
    </item>
    <item>
      <title>My Github Profile 🤍</title>
      <dc:creator>Hosein Mahmoudi</dc:creator>
      <pubDate>Mon, 29 Jun 2026 10:25:21 +0000</pubDate>
      <link>https://dev.to/hoseinmdev/my-github-profile-11f7</link>
      <guid>https://dev.to/hoseinmdev/my-github-profile-11f7</guid>
      <description>&lt;h1&gt;
  
  
  Let's Connect and Grow Together on GitHub! 👋
&lt;/h1&gt;

&lt;p&gt;Hey everyone! &lt;/p&gt;

&lt;p&gt;I'm a developer working on &lt;strong&gt;[Web Development / Next.js / React.js ]&lt;/strong&gt;. I want to expand my network, meet new developers, and explore interesting projects.&lt;/p&gt;

&lt;p&gt;Here is my GitHub profile:&lt;br&gt;
👉 &lt;a href="https://github.com/hoseinmdev" rel="noopener noreferrer"&gt;Click here to visit my GitHub Profile&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Drop your GitHub link in the comments below! I will definitely check out your repositories and &lt;strong&gt;follow you back&lt;/strong&gt;. Let's support each other! 🌟&lt;/p&gt;

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