<?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: Muhammad Hamid Raza</title>
    <description>The latest articles on DEV Community by Muhammad Hamid Raza (@hamidrazadev).</description>
    <link>https://dev.to/hamidrazadev</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%2F3131979%2F8333e423-4d9b-4851-ab42-f268ef4993c4.png</url>
      <title>DEV Community: Muhammad Hamid Raza</title>
      <link>https://dev.to/hamidrazadev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hamidrazadev"/>
    <language>en</language>
    <item>
      <title>HTTP Status Codes Explained: The Complete Guide Every Developer Needs 🚀</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Fri, 19 Jun 2026 11:47:44 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/http-status-codes-explained-the-complete-guide-every-developer-needs-3g51</link>
      <guid>https://dev.to/hamidrazadev/http-status-codes-explained-the-complete-guide-every-developer-needs-3g51</guid>
      <description>&lt;p&gt;You open DevTools. You see a request fail. And there it is: a three-digit number staring back at you like it owes you money.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;404&lt;/code&gt;. &lt;code&gt;500&lt;/code&gt;. &lt;code&gt;403&lt;/code&gt;. &lt;code&gt;301&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you've ever stared at one of these and thought "okay... but what do I actually &lt;em&gt;do&lt;/em&gt; now?" — you're not alone. Every developer, from total beginners to people who've shipped production apps for years, has Googled a status code at 2 AM.&lt;/p&gt;

&lt;p&gt;Here's the good news: HTTP status codes aren't random. They're a simple, organized language your server uses to tell your browser (or your app, or your API client) exactly what happened. Once you understand the pattern, you'll never feel lost again. 💡&lt;/p&gt;

&lt;p&gt;Let's break it down properly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are HTTP Status Codes?
&lt;/h2&gt;

&lt;p&gt;Every time your browser asks a server for something — a webpage, an image, an API response — the server replies with two things: the actual content (if any), and a &lt;strong&gt;status code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Think of it like ordering food at a counter. You ask for a burger. The person behind the counter can say:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"Here you go!" ✅ (your order worked)&lt;/li&gt;
&lt;li&gt;"We're out of buns, give us a sec" (something temporary happened)&lt;/li&gt;
&lt;li&gt;"That's not on our menu" (you asked for something that doesn't exist)&lt;/li&gt;
&lt;li&gt;"Our kitchen caught fire" (it's not your fault — something broke on their end)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HTTP status codes are exactly that, but for the web. They're three-digit numbers, and the &lt;strong&gt;first digit tells you the category&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1xx&lt;/strong&gt; – Informational: "Hold on, I'm working on it"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2xx&lt;/strong&gt; – Success: "Here's your stuff, all good"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3xx&lt;/strong&gt; – Redirection: "What you want is actually over here"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4xx&lt;/strong&gt; – Client Error: "You (the request) did something wrong"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5xx&lt;/strong&gt; – Server Error: "I (the server) messed up"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it. That's the whole system. Everything else is just detail within those five buckets.&lt;/p&gt;

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

&lt;p&gt;You can't debug what you don't understand. Status codes are usually the &lt;strong&gt;first clue&lt;/strong&gt; you get when something breaks — before you even open a single line of code.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;404&lt;/code&gt; tells you to check your URL or routing. A &lt;code&gt;401&lt;/code&gt; tells you it's an auth problem, not a server problem. A &lt;code&gt;500&lt;/code&gt; tells you to look at your backend logs, not your frontend fetch call.&lt;/p&gt;

&lt;p&gt;Knowing status codes well saves you time. Instead of randomly poking at your code, you immediately know &lt;em&gt;where&lt;/em&gt; to look. That's the difference between a 5-minute fix and an hour of guessing. ⚡&lt;/p&gt;

&lt;p&gt;It also matters for your career. Status codes come up in interviews, code reviews, API design discussions, and daily standups. Saying "the API returns a 422 when validation fails" instantly signals you know what you're talking about.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Quick Reference Table
&lt;/h2&gt;

&lt;p&gt;Here's a scannable list of the standard codes, grouped by class. Bookmark this section. 👀&lt;/p&gt;

&lt;h3&gt;
  
  
  1xx — Informational
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;td&gt;Continue&lt;/td&gt;
&lt;td&gt;Server received the request headers; client should send the body&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;101&lt;/td&gt;
&lt;td&gt;Switching Protocols&lt;/td&gt;
&lt;td&gt;Server is switching protocols as requested (e.g., to WebSocket)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;102&lt;/td&gt;
&lt;td&gt;Processing&lt;/td&gt;
&lt;td&gt;Server is still processing, response isn't ready yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;103&lt;/td&gt;
&lt;td&gt;Early Hints&lt;/td&gt;
&lt;td&gt;Server sends some headers early, before the final response&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  2xx — Success
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;200&lt;/td&gt;
&lt;td&gt;OK&lt;/td&gt;
&lt;td&gt;The request succeeded&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;201&lt;/td&gt;
&lt;td&gt;Created&lt;/td&gt;
&lt;td&gt;A new resource was successfully created&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;202&lt;/td&gt;
&lt;td&gt;Accepted&lt;/td&gt;
&lt;td&gt;Request accepted, but processing isn't finished yet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;204&lt;/td&gt;
&lt;td&gt;No Content&lt;/td&gt;
&lt;td&gt;Success, but there's nothing to send back&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;206&lt;/td&gt;
&lt;td&gt;Partial Content&lt;/td&gt;
&lt;td&gt;Server sent only part of the resource (used in streaming/downloads)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  3xx — Redirection
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;301&lt;/td&gt;
&lt;td&gt;Moved Permanently&lt;/td&gt;
&lt;td&gt;The resource has a new permanent URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;302&lt;/td&gt;
&lt;td&gt;Found&lt;/td&gt;
&lt;td&gt;Temporary redirect to a different URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;303&lt;/td&gt;
&lt;td&gt;See Other&lt;/td&gt;
&lt;td&gt;Redirect, typically after a form submission&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;304&lt;/td&gt;
&lt;td&gt;Not Modified&lt;/td&gt;
&lt;td&gt;The cached version is still valid, no need to re-download&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;307&lt;/td&gt;
&lt;td&gt;Temporary Redirect&lt;/td&gt;
&lt;td&gt;Like 302, but guarantees the method (GET/POST) stays the same&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;308&lt;/td&gt;
&lt;td&gt;Permanent Redirect&lt;/td&gt;
&lt;td&gt;Like 301, but guarantees the method stays the same&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  4xx — Client Error
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;400&lt;/td&gt;
&lt;td&gt;Bad Request&lt;/td&gt;
&lt;td&gt;The request itself is malformed or invalid&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;401&lt;/td&gt;
&lt;td&gt;Unauthorized&lt;/td&gt;
&lt;td&gt;You're not authenticated — log in first&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;403&lt;/td&gt;
&lt;td&gt;Forbidden&lt;/td&gt;
&lt;td&gt;You're authenticated, but not allowed to access this&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;404&lt;/td&gt;
&lt;td&gt;Not Found&lt;/td&gt;
&lt;td&gt;The resource doesn't exist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;405&lt;/td&gt;
&lt;td&gt;Method Not Allowed&lt;/td&gt;
&lt;td&gt;You used the wrong HTTP method (e.g., POST on a GET-only route)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;408&lt;/td&gt;
&lt;td&gt;Request Timeout&lt;/td&gt;
&lt;td&gt;The server gave up waiting for the request&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;409&lt;/td&gt;
&lt;td&gt;Conflict&lt;/td&gt;
&lt;td&gt;The request conflicts with the current state (e.g., duplicate entry)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;410&lt;/td&gt;
&lt;td&gt;Gone&lt;/td&gt;
&lt;td&gt;The resource existed once, but is permanently removed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;413&lt;/td&gt;
&lt;td&gt;Payload Too Large&lt;/td&gt;
&lt;td&gt;You sent too much data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;415&lt;/td&gt;
&lt;td&gt;Unsupported Media Type&lt;/td&gt;
&lt;td&gt;The format you sent isn't accepted&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;422&lt;/td&gt;
&lt;td&gt;Unprocessable Entity&lt;/td&gt;
&lt;td&gt;The request is well-formed, but the data fails validation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;429&lt;/td&gt;
&lt;td&gt;Too Many Requests&lt;/td&gt;
&lt;td&gt;You're being rate-limited&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  5xx — Server Error
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;th&gt;Name&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;500&lt;/td&gt;
&lt;td&gt;Internal Server Error&lt;/td&gt;
&lt;td&gt;Something broke on the server, and it's generic/unhandled&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;501&lt;/td&gt;
&lt;td&gt;Not Implemented&lt;/td&gt;
&lt;td&gt;The server doesn't support this functionality&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;502&lt;/td&gt;
&lt;td&gt;Bad Gateway&lt;/td&gt;
&lt;td&gt;A server acting as a proxy got an invalid response upstream&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;503&lt;/td&gt;
&lt;td&gt;Service Unavailable&lt;/td&gt;
&lt;td&gt;Server is overloaded or down for maintenance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;504&lt;/td&gt;
&lt;td&gt;Gateway Timeout&lt;/td&gt;
&lt;td&gt;A proxy/gateway didn't get a response in time&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There are a few more obscure ones (like &lt;code&gt;418 I'm a Teapot&lt;/code&gt;, which was originally an April Fools' joke in an RFC and is now sometimes used playfully), but the codes above cover the vast majority of what you'll see in real-world development.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Understanding Status Codes
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster debugging&lt;/strong&gt; — A &lt;code&gt;403&lt;/code&gt; tells you immediately it's a permissions issue, not a missing route. You skip straight to checking auth logic instead of guessing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Better API design&lt;/strong&gt; — When you build your own API, choosing the right code (like &lt;code&gt;201&lt;/code&gt; instead of &lt;code&gt;200&lt;/code&gt; after creating a resource) makes your API predictable and easier for other developers to consume.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Clearer communication with teammates&lt;/strong&gt; — Saying "we're getting a 429 from their API" is faster and more precise than "it's just... not working."&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smarter error handling in code&lt;/strong&gt; — Once you know the categories, you can write logic like "if status is in the 4xx range, show a user-facing error; if it's 5xx, retry or alert the team." This pattern shows up in almost every frontend app that talks to an API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Confidence during interviews&lt;/strong&gt; — Status codes are a common technical interview topic. Knowing the difference between &lt;code&gt;401&lt;/code&gt; and &lt;code&gt;403&lt;/code&gt;, or &lt;code&gt;301&lt;/code&gt; and &lt;code&gt;302&lt;/code&gt;, shows real hands-on experience.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Comparison: 4xx vs 5xx Errors
&lt;/h2&gt;

&lt;p&gt;This distinction trips up a lot of beginners, so it's worth calling out clearly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4xx (Client Error)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The problem is with the &lt;em&gt;request&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Example: wrong URL, missing auth token, bad input data.&lt;/li&gt;
&lt;li&gt;Fix: usually something the frontend or the API consumer needs to correct.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;5xx (Server Error)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The problem is on the &lt;em&gt;server's&lt;/em&gt; side.&lt;/li&gt;
&lt;li&gt;Example: a crash in backend code, a database that's unreachable, a misconfigured server.&lt;/li&gt;
&lt;li&gt;Fix: usually something the backend team needs to investigate in logs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The simple rule: &lt;strong&gt;4xx means "check your request," 5xx means "check the server."&lt;/strong&gt; This one mental model alone will speed up a huge chunk of your debugging sessions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Tips and Do's &amp;amp; Don'ts
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;Do&lt;/strong&gt; check the Network tab in DevTools before assuming your code is broken. The status code often tells you exactly where to look.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Do&lt;/strong&gt; use specific status codes in your own APIs (&lt;code&gt;201&lt;/code&gt; for creation, &lt;code&gt;204&lt;/code&gt; for a successful delete with no body) instead of always returning &lt;code&gt;200&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Do&lt;/strong&gt; handle 4xx and 5xx differently in your error-handling logic. A 4xx might mean "show the user a message." A 5xx might mean "retry the request" or "alert the team."&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Don't&lt;/strong&gt; treat every error the same way in your frontend code. A &lt;code&gt;401&lt;/code&gt; should usually redirect to login. A &lt;code&gt;500&lt;/code&gt; shouldn't.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Don't&lt;/strong&gt; ignore &lt;code&gt;429 Too Many Requests&lt;/code&gt;. If you're hitting rate limits, slamming the API harder won't help — you need backoff logic.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Don't&lt;/strong&gt; assume &lt;code&gt;404&lt;/code&gt; always means "the page doesn't exist." Sometimes it's a typo in your route, a missing trailing slash, or a misconfigured server rule.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Mistakes People Make
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mixing up 401 and 403.&lt;/strong&gt; Beginners often use these interchangeably. &lt;code&gt;401&lt;/code&gt; means "I don't know who you are — please log in." &lt;code&gt;403&lt;/code&gt; means "I know who you are, but you're not allowed in." Mixing them up confuses anyone debugging your API later.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Returning 200 for everything, even errors.&lt;/strong&gt; Some APIs send a &lt;code&gt;200 OK&lt;/code&gt; even when something failed, with the actual error buried inside the JSON body. This breaks standard error-handling patterns and forces every consumer of your API to read documentation just to know if something worked. Stick to proper status codes — it saves everyone time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not handling redirects properly.&lt;/strong&gt; Developers sometimes assume a &lt;code&gt;301&lt;/code&gt; and &lt;code&gt;302&lt;/code&gt; behave identically. They don't. A &lt;code&gt;301&lt;/code&gt; tells browsers and search engines "update your bookmarks, this is permanent" — which affects caching and SEO. A &lt;code&gt;302&lt;/code&gt; says "this is temporary, don't update anything permanently."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Panicking at any 4xx or 5xx without reading the code.&lt;/strong&gt; Not all errors are equal. A &lt;code&gt;404&lt;/code&gt; on an optional resource might be totally fine to ignore. A &lt;code&gt;500&lt;/code&gt; on a critical checkout flow needs immediate attention. Context matters more than the fact that "something failed."&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;HTTP status codes aren't scary once you see the pattern: &lt;strong&gt;1xx is "wait," 2xx is "success," 3xx is "look elsewhere," 4xx is "you made a mistake," and 5xx is "I made a mistake."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the whole mental model. Everything else — every specific code — is just a more detailed flavor of one of those five ideas.&lt;/p&gt;

&lt;p&gt;Next time you see a status code pop up in your console, you won't panic. You'll know exactly where to start looking. ✅&lt;/p&gt;

&lt;p&gt;If this helped clear things up, consider sharing it with another developer who's still Googling "what does 403 mean" at 1 AM. And if you want more practical, no-fluff developer content like this, you can find more posts at &lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;. Drop a comment if you've got a status code horror story — we've all got one. 😊&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>backend</category>
      <category>productivity</category>
    </item>
    <item>
      <title>NestJS: The Backend Framework That Makes Node.js Feel Grown-Up 🚀</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Wed, 17 Jun 2026 11:21:04 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/nestjs-the-backend-framework-that-makes-nodejs-feel-grown-up-o4o</link>
      <guid>https://dev.to/hamidrazadev/nestjs-the-backend-framework-that-makes-nodejs-feel-grown-up-o4o</guid>
      <description>&lt;p&gt;If you have ever tried to build a large Node.js backend and thought, &lt;em&gt;"Why does this feel like I'm making it up as I go?"&lt;/em&gt; — you are not alone.&lt;/p&gt;

&lt;p&gt;Express is powerful. Fastify is fast. But neither one tells you &lt;em&gt;how&lt;/em&gt; to structure your project. You end up inventing your own patterns, copying folder structures from tutorials, and praying nothing breaks when the project grows.&lt;/p&gt;

&lt;p&gt;That is exactly the problem NestJS was built to solve. And it is solving it really well.&lt;/p&gt;

&lt;p&gt;So what is NestJS, why is everyone suddenly talking about it, and should you actually learn it? Let's find out.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is NestJS?
&lt;/h2&gt;

&lt;p&gt;NestJS is a &lt;strong&gt;framework for building server-side applications using Node.js&lt;/strong&gt;. It is written in TypeScript and uses a structured, opinionated architecture inspired by Angular.&lt;/p&gt;

&lt;p&gt;Think of it this way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Node.js&lt;/strong&gt; is the engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Express&lt;/strong&gt; is a car with no seats, no doors, and no steering wheel — powerful, but you have to build everything yourself.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NestJS&lt;/strong&gt; is a fully assembled car. The seats, doors, engine, and GPS are already there. You just drive.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under the hood, NestJS uses Express by default (and optionally Fastify). So you are not throwing away what you know — you are building on top of it with a proper structure.&lt;/p&gt;

&lt;p&gt;NestJS uses &lt;strong&gt;TypeScript, decorators, modules, controllers, and services&lt;/strong&gt; to organize your code in a clean, predictable way. If you have used Angular, this will feel very familiar. If you have not, it is still easy to pick up.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why NestJS Is Getting So Much Attention
&lt;/h2&gt;

&lt;p&gt;Backend development with Node.js has always had an awkward problem. Node.js gives you total freedom, and total freedom means total responsibility for every decision. File structure? Up to you. Dependency injection? Figure it out yourself. Modules? Sure, but how?&lt;/p&gt;

&lt;p&gt;For small projects, this is fine. For production-grade apps with teams and deadlines? It becomes chaos.&lt;/p&gt;

&lt;p&gt;NestJS fixes this by giving developers a &lt;strong&gt;clear, consistent way to build backends&lt;/strong&gt;. It enforces good habits without being painful. And it does this while staying close to patterns that most JavaScript and TypeScript developers already understand.&lt;/p&gt;

&lt;p&gt;Here is why developers are choosing it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Teams can onboard faster because the folder structure is always familiar&lt;/li&gt;
&lt;li&gt;TypeScript is a first-class citizen, not an afterthought&lt;/li&gt;
&lt;li&gt;Testing is built into the framework, not bolted on&lt;/li&gt;
&lt;li&gt;It works great for REST APIs, GraphQL, WebSockets, and microservices&lt;/li&gt;
&lt;li&gt;The documentation is genuinely excellent&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Benefits with Real-Life Examples
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;✅ Structured Architecture Out of the Box&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You do not need to spend three hours deciding where to put your files. NestJS gives you modules, controllers, and services right away. A &lt;code&gt;UsersModule&lt;/code&gt; with a &lt;code&gt;UsersController&lt;/code&gt; and &lt;code&gt;UsersService&lt;/code&gt; just makes sense — you can read it and know exactly what each piece does.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ TypeScript by Default&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No setup, no config fights. You write TypeScript from day one. This means better autocomplete, fewer runtime surprises, and errors you catch before your users do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Built-In Dependency Injection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NestJS handles dependency injection automatically. You declare what a service needs, and NestJS provides it. No messy manual wiring. This also makes unit testing much cleaner because you can swap out dependencies easily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Great for REST, GraphQL, and Microservices&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whether you are building a REST API, a GraphQL server, or a message-queue-based microservice, NestJS supports all of it with first-party packages. You do not need to piece together five different libraries and hope they play nicely together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Powerful CLI&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nest generate module &lt;span class="nb"&gt;users
&lt;/span&gt;nest generate controller &lt;span class="nb"&gt;users
&lt;/span&gt;nest generate service &lt;span class="nb"&gt;users&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Three commands and your entire Users feature is scaffolded, connected, and ready for logic. This saves a meaningful amount of time on every project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Testing Is a First-Class Feature&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NestJS generates test files automatically alongside your code. It integrates with Jest and provides utilities for mocking services, making unit and integration testing far less painful than it usually is in Node.js projects.&lt;/p&gt;




&lt;h2&gt;
  
  
  NestJS vs Plain Express: When Does It Actually Matter?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Plain Express&lt;/th&gt;
&lt;th&gt;NestJS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Quick prototype or tiny API&lt;/td&gt;
&lt;td&gt;✅ Perfect&lt;/td&gt;
&lt;td&gt;Might be overkill&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium to large production app&lt;/td&gt;
&lt;td&gt;Gets messy fast&lt;/td&gt;
&lt;td&gt;✅ Shines here&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Team of 2+ developers&lt;/td&gt;
&lt;td&gt;Coordination headaches&lt;/td&gt;
&lt;td&gt;✅ Consistent structure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TypeScript-first project&lt;/td&gt;
&lt;td&gt;Manual setup needed&lt;/td&gt;
&lt;td&gt;✅ Built in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microservices or event-driven&lt;/td&gt;
&lt;td&gt;DIY everything&lt;/td&gt;
&lt;td&gt;✅ First-party support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GraphQL&lt;/td&gt;
&lt;td&gt;Third-party setup&lt;/td&gt;
&lt;td&gt;✅ Official package&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The honest answer: for small scripts and quick demos, Express is simpler. But the moment your app grows beyond a few routes, or when more than one developer is involved, NestJS becomes the smarter choice.&lt;/p&gt;




&lt;h2&gt;
  
  
  Core Concepts You Need to Know
&lt;/h2&gt;

&lt;p&gt;You do not need to memorize everything at once. But these four building blocks are the heart of NestJS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Modules&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modules are organizational units. Every NestJS app has at least one — the &lt;code&gt;AppModule&lt;/code&gt;. You then create feature modules like &lt;code&gt;UsersModule&lt;/code&gt;, &lt;code&gt;AuthModule&lt;/code&gt;, and &lt;code&gt;ProductsModule&lt;/code&gt;. Each module owns its own controllers and services.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Controllers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Controllers handle incoming HTTP requests and return responses. A &lt;code&gt;UsersController&lt;/code&gt; handles routes like &lt;code&gt;GET /users&lt;/code&gt; or &lt;code&gt;POST /users&lt;/code&gt;. They are thin — they receive a request, pass it to a service, and return the result.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Services&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Services contain the actual business logic. The controller talks to the service. The service talks to the database or external APIs. This separation keeps your code clean and testable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Providers and Dependency Injection&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Services are providers. NestJS injects them automatically where they are needed. If your &lt;code&gt;UsersController&lt;/code&gt; needs the &lt;code&gt;UsersService&lt;/code&gt;, you just declare it in the constructor and NestJS handles the rest.&lt;/p&gt;

&lt;p&gt;Here is a quick example of what this looks like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Injectable&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UsersService&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hamid&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;span class="p"&gt;@&lt;/span&gt;&lt;span class="nd"&gt;Controller&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;users&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="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;UsersController&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="k"&gt;readonly&lt;/span&gt; &lt;span class="nx"&gt;usersService&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;UsersService&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;span class="nd"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="nf"&gt;findAll&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;usersService&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;findAll&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;Clean. Readable. Predictable. 💡&lt;/p&gt;




&lt;h2&gt;
  
  
  Best Tips for Getting Started
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Start with the official CLI.&lt;/strong&gt; Install it globally and let it scaffold your project:&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;-g&lt;/span&gt; @nestjs/cli
nest new my-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Learn modules before anything else.&lt;/strong&gt; The module system is the foundation of everything. Once it clicks, the rest makes sense quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use the official documentation.&lt;/strong&gt; The NestJS docs are some of the best in the Node.js ecosystem. Do not skip them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do not force Angular patterns if you do not know Angular.&lt;/strong&gt; NestJS is inspired by Angular, but you do not need to understand Angular to use it well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Add validation early.&lt;/strong&gt; Use the &lt;code&gt;class-validator&lt;/code&gt; and &lt;code&gt;class-transformer&lt;/code&gt; packages with NestJS pipes. They work seamlessly together and save you from a lot of manual validation code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Write tests as you go.&lt;/strong&gt; NestJS generates test files automatically. Use them. Future you will be grateful.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Mistakes Beginners Make
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Putting logic inside controllers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Controllers should be thin. They receive a request and pass it along. If you are writing database queries or complex business rules inside a controller, move that logic to a service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ignoring the module system&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Beginners often put everything into &lt;code&gt;AppModule&lt;/code&gt;. This works at first and becomes a nightmare by week three. Create a module for each feature from the beginning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Skipping TypeScript features&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NestJS and TypeScript are deeply integrated. Using &lt;code&gt;any&lt;/code&gt; everywhere or ignoring types defeats the purpose. Lean into TypeScript — it will actually help you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not using pipes for validation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Without validation pipes, invalid request data goes straight into your logic. Use &lt;code&gt;ValidationPipe&lt;/code&gt; globally. It is one line of code and it prevents a lot of bugs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;useGlobalPipes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;ValidationPipe&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Trying to learn everything at once&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;NestJS has a lot of features. GraphQL, WebSockets, microservices, guards, interceptors, pipes, middleware. Do not try to learn all of it on day one. Start with modules, controllers, and services. Everything else comes naturally after that.&lt;/p&gt;




&lt;h2&gt;
  
  
  Is NestJS Worth Learning in 2025?
&lt;/h2&gt;

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

&lt;p&gt;NestJS has gone from an interesting framework to a mainstream choice for serious Node.js development. It is used by teams at companies large and small, across industries. The ecosystem is active, the documentation is strong, and the community keeps growing.&lt;/p&gt;

&lt;p&gt;If you are building backends with Node.js and you want your code to be clean, scalable, and easy to work in as a team — NestJS is one of the best investments of your learning time right now.&lt;/p&gt;

&lt;p&gt;You do not have to abandon what you already know. You just pick up better habits and better tools. And that is a pretty good deal.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;NestJS is not just another framework. It is an answer to a real problem that Node.js developers have been dealing with for years: how do you build large, maintainable backends without inventing your own architecture every single time?&lt;/p&gt;

&lt;p&gt;The answer NestJS gives is clear, practical, and well-executed. Modules keep your code organized. Controllers keep routing clean. Services keep business logic separate. TypeScript catches mistakes early. And the CLI keeps you moving fast.&lt;/p&gt;

&lt;p&gt;If you are a beginner, NestJS gives you good habits to build on. If you are an experienced developer, it gives you structure that scales. Either way, it is worth your time.&lt;/p&gt;

&lt;p&gt;Start small. Build one module. Write one service. Make one API endpoint. The framework will do the rest of the heavy lifting.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Enjoyed this post? Find more practical developer content at *&lt;/em&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;** — free tools, tutorials, and guides built for developers who like to keep things real.*&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If this helped you, share it with a teammate or friend who is figuring out their backend stack. It might save them a few hours of confusion. 😊&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nestjs</category>
      <category>node</category>
      <category>typescript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Why Claude Fable 5 and Mythos 5 Were Banned: The Full Story Explained</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Tue, 16 Jun 2026 04:19:58 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/why-claude-fable-5-and-mythos-5-were-banned-the-full-story-explained-k5e</link>
      <guid>https://dev.to/hamidrazadev/why-claude-fable-5-and-mythos-5-were-banned-the-full-story-explained-k5e</guid>
      <description>&lt;p&gt;The AI world just got its most dramatic plot twist of 2026. Anthropic launched two groundbreaking models. The internet celebrated. And then, just &lt;strong&gt;three days later&lt;/strong&gt;, they were gone — pulled from every user on the planet.&lt;/p&gt;

&lt;p&gt;If you opened Claude last weekend and found Fable 5 missing, you were not alone. The disable was global, sudden, and still being disputed. What exactly happened? And why should any developer care?&lt;/p&gt;

&lt;p&gt;Let's break it all down. 👀&lt;/p&gt;




&lt;h2&gt;
  
  
  What Are Claude Fable 5 and Mythos 5?
&lt;/h2&gt;

&lt;p&gt;On &lt;strong&gt;June 9, 2026&lt;/strong&gt;, Anthropic released two new AI models that sat in an entirely new tier above its flagship Opus line.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Fable 5&lt;/strong&gt; was the publicly available version — available to all Claude Pro, Max, Team, and Enterprise users at no extra cost during a launch window. It was described as state-of-the-art on nearly all tested benchmarks, with exceptional performance in software engineering, knowledge work, vision, and scientific research. Its defining trait: the longer and more complex the task, the wider the gap between Fable 5 and everything that came before it. It could autonomously run agentic coding tasks for days with minimal human intervention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Claude Mythos 5&lt;/strong&gt; was the same underlying model, but with some of its safety classifiers lifted. It was never public — only available to a small group of vetted cyberdefenders, critical infrastructure providers, and select biology researchers through Anthropic's restricted &lt;strong&gt;Project Glasswing&lt;/strong&gt; program.&lt;/p&gt;

&lt;p&gt;Together, they formed what Anthropic called the &lt;strong&gt;"Mythos class"&lt;/strong&gt; — a new tier sitting above Opus. The name itself is intentional: &lt;em&gt;Fable&lt;/em&gt; comes from the Latin &lt;em&gt;fabula&lt;/em&gt; (related to the Greek &lt;em&gt;mythos&lt;/em&gt;), drawing a clear line between the public-facing model and the less-restricted version.&lt;/p&gt;

&lt;p&gt;Both models shared a &lt;strong&gt;1 million token context window&lt;/strong&gt;, support for up to &lt;strong&gt;128k output tokens per request&lt;/strong&gt;, and were priced at $10 per million input tokens and $50 per million output tokens — twice the Opus 4.8 rate.&lt;/p&gt;




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

&lt;p&gt;This is not just another "new AI model" story. It touches something much more important for every developer, startup, enterprise team, and user anywhere outside the United States.&lt;/p&gt;

&lt;p&gt;Within 72 hours of launch, the US government stepped in and ordered access cut off — not just in specific countries, but &lt;strong&gt;for every user on Earth&lt;/strong&gt;. That is unprecedented. And the reason given — a potential jailbreak — is being actively disputed by Anthropic itself.&lt;/p&gt;

&lt;p&gt;If you build on Claude, depend on its API, or care about where AI regulation is heading, this story affects you directly. It raises questions that no one has clean answers to yet:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Can a government pull a deployed commercial AI model without full explanation?&lt;/li&gt;
&lt;li&gt;Who gets to decide what an AI model is "too dangerous" to deploy?&lt;/li&gt;
&lt;li&gt;What happens to the hundreds of millions of users who depended on it?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the reality of frontier AI in 2026. The story is still unfolding.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Made Fable 5 and Mythos 5 Powerful
&lt;/h2&gt;

&lt;p&gt;Here is why these were not ordinary model releases — and why their capabilities became the heart of the controversy.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Autonomous, long-running tasks.&lt;/strong&gt; Fable 5 could handle multi-day agentic workflows — things like reviewing an entire codebase, running a data pipeline, or executing complex software projects — without needing a human to check in every few steps. This was a major leap over Opus.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exceptional cybersecurity capabilities.&lt;/strong&gt; Mythos 5 was described by Anthropic as having "the strongest cybersecurity capabilities of any model in the world." It was particularly effective at identifying software vulnerabilities in complex, legacy systems that had been sitting unpatched for years. For defenders, that is incredibly useful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scientific breakthroughs.&lt;/strong&gt; Anthropic's launch post mentioned that these models had contributed to genuine scientific output, including work on AAV (adeno-associated virus) candidates developed by Dyno Therapeutics — a striking example of AI directly assisting biological research.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Safety scaffolding built in.&lt;/strong&gt; Sensitive topics like cybersecurity exploits, biology, chemistry, and model distillation triggered an automatic fallback to Claude Opus 4.8. Anthropic said these safeguards activated in fewer than 5% of sessions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Massive context and output.&lt;/strong&gt; With a 1 million token context window, Fable 5 could ingest entire codebases, lengthy legal documents, or vast research papers and reason over them in one shot.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Fable 5 vs Mythos 5: What Was the Difference?
&lt;/h2&gt;

&lt;p&gt;They were built from the same foundation. The difference was in how much of the safety layer was kept on.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Claude Fable 5&lt;/th&gt;
&lt;th&gt;Claude Mythos 5&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Availability&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;General public, all paid plans&lt;/td&gt;
&lt;td&gt;Invite-only (Project Glasswing)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Safety classifiers&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Full safeguard layer active&lt;/td&gt;
&lt;td&gt;Some safeguards lifted for vetted users&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Who it served&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Developers, enterprises, general users&lt;/td&gt;
&lt;td&gt;Cyberdefenders, critical infrastructure, researchers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cybersecurity scope&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Broad tasks with automatic fallback&lt;/td&gt;
&lt;td&gt;Higher-risk analysis for trusted organizations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Context window&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;td&gt;1M tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pricing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$10 / $50 per million tokens&lt;/td&gt;
&lt;td&gt;$10 / $50 per million tokens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data retention&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;30-day mandatory&lt;/td&gt;
&lt;td&gt;30-day mandatory&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;In short: same brain, different safety gear. Fable 5 had its helmet on for the public. Mythos 5 had fewer restrictions for a trusted few.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Happened: The Ban Explained Step by Step
&lt;/h2&gt;

&lt;p&gt;Here is a clean timeline of how this unfolded.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June 9, 2026 — Launch Day&lt;/strong&gt;&lt;br&gt;
Anthropic releases Claude Fable 5 publicly and Claude Mythos 5 to Project Glasswing partners. Both are available immediately. Free access for Pro, Max, Team, and Enterprise plans announced through June 22.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June 9–11 — Early Adoption&lt;/strong&gt;&lt;br&gt;
Developers test it, benchmarks circulate, the community reacts positively. Fable 5 scores roughly 80% on SWE-Bench Pro in independent testing. Reviews highlight the long-horizon agentic performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June 12, 2026 — The Directive Arrives (5:21 PM ET)&lt;/strong&gt;&lt;br&gt;
The US government issues an &lt;strong&gt;export control directive&lt;/strong&gt;, ordering Anthropic to immediately suspend access to Fable 5 and Mythos 5 for any foreign national — whether inside or outside the US — including Anthropic's own foreign national employees.&lt;/p&gt;

&lt;p&gt;The directive cites national security authorities. The letter does not provide specific technical details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June 12 Evening — Global Shutdown&lt;/strong&gt;&lt;br&gt;
Because verifying the nationality of every user globally is practically impossible, Anthropic decides that selective compliance cannot work. It disables both models for &lt;strong&gt;all customers worldwide&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;"The net effect of this order is that we must abruptly disable Fable 5 and Mythos 5 for all our customers to ensure compliance," Anthropic stated. "Access to all other Anthropic models will not be affected."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June 13–14 — Anthropic Pushes Back&lt;/strong&gt;&lt;br&gt;
Anthropic publishes a detailed rebuttal. It says the government disclosed only a "narrow, non-universal jailbreak" — essentially a technique involving asking the model to read a codebase and fix any software flaws. Anthropic reviewed the demonstration and found that the vulnerabilities identified were minor, previously known, and discoverable by other publicly available models, including OpenAI's GPT-5.5.&lt;/p&gt;

&lt;p&gt;Anthropic's technical team travels to Washington for meetings with White House officials.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;June 15–16 — Still Under Review&lt;/strong&gt;&lt;br&gt;
Talks continue. Access has not been restored. Anthropic is maintaining compliance while arguing that the standard being applied would "essentially halt all new model deployments for all frontier model providers" if applied broadly across the industry.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Anthropic Actually Said
&lt;/h2&gt;

&lt;p&gt;Anthropic's official statement is worth reading carefully, because it explains not just what happened — but how the company thinks about safety.&lt;/p&gt;

&lt;p&gt;The key points from Anthropic:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On the jailbreak itself:&lt;/strong&gt; The government shared verbal evidence of a narrow, non-universal jailbreak. Anthropic reviewed what it believes was the basis of the directive, validated that the demonstrated capability was already available in other public models, and found that the technique identified only minor, previously known vulnerabilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On safeguards:&lt;/strong&gt; Fable 5 went through thousands of hours of red-teaming with the US government, UK AISI, multiple third-party organizations, and internal teams before launch. No tester found a universal jailbreak — one that could broadly bypass the model's defenses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On the standard being set:&lt;/strong&gt; Anthropic warned that perfect jailbreak resistance is not possible for any model provider. Every deployed model in the industry is vulnerable to narrow jailbreaks in specific circumstances. If a narrow jailbreak is grounds for full recall, no frontier model should be deployed anywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On compliance:&lt;/strong&gt; Despite disagreeing, Anthropic is complying with the legal directive. "We believe this is a misunderstanding and are working to restore access as soon as possible."&lt;/p&gt;




&lt;h2&gt;
  
  
  Tips for Developers Right Now ⚡
&lt;/h2&gt;

&lt;p&gt;If you had workflows or products relying on Fable 5 or Mythos 5, here is what you can do while access is suspended.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Fallback to Claude Opus 4.8.&lt;/strong&gt; For most development tasks, Opus 4.8 (released May 28, 2026) is still excellent. It is the next-most-capable model and remains fully available.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Check Anthropic's status page and official blog.&lt;/strong&gt; Updates on restoration will come from &lt;a href="https://www.anthropic.com" rel="noopener noreferrer"&gt;anthropic.com&lt;/a&gt;. Do not rely on social media rumors for this.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Do not rebuild your entire architecture.&lt;/strong&gt; This is a temporary disruption. Anthropic is actively working to restore access and is in direct talks with the White House. Migrating to a completely different provider right now may create more problems than it solves.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Review your data retention understanding.&lt;/strong&gt; Fable 5 and Mythos 5 required mandatory 30-day data retention. If your project had compliance questions around that, now is a good time to re-read the &lt;a href="https://support.claude.com/en/articles/15425996-data-retention-practices-for-mythos-class-models" rel="noopener noreferrer"&gt;policy&lt;/a&gt; while waiting for access to return.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Follow the story.&lt;/strong&gt; This situation is evolving quickly. The outcome of Anthropic's talks with the Trump administration will likely shape how all frontier AI models are regulated going forward.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Mistakes and Misconceptions Around This Ban
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake 1: "Fable 5 was hacked or compromised."&lt;/strong&gt;&lt;br&gt;
No. The model itself was not hacked. The US government claimed a jailbreak technique was found that could bypass some of its safety filters. Anthropic disputes the severity of this finding. The model's architecture is intact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistake 2: "This only affects users outside the US."&lt;/strong&gt;&lt;br&gt;
The export control directive targeted foreign nationals — but because Anthropic could not filter users by nationality in real time, it disabled access globally, including for US citizens. Everyone lost access.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistake 3: "This is Anthropic's decision."&lt;/strong&gt;&lt;br&gt;
Anthropic is complying with a legal government directive. The company actively disagrees with the move and is in discussions to reverse it. This was not a voluntary product recall.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistake 4: "Mythos 5 was a public model."&lt;/strong&gt;&lt;br&gt;
Mythos 5 was never publicly available. It was restricted to Project Glasswing partners — a small group of vetted organizations in cybersecurity, critical infrastructure, and biology research.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistake 5: "All Claude models are now unavailable."&lt;/strong&gt;&lt;br&gt;
Only Fable 5 and Mythos 5 are suspended. All other Claude models — including Claude Opus 4.8, Claude Sonnet 4.6, Claude Haiku 4.5, and others — remain fully available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistake 6: "This proves AI models are dangerous and should be stopped."&lt;/strong&gt;&lt;br&gt;
The demonstrated jailbreak found minor, previously known vulnerabilities that other public models can also discover. The debate is about regulatory standards and how to define acceptable risk — not about Fable 5 being uniquely dangerous.&lt;/p&gt;




&lt;h2&gt;
  
  
  What This Means for the Broader AI World
&lt;/h2&gt;

&lt;p&gt;This is the first time a deployed commercial AI model has been pulled globally by government order within days of launch. That alone makes it a defining moment.&lt;/p&gt;

&lt;p&gt;The precedent it sets is still being negotiated. Anthropic has publicly argued that if a narrow jailbreak — one that reveals minor vulnerabilities already discoverable by other public models — is sufficient cause for a full global recall, it would make future frontier model deployments nearly impossible.&lt;/p&gt;

&lt;p&gt;The Trump administration had already designated Anthropic a "supply-chain risk to national security" in March 2026 (a designation Anthropic contested). This action appears to be a continuation of that tension.&lt;/p&gt;

&lt;p&gt;How this gets resolved will send a strong signal to every AI lab, every government, and every developer who builds on top of these models.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Claude Fable 5 and Mythos 5 were arguably the most capable AI models ever made publicly available. They lasted three days.&lt;/p&gt;

&lt;p&gt;The story is not really about whether a jailbreak exists — narrow jailbreaks exist for every model in the industry. The story is about who gets to define the line between "safe enough to deploy" and "too dangerous to ship," and what process they follow to make that call.&lt;/p&gt;

&lt;p&gt;Anthropic is disputing the ruling, complying with the law, and working to restore access. The broader question of how governments should regulate frontier AI is now front and center — and every developer who builds on these tools has a stake in how it resolves.&lt;/p&gt;

&lt;p&gt;Stay updated, keep an eye on &lt;a href="https://www.anthropic.com" rel="noopener noreferrer"&gt;anthropic.com&lt;/a&gt;, and in the meantime, Claude Opus 4.8 has your back. 🚀&lt;/p&gt;

&lt;p&gt;If this breakdown helped you understand what happened, share it with your team or community — a lot of people are confused about this story. And for more developer-focused content, head over to &lt;strong&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;&lt;/strong&gt; for articles on AI, frontend development, and the tools shaping how we build.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>news</category>
      <category>security</category>
      <category>webdev</category>
    </item>
    <item>
      <title>MongoDB Compass: The Complete Zero-to-Hero Guide for Developers 🧭</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Mon, 15 Jun 2026 09:02:06 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/mongodb-compass-the-complete-zero-to-hero-guide-for-developers-28oi</link>
      <guid>https://dev.to/hamidrazadev/mongodb-compass-the-complete-zero-to-hero-guide-for-developers-28oi</guid>
      <description>&lt;p&gt;So you've heard about MongoDB. Maybe you've even used it. But every time you open the terminal and start typing &lt;code&gt;db.collection.find({})&lt;/code&gt;, something feels off. You're not sure if your query is right. You can't see the shape of your data. And debugging? That's just staring at walls of JSON and hoping for the best.&lt;/p&gt;

&lt;p&gt;There's a better way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MongoDB Compass&lt;/strong&gt; is the free, official GUI tool for MongoDB — and it changes everything about how you explore, query, and manage your database. Whether you're a complete beginner or an experienced developer who just never got around to using it, this guide covers everything you need to know from absolute zero to confidently using every major feature.&lt;/p&gt;

&lt;p&gt;Ready to stop guessing and start &lt;em&gt;seeing&lt;/em&gt; your data? Let's go. 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is MongoDB Compass?
&lt;/h2&gt;

&lt;p&gt;Think of MongoDB like a massive warehouse full of boxes (your documents). The terminal is like walking through that warehouse in the dark with a flashlight — you can find things, but it's slow and uncomfortable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MongoDB Compass is the warehouse with the lights on.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It's a free, graphical desktop application made by MongoDB itself. Instead of typing raw commands to interact with your database, you click buttons, fill in fields, and see your data displayed visually in a clean interface.&lt;/p&gt;

&lt;p&gt;It works with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB Atlas&lt;/strong&gt; (the cloud version)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local MongoDB&lt;/strong&gt; running on your machine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB Enterprise&lt;/strong&gt; deployments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And the best part? You don't need to write a single command to get started. Though if you &lt;em&gt;want&lt;/em&gt; to write queries, Compass fully supports that too — it just shows you the results nicely.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why MongoDB Compass Matters
&lt;/h2&gt;

&lt;p&gt;Before tools like Compass existed, working with a database meant memorizing syntax, running queries blind, and hoping your output was correct.&lt;/p&gt;

&lt;p&gt;Here's why Compass is genuinely important:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For beginners&lt;/strong&gt; — it removes the fear of databases. You can explore data visually without knowing the full MongoDB query language on day one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For intermediate developers&lt;/strong&gt; — it speeds up debugging. You can inspect a collection, understand its structure, and build a complex aggregation pipeline visually in minutes instead of hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For teams&lt;/strong&gt; — it makes communication easier. When everyone can &lt;em&gt;see&lt;/em&gt; the data structure, there's less confusion, fewer bugs, and faster development.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For performance&lt;/strong&gt; — Compass shows you exactly why a query is slow, which indexes are being used, and what you need to fix.&lt;/p&gt;

&lt;p&gt;It's one of those tools that once you start using, you wonder how you ever survived without it.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Download and Install MongoDB Compass
&lt;/h2&gt;

&lt;p&gt;Let's start from the very beginning. 👇&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1 — Download Compass
&lt;/h3&gt;

&lt;p&gt;Go to the official MongoDB website:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://www.mongodb.com/try/download/compass
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Choose your operating system (Windows, macOS, or Linux) and download the installer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2 — Install It
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Windows&lt;/strong&gt;: Run the &lt;code&gt;.exe&lt;/code&gt; installer and follow the prompts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;macOS&lt;/strong&gt;: Open the &lt;code&gt;.dmg&lt;/code&gt; file, drag Compass into your Applications folder.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Linux&lt;/strong&gt;: Follow the &lt;code&gt;.deb&lt;/code&gt; or &lt;code&gt;.rpm&lt;/code&gt; installation for your distro.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The app is lightweight and installs quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3 — Open Compass
&lt;/h3&gt;

&lt;p&gt;Launch it like any other desktop app. You'll see the connection screen.&lt;/p&gt;

&lt;p&gt;That's it for installation. No complicated setup, no environment variables, no config files. Just install and open. ✅&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Connect to Your MongoDB Database
&lt;/h2&gt;

&lt;p&gt;Once Compass is open, the first thing you'll do is &lt;strong&gt;connect to a database&lt;/strong&gt;. You'll see a connection screen with a field for a connection string.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option A — Connect to MongoDB Atlas (Cloud)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to your &lt;a href="https://cloud.mongodb.com" rel="noopener noreferrer"&gt;MongoDB Atlas&lt;/a&gt; account.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Connect&lt;/strong&gt; on your cluster.&lt;/li&gt;
&lt;li&gt;Choose &lt;strong&gt;MongoDB Compass&lt;/strong&gt; from the options.&lt;/li&gt;
&lt;li&gt;Copy the connection string. It looks something like this:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mongodb+srv://yourusername:&amp;lt;password&amp;gt;@cluster0.abcde.mongodb.net/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Replace &lt;code&gt;&amp;lt;password&amp;gt;&lt;/code&gt; with your actual password.&lt;/li&gt;
&lt;li&gt;Paste it into Compass and click &lt;strong&gt;Connect&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Option B — Connect to a Local MongoDB Instance
&lt;/h3&gt;

&lt;p&gt;If you have MongoDB running locally, your connection string is simply:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mongodb://localhost:27017
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paste that in and hit &lt;strong&gt;Connect&lt;/strong&gt;. That's all.&lt;/p&gt;

&lt;p&gt;Once connected, you'll see your databases listed in the left sidebar. Click any database and you'll see its collections. Click a collection and your data appears — instantly, visually, no command needed.&lt;/p&gt;

&lt;p&gt;This is where the fun begins. 😊&lt;/p&gt;




&lt;h2&gt;
  
  
  Exploring Your Data — The Documents Tab
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Documents tab&lt;/strong&gt; is where you spend most of your time in Compass. It shows all the documents inside a collection.&lt;/p&gt;

&lt;h3&gt;
  
  
  What you see:
&lt;/h3&gt;

&lt;p&gt;Every document is displayed in a clean, expandable card format. You can see all the fields and values at a glance. Nested objects and arrays are collapsible, so even complex data structures are easy to read.&lt;/p&gt;

&lt;h3&gt;
  
  
  What you can do:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Add a Document&lt;/strong&gt; — Click the "Add Data" button and paste in a JSON object or use the built-in form. No &lt;code&gt;insertOne()&lt;/code&gt; command needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Edit a Document&lt;/strong&gt; — Hover over any document and click the pencil icon. You can modify any field value right in the UI. Click Update and it saves immediately.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Delete a Document&lt;/strong&gt; — Click the trash icon next to a document. You'll get a confirmation prompt before anything is removed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Copy a Document&lt;/strong&gt; — Want to duplicate an entry? Click the copy icon and paste it into the Add Data form.&lt;/p&gt;

&lt;p&gt;This is beginner-friendly but also genuinely useful for experienced developers doing quick data fixes without spinning up a script.&lt;/p&gt;




&lt;h2&gt;
  
  
  Querying Made Easy — The Query Bar
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;query bar&lt;/strong&gt; at the top of the Documents view is where you filter your data. You can search and filter your collection without leaving the screen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Filtering
&lt;/h3&gt;

&lt;p&gt;Click in the Filter field and type a MongoDB query object:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"active"&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;p&gt;Hit &lt;strong&gt;Find&lt;/strong&gt; and Compass shows only documents where &lt;code&gt;status&lt;/code&gt; is &lt;code&gt;"active"&lt;/code&gt;. Simple.&lt;/p&gt;

&lt;p&gt;Want documents where age is greater than 25?&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"age"&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;"$gt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&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;p&gt;Want to match two conditions at once?&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"status"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"active"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"role"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"admin"&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;p&gt;These are the same queries you'd type in the terminal — but here you can see the results live, tweak the filter, and instantly see what changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Project (Select Fields)
&lt;/h3&gt;

&lt;p&gt;Don't need every field? Use the &lt;strong&gt;Project&lt;/strong&gt; field to specify which ones to show:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&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;p&gt;This returns only the &lt;code&gt;name&lt;/code&gt; and &lt;code&gt;email&lt;/code&gt; fields, hiding everything else.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sort
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Sort&lt;/strong&gt; field lets you order results:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"createdAt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;-1&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;p&gt;This sorts your documents by creation date, newest first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Skip and Limit
&lt;/h3&gt;

&lt;p&gt;These are useful for pagination. &lt;strong&gt;Skip&lt;/strong&gt; the first N results. &lt;strong&gt;Limit&lt;/strong&gt; the total number returned.&lt;/p&gt;

&lt;p&gt;For example: Skip 10, Limit 10 — that gives you page 2 of your data.&lt;/p&gt;

&lt;h3&gt;
  
  
  💡 Natural Language Querying
&lt;/h3&gt;

&lt;p&gt;One of the newer features in Compass is the ability to &lt;strong&gt;generate queries using natural language&lt;/strong&gt;. Instead of writing &lt;code&gt;{ "age": { "$gt": 25 } }&lt;/code&gt;, you can type:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Show me all users older than 25 who are active"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And Compass translates it into the correct query for you. This is a huge help when you're not sure about the exact MongoDB syntax.&lt;/p&gt;




&lt;h2&gt;
  
  
  Schema Analysis — Understanding Your Data Shape
&lt;/h2&gt;

&lt;p&gt;The &lt;strong&gt;Schema tab&lt;/strong&gt; is one of the most underused but most powerful features in Compass.&lt;/p&gt;

&lt;p&gt;Here's the problem it solves: in a NoSQL database like MongoDB, different documents in the same collection can have different fields. One user document might have an &lt;code&gt;address&lt;/code&gt; field. Another might not. How do you know what your data actually looks like?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Schema tab tells you.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Compass &lt;strong&gt;samples your collection&lt;/strong&gt; (typically 1,000 documents) and analyzes the structure. It then shows you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Which fields exist&lt;/strong&gt; and how often they appear&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What data types&lt;/strong&gt; are used (string, number, date, boolean, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Value distributions&lt;/strong&gt; — for example, a bar chart showing the most common values in a &lt;code&gt;status&lt;/code&gt; field&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Date ranges&lt;/strong&gt; for date fields&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Min/max values&lt;/strong&gt; for number fields&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Imagine you inherited a project with a &lt;code&gt;users&lt;/code&gt; collection and no documentation. You open the Schema tab and immediately see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;95% of documents have an &lt;code&gt;email&lt;/code&gt; field — but 5% don't. That's a bug.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;createdAt&lt;/code&gt; field is stored as a &lt;code&gt;string&lt;/code&gt; in some documents and a &lt;code&gt;Date&lt;/code&gt; in others. That's inconsistent data.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;role&lt;/code&gt; field has three common values: &lt;code&gt;"admin"&lt;/code&gt;, &lt;code&gt;"user"&lt;/code&gt;, and &lt;code&gt;"guest"&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In five seconds, you understand the collection better than someone who's been writing queries against it for weeks. That's the power of schema analysis.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Aggregation Pipeline Builder
&lt;/h2&gt;

&lt;p&gt;This is the feature that turns people into Compass fans for life.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aggregation pipelines&lt;/strong&gt; are MongoDB's way of processing and transforming data across multiple stages. They're powerful, but writing them manually in the terminal is painful — especially for complex pipelines with 5 or 6 stages.&lt;/p&gt;

&lt;p&gt;Compass has a &lt;strong&gt;visual aggregation pipeline builder&lt;/strong&gt; that makes this approachable for everyone.&lt;/p&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;p&gt;When you open the &lt;strong&gt;Aggregations tab&lt;/strong&gt;, you see a canvas where you can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Add a stage&lt;/strong&gt; by clicking the &lt;code&gt;+&lt;/code&gt; button and choosing from a dropdown (e.g., &lt;code&gt;$match&lt;/code&gt;, &lt;code&gt;$group&lt;/code&gt;, &lt;code&gt;$sort&lt;/code&gt;, &lt;code&gt;$project&lt;/code&gt;, &lt;code&gt;$lookup&lt;/code&gt;, and more)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fill in the stage&lt;/strong&gt; using a form or by writing the JSON directly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;See a live preview&lt;/strong&gt; of the output at each stage as you go&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reorder stages&lt;/strong&gt; by dragging them&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export the pipeline&lt;/strong&gt; as JavaScript code you can paste into your application&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  A Simple Example
&lt;/h3&gt;

&lt;p&gt;Let's say you have an &lt;code&gt;orders&lt;/code&gt; collection and want to find the total revenue per product category, sorted highest to lowest.&lt;/p&gt;

&lt;p&gt;Your pipeline would be:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Stage 1 — &lt;code&gt;$group&lt;/code&gt;&lt;/strong&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$category"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"totalRevenue"&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;"$sum"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$price"&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;p&gt;&lt;strong&gt;Stage 2 — &lt;code&gt;$sort&lt;/code&gt;&lt;/strong&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"totalRevenue"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;-1&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;p&gt;In the terminal, you'd write this all at once and run it blind. In Compass, you add Stage 1, immediately see a preview of the grouped results, then add Stage 2 and watch the order change in real time.&lt;/p&gt;

&lt;p&gt;The aggregation builder is ideal for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Calculating totals, averages, and counts&lt;/li&gt;
&lt;li&gt;Joining collections with &lt;code&gt;$lookup&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Reshaping documents with &lt;code&gt;$project&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Filtering and grouping data for reporting&lt;/li&gt;
&lt;li&gt;Extracting business insights like revenue by region, user churn rates, and more&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Indexes — Speed Up Your Queries
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;index&lt;/strong&gt; in MongoDB is like an index at the back of a book. Instead of reading every page to find a topic, you look at the index and jump straight to the right page.&lt;/p&gt;

&lt;p&gt;Without indexes, MongoDB scans every document in a collection to find matches — called a &lt;strong&gt;collection scan&lt;/strong&gt;. This is slow when you have millions of documents.&lt;/p&gt;

&lt;p&gt;With the right indexes, MongoDB jumps straight to the matching documents — called an &lt;strong&gt;index scan&lt;/strong&gt;. Much faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  Managing Indexes in Compass
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Indexes tab&lt;/strong&gt; shows you all existing indexes on a collection. For each index you can see:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Name&lt;/strong&gt; of the index&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fields&lt;/strong&gt; it covers&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Type&lt;/strong&gt; (single field, compound, text, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Usage stats&lt;/strong&gt; — how many times the index was used recently&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Size&lt;/strong&gt; on disk&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Creating a New Index
&lt;/h3&gt;

&lt;p&gt;Click &lt;strong&gt;Create Index&lt;/strong&gt;, choose the field(s) you want to index, pick the type, and hit Create. Done.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dropping an Index
&lt;/h3&gt;

&lt;p&gt;If an index is large, slow to maintain, and never used (you can see this in the usage stats), click the trash icon and remove it. Dropping unnecessary indexes actually improves write performance.&lt;/p&gt;

&lt;p&gt;A simple rule: &lt;strong&gt;index the fields you query and sort on the most.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Performance Monitoring — The Explain Plan
&lt;/h2&gt;

&lt;p&gt;This is the debugging superpower you didn't know you needed.&lt;/p&gt;

&lt;p&gt;Every time MongoDB runs a query, it generates an &lt;strong&gt;Explain Plan&lt;/strong&gt; — a detailed breakdown of exactly how the query was executed: what indexes were used, how many documents were scanned, and how long each step took.&lt;/p&gt;

&lt;p&gt;Reading an Explain Plan in the terminal looks like a wall of JSON. Reading it in Compass looks like a visual flowchart.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to Use the Explain Plan
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to the &lt;strong&gt;Documents tab&lt;/strong&gt; and enter your query in the filter bar.&lt;/li&gt;
&lt;li&gt;Click the &lt;strong&gt;Explain&lt;/strong&gt; button instead of Find.&lt;/li&gt;
&lt;li&gt;Compass shows you a visual tree of the query execution.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You'll see at a glance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;IXSCAN&lt;/strong&gt; — the query used an index (fast)&lt;/li&gt;
&lt;li&gt;⚠️ &lt;strong&gt;COLLSCAN&lt;/strong&gt; — the query scanned the entire collection (slow)&lt;/li&gt;
&lt;li&gt;How many documents were &lt;strong&gt;examined&lt;/strong&gt; vs how many were &lt;strong&gt;returned&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Total &lt;strong&gt;execution time&lt;/strong&gt; in milliseconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you see a COLLSCAN on a field you query constantly, that's your signal to add an index.&lt;/p&gt;

&lt;h3&gt;
  
  
  Real-Time Server Metrics
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Performance tab&lt;/strong&gt; shows live charts of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Operations per second (reads, writes, commands)&lt;/li&gt;
&lt;li&gt;Query execution times&lt;/li&gt;
&lt;li&gt;Document read/write rates&lt;/li&gt;
&lt;li&gt;Network and memory usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's like a health monitor for your database. When something feels slow, you open this tab and spot the spike immediately.&lt;/p&gt;




&lt;h2&gt;
  
  
  Compass vs The Terminal: Which Should You Use?
&lt;/h2&gt;

&lt;p&gt;This is a fair question. Here's an honest comparison:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Terminal&lt;/th&gt;
&lt;th&gt;Compass&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Quick one-line queries&lt;/td&gt;
&lt;td&gt;✅ Fast&lt;/td&gt;
&lt;td&gt;⚡ Also easy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploring unfamiliar data&lt;/td&gt;
&lt;td&gt;😬 Painful&lt;/td&gt;
&lt;td&gt;✅ Perfect&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Building aggregation pipelines&lt;/td&gt;
&lt;td&gt;❌ Hard to visualize&lt;/td&gt;
&lt;td&gt;✅ Visual &amp;amp; live preview&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Schema analysis&lt;/td&gt;
&lt;td&gt;❌ Manual work&lt;/td&gt;
&lt;td&gt;✅ Automatic&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debugging slow queries&lt;/td&gt;
&lt;td&gt;❌ Raw JSON output&lt;/td&gt;
&lt;td&gt;✅ Visual Explain Plan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scripting &amp;amp; automation&lt;/td&gt;
&lt;td&gt;✅ Terminal wins&lt;/td&gt;
&lt;td&gt;❌ Not for scripting&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sharing data with team&lt;/td&gt;
&lt;td&gt;❌ Hard to show&lt;/td&gt;
&lt;td&gt;✅ Easy to screenshot&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The honest answer:&lt;/strong&gt; They complement each other. Use Compass for exploration, debugging, and building complex pipelines. Use the terminal (or your app's driver) for automation and scripting.&lt;/p&gt;

&lt;p&gt;Don't think of it as either/or. Most experienced MongoDB developers use both.&lt;/p&gt;




&lt;h2&gt;
  
  
  Best Tips for Using MongoDB Compass 💡
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;✅ Use Schema Analysis before writing queries.&lt;/strong&gt; When working with a new collection, always check the Schema tab first. Knowing the actual field names, types, and distributions saves you from writing queries against fields that don't exist the way you think they do.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Build aggregations in Compass, then export to code.&lt;/strong&gt; Use the visual builder to design your pipeline, confirm it works with the live preview, and then export it as JavaScript to paste into your application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Check the Explain Plan before going to production.&lt;/strong&gt; Any query that will run frequently in your app deserves a quick Explain check in Compass. Make sure it's using an index.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Use the query bar for quick data fixes.&lt;/strong&gt; Instead of writing a full script to update a few documents, filter them in Compass and edit them directly. It's faster for one-off fixes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Monitor index usage stats.&lt;/strong&gt; If an index hasn't been used in weeks, it's dead weight. Remove it. Unused indexes slow down write operations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Save your favorite connections.&lt;/strong&gt; Compass lets you save connection strings with nicknames like "Atlas Production" or "Local Dev". Set these up once and stop re-entering credentials every session.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common Mistakes People Make
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ❌ Connecting to Production Without Thinking
&lt;/h3&gt;

&lt;p&gt;Compass makes it easy to connect to any database — including production. One wrong edit or delete on live data can cause real damage. Always double-check which environment you're connected to before making changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Color-code or clearly label your connections. Treat production connections with extra caution.&lt;/p&gt;




&lt;h3&gt;
  
  
  ❌ Ignoring the Schema Tab
&lt;/h3&gt;

&lt;p&gt;Most people open Compass, go straight to Documents, and start filtering. They skip the Schema tab entirely. Then they spend 30 minutes writing queries against data they don't fully understand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; On any new collection, open Schema first. Spend two minutes there. You'll save hours later.&lt;/p&gt;




&lt;h3&gt;
  
  
  ❌ Building Aggregations in Code First
&lt;/h3&gt;

&lt;p&gt;Some developers write complex aggregation pipelines directly in their application code, run them, get wrong results, and spend ages debugging. Then someone tells them about the Compass aggregation builder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Always prototype aggregations in Compass. Confirm the output is correct at each stage, then export to code.&lt;/p&gt;




&lt;h3&gt;
  
  
  ❌ Forgetting to Sample Size Limits
&lt;/h3&gt;

&lt;p&gt;The Schema tab analyzes a sample of documents (default 1,000). If your collection has millions of records with edge cases in rare documents, the schema analysis might miss them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Increase the sample size in Compass settings, or add a filter before running schema analysis to target specific segments of your data.&lt;/p&gt;




&lt;h3&gt;
  
  
  ❌ Not Using the Explain Plan at All
&lt;/h3&gt;

&lt;p&gt;Many developers write a query, see it returns the right data, and move on. They never check &lt;em&gt;how&lt;/em&gt; it ran. Then on production with 2 million documents, the same query takes 8 seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix:&lt;/strong&gt; Any query you plan to use in an app should be checked with Explain. It takes 10 seconds and can save you from a major performance crisis later.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;MongoDB Compass is one of those tools that seems like a nice-to-have until you actually use it — and then it becomes non-negotiable.&lt;/p&gt;

&lt;p&gt;Here's what you now know how to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Install and connect&lt;/strong&gt; Compass to any MongoDB instance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explore documents&lt;/strong&gt; visually and perform CRUD operations without writing commands&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Query your data&lt;/strong&gt; with the filter bar, sorting, projecting, and even natural language&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analyze your schema&lt;/strong&gt; to understand data shape, types, and inconsistencies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build aggregation pipelines&lt;/strong&gt; visually with live stage previews&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Manage indexes&lt;/strong&gt; and understand which ones are helping or hurting performance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Debug slow queries&lt;/strong&gt; using the Explain Plan&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor your database&lt;/strong&gt; in real time with server metrics&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You're not just reading about MongoDB anymore. You have a full visual interface to actually &lt;em&gt;work&lt;/em&gt; with it — and that changes everything.&lt;/p&gt;

&lt;p&gt;Start with your own project, open Compass, and explore a collection you haven't looked at closely before. You might be surprised what you find hiding in your data.&lt;/p&gt;

&lt;p&gt;For more practical guides like this one, check out &lt;strong&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;&lt;/strong&gt; — where I write about frontend development, databases, AI tools, and the kind of stuff no one explains clearly enough.&lt;/p&gt;

&lt;p&gt;If this guide helped you, share it with a developer friend who's still fighting the terminal 😄. Drop a comment below if you have questions — I read them all.&lt;/p&gt;

</description>
      <category>mongodb</category>
      <category>database</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Chrome's Latest Update Brings 4 Handy New Features — Here's What Changed 🚀</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:34:45 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/chromes-latest-update-brings-4-handy-new-features-heres-what-changed-1f6k</link>
      <guid>https://dev.to/hamidrazadev/chromes-latest-update-brings-4-handy-new-features-heres-what-changed-1f6k</guid>
      <description>&lt;p&gt;Ever see the little "Your Chrome has been updated" message, click it away without reading, and go straight back to your 47 open tabs? 😅 Same here, most of the time.&lt;/p&gt;

&lt;p&gt;But this update is actually worth a second look — especially if you're a developer (or just a human) who lives inside a browser all day: tabs for docs, tabs for Stack Overflow, tabs you swear you'll "read later."&lt;/p&gt;

&lt;p&gt;Chrome just rolled out four small but genuinely useful features: PDF annotations and signing, smarter autofill powered by Google Wallet, a built-in split view, and tab groups that follow you across devices.&lt;/p&gt;

&lt;p&gt;So what do they actually do, why should you care, and how do you use them without digging through settings for ten minutes? Let's go through it. 👀&lt;/p&gt;

&lt;h2&gt;
  
  
  What's New in This Chrome Update?
&lt;/h2&gt;

&lt;p&gt;Think of this update less like a big redesign and more like Chrome quietly handing you a few tools that used to need separate apps or extensions.&lt;/p&gt;

&lt;p&gt;In simple words, here's what changed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;PDF Annotations&lt;/strong&gt; – draw, highlight, and sign PDFs right inside Chrome.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Autofill with Google Wallet&lt;/strong&gt; – Chrome can now fill in loyalty cards, vehicle info, and flight details, not just passwords and addresses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Split View&lt;/strong&gt; – view two tabs side by side in the same browser window.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tab Groups Sync&lt;/strong&gt; – your tab groups follow you across your laptop, phone, and any signed-in device.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of these need a tech background to use. They're built for everyday browsing — but they happen to save a &lt;em&gt;lot&lt;/em&gt; of time for developers too.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Update Matters (Especially for Developers)
&lt;/h2&gt;

&lt;p&gt;If you're a frontend dev, a student, or just someone who treats Chrome like an operating system, small friction adds up fast.&lt;/p&gt;

&lt;p&gt;Signing a PDF used to mean downloading it, opening another app, signing, then re-uploading. Now it's done right in the tab.&lt;/p&gt;

&lt;p&gt;Comparing two things — like your code and a tutorial — used to mean snapping windows around or squinting at tiny tab titles. Split View fixes that in one drag.&lt;/p&gt;

&lt;p&gt;And losing your carefully organized tab groups every time you switch from desktop to mobile? That was just annoying. Now they sync automatically.&lt;/p&gt;

&lt;p&gt;Fewer tools, fewer tabs &lt;em&gt;about&lt;/em&gt; tabs, a little more focus. 💡&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits With Real-Life Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. PDF Annotations &amp;amp; Signing
&lt;/h3&gt;

&lt;p&gt;No more "print, sign, scan, email" loop.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; You get an internship offer letter as a PDF. Instead of printing it (who even has a printer anymore?), open it in Chrome, click &lt;strong&gt;Annotations&lt;/strong&gt;, pick the pen or highlighter, draw your signature, and hit &lt;strong&gt;Save&lt;/strong&gt;. Done in under a minute.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Good to know:&lt;/strong&gt; if a signature line is small, zoom in on the PDF first — it makes drawing your signature far more accurate.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Autofill With Google Wallet
&lt;/h3&gt;

&lt;p&gt;This goes beyond the usual "remember my password" autofill.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Booking a flight? Chrome can now autofill your confirmation number and travel dates. Renewing car insurance or booking parking online? It can pull your vehicle info. Got a coffee shop loyalty card saved? Chrome can fill that in too, so you're not digging through a physical wallet.&lt;/p&gt;

&lt;p&gt;To turn it on: go to &lt;strong&gt;Settings → Autofill and passwords → Enhanced Autofill&lt;/strong&gt;, and switch it on.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Split View
&lt;/h3&gt;

&lt;p&gt;This one is great for anyone who multitasks — so, basically everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; You're following a tutorial in one tab while writing code in another. Instead of Alt-Tabbing every few seconds, drag one tab to the left or right edge of the browser window — Chrome snaps it into a side-by-side view. You can also right-click a link and choose &lt;strong&gt;Open Link in Split View&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Tab Groups That Sync Across Devices
&lt;/h3&gt;

&lt;p&gt;If you've ever lost a perfectly organized "Research" tab group after restarting your laptop, this one's for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; You group all your job-hunting tabs on your laptop, then open Chrome on your phone later — and the same tab group is sitting right there. Just sign in to Chrome and create a tab group; it saves to your Google Account automatically. On mobile, you'll find synced groups in your open tabs view, and on desktop, in the tab group icon on your bookmarks bar or Chrome menu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Old Way vs New Way
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Before This Update&lt;/th&gt;
&lt;th&gt;After This Update&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Signing a PDF&lt;/td&gt;
&lt;td&gt;Print → sign → scan → re-upload&lt;/td&gt;
&lt;td&gt;Open PDF → Annotations → sign → Save&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Filling travel / loyalty info&lt;/td&gt;
&lt;td&gt;Typing it manually every time&lt;/td&gt;
&lt;td&gt;Autofilled via Google Wallet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Comparing two pages&lt;/td&gt;
&lt;td&gt;Switching tabs back and forth&lt;/td&gt;
&lt;td&gt;Split View, side by side&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Organizing tabs across devices&lt;/td&gt;
&lt;td&gt;Rebuilding groups on each device&lt;/td&gt;
&lt;td&gt;Tab groups sync automatically&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;It's not a dramatic overhaul — just fewer repetitive steps in things you probably already do every week. ✅&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Tips &amp;amp; Do's and Don'ts
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;Zoom in before signing a PDF — it makes your signature look way less like a seismograph reading. 😄&lt;/li&gt;
&lt;li&gt;Turn on &lt;strong&gt;Enhanced Autofill&lt;/strong&gt; if you regularly fill travel, insurance, or loyalty forms.&lt;/li&gt;
&lt;li&gt;Try dragging a tab slowly toward the edge the first time, so you get a feel for where Split View kicks in.&lt;/li&gt;
&lt;li&gt;Sign in to Chrome with your Google Account if you want tab groups to follow you across devices.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;Don't expect autofill to fill &lt;em&gt;every&lt;/em&gt; field — it works best with information it recognizes, like flight or vehicle details.&lt;/li&gt;
&lt;li&gt;Don't drag tabs only "close" to the edge expecting Split View — Chrome needs the tab to actually reach the window edge.&lt;/li&gt;
&lt;li&gt;Don't forget tab groups only sync if you're signed in. Browsing as a guest? They'll stay local to that device.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Common Mistakes People Make
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mistake 1: Skipping the update notification entirely&lt;/strong&gt;&lt;br&gt;
Most people close it instantly (zero judgment, we've all done it). But that's exactly how useful features sit unnoticed for months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistake 2: Signing a PDF without zooming in first&lt;/strong&gt;&lt;br&gt;
A tiny signature line plus default zoom equals a signature that looks nothing like yours. Zoom in, sign, then zoom back out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistake 3: Expecting Split View to behave like two separate windows&lt;/strong&gt;&lt;br&gt;
Split View keeps both pages inside the &lt;em&gt;same tab&lt;/em&gt;. If you want two fully separate windows, that's a different (older) Chrome feature.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mistake 4: Not signing in, then wondering why tab groups "disappeared"&lt;/strong&gt;&lt;br&gt;
If you're not signed into your Google Account, tab groups stay local to that device. Sign in first, then build your groups.&lt;/p&gt;

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

&lt;p&gt;Chrome's latest update isn't flashy, but it quietly removes a bunch of small annoyances: signing PDFs, filling repetitive forms, comparing tabs, and keeping your browser organized across devices.&lt;/p&gt;

&lt;p&gt;If you only try one thing from this post, make it &lt;strong&gt;Split View&lt;/strong&gt; — once you use it for a tutorial-and-code workflow, it's hard to go back. 🚀&lt;/p&gt;

&lt;p&gt;If this helped you spot a feature you didn't know about, share it with a friend who still prints PDFs just to sign them (we all know one 😄). And if you'd like more practical dev and browser tips, check out &lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt; — and drop a comment if you've found other hidden Chrome features worth knowing about!&lt;/p&gt;

</description>
      <category>browser</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>VS Code 1.124: Autopilot Is Now On by Default — Here's Everything That Changed 🚀</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Wed, 10 Jun 2026 12:28:55 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/vs-code-1124-autopilot-is-now-on-by-default-heres-everything-that-changed-4dne</link>
      <guid>https://dev.to/hamidrazadev/vs-code-1124-autopilot-is-now-on-by-default-heres-everything-that-changed-4dne</guid>
      <description>&lt;p&gt;You open VS Code, start an agent session, and then sit there waiting for it to fully load before you can even think about the next task. Meanwhile, your coffee gets cold and your focus breaks.&lt;/p&gt;

&lt;p&gt;VS Code 1.124, released on &lt;strong&gt;June 10, 2026&lt;/strong&gt;, is designed to fix exactly that. This update sharpens the AI agent experience in ways that actually matter — smarter task completion, background sessions, full session recovery, and a browser history feature that should have been there from day one.&lt;/p&gt;

&lt;p&gt;If you work with AI agents inside VS Code, this release deserves more than a glance. Let's walk through every meaningful change. 👀&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is VS Code 1.124?
&lt;/h2&gt;

&lt;p&gt;VS Code 1.124 is the June 2026 release of Visual Studio Code — the free, open-source code editor from Microsoft that millions of developers use daily.&lt;/p&gt;

&lt;p&gt;This version is heavily focused on the &lt;strong&gt;Agents window&lt;/strong&gt;, VS Code's dedicated interface for running and managing AI coding sessions. Think of it like a control room for your AI assistant — you can start sessions, switch between tasks, review changes, and monitor what the agent is doing.&lt;/p&gt;

&lt;p&gt;Version 1.124 makes that control room faster, smarter, and far less annoying to navigate.&lt;/p&gt;




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

&lt;p&gt;AI agents in VS Code aren't experimental anymore. Developers are using them for real work every day — writing code, debugging, refactoring, running terminal commands, and browsing documentation.&lt;/p&gt;

&lt;p&gt;The friction was still real, though. You had to wait for a session to load before composing the next one. Switching between sessions meant clicking around. And it was genuinely hard to tell whether the agent had actually finished its job or just… stopped.&lt;/p&gt;

&lt;p&gt;VS Code 1.124 targets all of this directly. Less waiting. Better navigation. Smarter judgment. This update respects your time and your workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  What's New in VS Code 1.124
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Autopilot Is Now On by Default ⚡
&lt;/h3&gt;

&lt;p&gt;Autopilot is the mode that lets your AI agent act autonomously — completing tasks without asking you to approve every single step.&lt;/p&gt;

&lt;p&gt;Previously, you had to enable it manually. Now it's &lt;strong&gt;on by default&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is a meaningful shift. If you're in a trusted environment and want the agent to just get on with the job, you no longer have to configure anything to make that happen.&lt;/p&gt;

&lt;p&gt;You can still adjust the permission level anytime using &lt;code&gt;chat.permissions.default&lt;/code&gt;, and organizations can manage Autopilot access centrally via &lt;code&gt;chat.tools.global.autoApprove&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Advanced Autopilot: Smarter Task Completion 💡
&lt;/h3&gt;

&lt;p&gt;Here's a tricky problem: how does an AI agent know when it's truly done?&lt;/p&gt;

&lt;p&gt;Stop too early and the task is incomplete. Keep looping and you burn time and tokens. VS Code 1.124 introduces &lt;strong&gt;Advanced Autopilot&lt;/strong&gt;, which solves this with a small utility model that reads the conversation transcript and decides whether the task is actually finished — instead of relying on fixed rules.&lt;/p&gt;

&lt;p&gt;There's also a tooltip above the chat that shows exactly what objective the agent is working toward, so you're never left guessing. And to keep things bounded, the agent loops a maximum of &lt;strong&gt;three times&lt;/strong&gt; before stopping.&lt;/p&gt;

&lt;p&gt;Enable it by setting &lt;code&gt;chat.autopilot.advanced.enabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Background Sessions: Queue Tasks Without Waiting 🔧
&lt;/h3&gt;

&lt;p&gt;This one is immediately useful.&lt;/p&gt;

&lt;p&gt;Before 1.124, starting a new agent session meant waiting for it to fully load before you could compose the next request. Now, you can press &lt;strong&gt;Alt+Enter&lt;/strong&gt; (or hold Alt and select Send) to send a request in the background.&lt;/p&gt;

&lt;p&gt;The view resets instantly. Your model and context stay selected. Only the query text clears — so you can keep queuing up tasks without interruption. Each session appears in the list once it commits.&lt;/p&gt;

&lt;p&gt;It's like sending an email while already typing the next one. Once you use it, going back feels painful.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Session Navigation: Find and Switch Fast
&lt;/h3&gt;

&lt;p&gt;If you run multiple agent sessions in parallel, finding the right one used to involve a lot of scrolling. VS Code 1.124 adds proper keyboard-driven navigation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sessions Picker&lt;/strong&gt; — Press &lt;code&gt;Ctrl+R&lt;/code&gt; (or &lt;code&gt;Cmd+R&lt;/code&gt; on macOS) to open a searchable Quick Pick. Sessions are grouped as recently opened and others. Search by title or folder name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Back and Forward&lt;/strong&gt; — &lt;code&gt;Ctrl+Tab&lt;/code&gt; / &lt;code&gt;Ctrl+Shift+Tab&lt;/code&gt; moves through sessions in most-recently-visited order.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Previous / Next Session&lt;/strong&gt; — &lt;code&gt;Alt+↑&lt;/code&gt; / &lt;code&gt;Alt+↓&lt;/code&gt; steps through sessions in the order they appear in the list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jump by Position&lt;/strong&gt; — &lt;code&gt;Ctrl+1&lt;/code&gt; through &lt;code&gt;Ctrl+9&lt;/code&gt; focuses the Nth visible session directly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you've ever lost track of which session was handling what task, these shortcuts will feel like a lifesaver.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Restore Sessions on Reload
&lt;/h3&gt;

&lt;p&gt;Reloading the Agents window used to wipe your layout. You'd have to manually reopen everything and figure out where you left off.&lt;/p&gt;

&lt;p&gt;VS Code 1.124 restores your full session layout automatically on reload — which sessions were open, their order, the active session, pinned sessions, per-session layouts, and open editors.&lt;/p&gt;

&lt;p&gt;It sounds like a small detail. It doesn't feel small when you're in the middle of five things at once.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. Close All Sessions
&lt;/h3&gt;

&lt;p&gt;Simple and useful: there's now a &lt;strong&gt;Close All Sessions&lt;/strong&gt; command.&lt;/p&gt;

&lt;p&gt;Use &lt;code&gt;Ctrl+K Ctrl+W&lt;/code&gt; (or &lt;code&gt;Cmd+K Cmd+W&lt;/code&gt; on macOS) while a session has focus. It closes everything in one step — exactly like "Close All Editors" but for agent sessions.&lt;/p&gt;

&lt;p&gt;When you've got eight sessions open and want a clean start, this is the command you'll reach for.&lt;/p&gt;




&lt;h3&gt;
  
  
  7. Browser History in the Integrated Browser
&lt;/h3&gt;

&lt;p&gt;The integrated browser now remembers where you've been.&lt;/p&gt;

&lt;p&gt;Previously visited pages appear as suggestions when you type in the URL bar, making it easy to jump back to documentation, APIs, or any page you've already opened. You can manage history from within a browser tab, and the maximum number of entries is configurable via &lt;code&gt;workbench.browser.maxHistoryEntries&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;If you spend any time bouncing between MDN, package docs, and Stack Overflow inside VS Code, this is a quiet improvement you'll notice immediately.&lt;/p&gt;




&lt;h3&gt;
  
  
  8. Improved Browser Toolbar Customization
&lt;/h3&gt;

&lt;p&gt;Before 1.124, only two actions could be pinned to the browser toolbar. Now, you can right-click the toolbar area to the right of the URL bar and toggle any overflow action to be persistently visible.&lt;/p&gt;

&lt;p&gt;More control. Less hunting through menus.&lt;/p&gt;




&lt;h3&gt;
  
  
  9. Faster Agentic Text Entry
&lt;/h3&gt;

&lt;p&gt;When an agent needed to type text into a page and press Enter, it previously required two separate tool calls. The &lt;code&gt;typeInPage&lt;/code&gt; tool now supports a &lt;code&gt;submit&lt;/code&gt; parameter, combining both actions into one.&lt;/p&gt;

&lt;p&gt;This is a small change that reduces round-trips during common text-entry tasks and makes the agent just a bit faster — which adds up when you're running a long workflow.&lt;/p&gt;




&lt;h3&gt;
  
  
  10. Create Folders from the Simple File Dialog
&lt;/h3&gt;

&lt;p&gt;A clean quality-of-life addition: when you open a folder using the simple file dialog (&lt;code&gt;files.simpleDialog.enable&lt;/code&gt;), you can now type a new folder name and press &lt;strong&gt;Enter&lt;/strong&gt; to create it on the spot.&lt;/p&gt;

&lt;p&gt;No more switching to your system file explorer just to make a new directory.&lt;/p&gt;




&lt;h3&gt;
  
  
  11. Single-File Diff in the Changes View
&lt;/h3&gt;

&lt;p&gt;By default, selecting a file in the Changes view opens the multi-file diff editor. If you'd rather focus on one file at a time, enable &lt;code&gt;sessions.changes.openSingleFileDiff&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It keeps the view focused and removes the distraction of other files sitting alongside the one you're reviewing.&lt;/p&gt;




&lt;h3&gt;
  
  
  12. Enterprise: Centralized Copilot Plugin Policies
&lt;/h3&gt;

&lt;p&gt;For developers in larger organizations, VS Code 1.124 gives admins centralized control over which Copilot plugins and marketplaces are available.&lt;/p&gt;

&lt;p&gt;A single policy file now governs both VS Code and Copilot CLI, so configurations don't need to be managed separately. Three new policy-backed settings handle the specifics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;chat.plugins.enabledPlugins&lt;/code&gt; — allowlist or blocklist specific plugin IDs&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;chat.plugins.extraMarketplaces&lt;/code&gt; — add organization-approved marketplaces&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;chat.plugins.strictMarketplaces&lt;/code&gt; — trust only policy-supplied marketplaces&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plugins blocked by policy stay visible but appear disabled, so developers can see what's restricted without confusion.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before vs After: Quick Comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Before 1.124&lt;/th&gt;
&lt;th&gt;After 1.124&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Autopilot&lt;/td&gt;
&lt;td&gt;Off by default&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;On by default&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Task completion detection&lt;/td&gt;
&lt;td&gt;Fixed rules&lt;/td&gt;
&lt;td&gt;Utility model decides&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New session startup&lt;/td&gt;
&lt;td&gt;Wait to load, then type&lt;/td&gt;
&lt;td&gt;Send in background immediately&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Session recovery on reload&lt;/td&gt;
&lt;td&gt;Layout lost&lt;/td&gt;
&lt;td&gt;Fully restored&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Browser history&lt;/td&gt;
&lt;td&gt;Not available&lt;/td&gt;
&lt;td&gt;Available with URL suggestions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toolbar customization&lt;/td&gt;
&lt;td&gt;2 pinnable actions&lt;/td&gt;
&lt;td&gt;All overflow actions pinnable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Folder creation in dialog&lt;/td&gt;
&lt;td&gt;Not supported&lt;/td&gt;
&lt;td&gt;Supported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Typing + submitting in browser&lt;/td&gt;
&lt;td&gt;Two tool calls&lt;/td&gt;
&lt;td&gt;One tool call&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Best Tips for VS Code 1.124
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;Use &lt;code&gt;Alt+Enter&lt;/code&gt; for background sessions.&lt;/strong&gt; It genuinely changes how you work with multiple tasks. Queue them up and let the agents run.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Enable Advanced Autopilot&lt;/strong&gt; with &lt;code&gt;chat.autopilot.advanced.enabled: true&lt;/code&gt; if you want the agent to make smarter decisions about when it's done.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Learn the session keyboard shortcuts.&lt;/strong&gt; &lt;code&gt;Ctrl+R&lt;/code&gt; for the picker and &lt;code&gt;Ctrl+1–9&lt;/code&gt; for position jumps are the two most useful ones. Build the habit early.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Set &lt;code&gt;workbench.browser.maxHistoryEntries&lt;/code&gt;&lt;/strong&gt; to a comfortable limit if you're concerned about privacy or memory.&lt;/p&gt;

&lt;p&gt;✅ &lt;strong&gt;Try &lt;code&gt;sessions.changes.openSingleFileDiff&lt;/code&gt;&lt;/strong&gt; if you find the multi-file diff view too noisy when reviewing agent changes.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Don't leave Autopilot on without checking &lt;code&gt;chat.tools.global.autoApprove&lt;/code&gt;&lt;/strong&gt; in team or enterprise environments. Understand what permissions you're granting before relying on it.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Don't manually reopen sessions after a reload.&lt;/strong&gt; Let VS Code restore them. You might be doing extra work for no reason.&lt;/p&gt;

&lt;p&gt;❌ &lt;strong&gt;Don't assume Advanced Autopilot will loop forever.&lt;/strong&gt; It has a three-loop maximum. For longer tasks, you may need to continue manually after that point.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;1. Thinking Autopilot can't be turned off&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;"Enabled by default" does not mean forced. You can change the permission level at any time in the chat input box. It's fully configurable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Still manually reopening sessions after a reload&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Old habit. VS Code 1.124 handles this automatically. Your layout is restored right where you left it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Ignoring the session picker&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A lot of developers still scroll through the sessions list with their mouse. &lt;code&gt;Ctrl+R&lt;/code&gt; opens a searchable picker in half a second. It's worth learning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Not setting a history limit for the integrated browser&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Browser history grows over time. If you're particular about privacy or lightweight performance, configure &lt;code&gt;workbench.browser.maxHistoryEntries&lt;/code&gt; early rather than after it's already grown large.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Overlooking single-file diff&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you review agent changes frequently, the default multi-file diff can feel cluttered. &lt;code&gt;sessions.changes.openSingleFileDiff&lt;/code&gt; narrows the focus to one file at a time. Many developers who discover it don't go back.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;VS Code 1.124 is a focused, practical update. It doesn't reinvent the editor — it tightens up the parts that were causing the most friction in real AI-assisted workflows.&lt;/p&gt;

&lt;p&gt;Autopilot on by default. Smarter task detection. Background sessions. Full session recovery. Better browser tools. Every change in this release is aimed at one thing: letting you move faster without losing context.&lt;/p&gt;

&lt;p&gt;If you haven't updated yet, open VS Code and use &lt;strong&gt;Check for Updates&lt;/strong&gt;. The rollout is live for all users now.&lt;/p&gt;

&lt;p&gt;Want more VS Code breakdowns, developer tools, and frontend content? Head over to &lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt; — new posts go up regularly. If this saved you the time of reading the full changelog, share it with a teammate. They'll thank you. 😊&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>vscode</category>
      <category>productivity</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to Use Claude Code with Ollama for Free (+ 5 Powerful Cloud Models You Need to Try)</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Tue, 19 May 2026 12:22:23 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/how-to-use-claude-code-with-ollama-for-free-no-api-key-needed-4d6o</link>
      <guid>https://dev.to/hamidrazadev/how-to-use-claude-code-with-ollama-for-free-no-api-key-needed-4d6o</guid>
      <description>&lt;p&gt;You love Claude Code. You hate the API bill. 😅&lt;/p&gt;

&lt;p&gt;If you've used Claude Code even moderately, you've probably watched your Anthropic credits disappear faster than a coffee on a Monday morning. Heavy agentic sessions — reading files, editing code, running commands — can rack up $50 to $200+ a month on flagship models. That's a real cost for indie developers and learners.&lt;/p&gt;

&lt;p&gt;Here's the good news: &lt;strong&gt;you don't need to pay a single dollar to use Claude Code anymore.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Thanks to Ollama's native support for the Anthropic Messages API (added in v0.14.0), you can point Claude Code at free open-source models running either locally on your machine or on Ollama's free cloud tier. Same CLI. Same workflow. Zero Anthropic tokens.&lt;/p&gt;

&lt;p&gt;Want to know exactly how to set it all up — step by step, command by command — and which free cloud models are worth your time? Let's go. 🚀&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is This Setup All About?
&lt;/h2&gt;

&lt;p&gt;Claude Code is Anthropic's terminal-based AI coding agent. It reads your codebase, edits files across multiple locations, runs shell commands, calls tools, and handles multi-step tasks — all from your terminal, driven by natural language.&lt;/p&gt;

&lt;p&gt;By default, it talks to Anthropic's API. But there's one small environment variable — &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt; — that lets you redirect all those requests to a completely different backend.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ollama&lt;/strong&gt; is an open-source tool that lets you run AI models on your own machine. Since v0.14.0 (January 2026), Ollama also exposes an &lt;strong&gt;Anthropic-compatible Messages API&lt;/strong&gt; on &lt;code&gt;localhost:11434&lt;/code&gt;. That means Claude Code and Ollama now speak the same language natively — no adapters, no hacks.&lt;/p&gt;

&lt;p&gt;The result: Claude Code's full feature set (file editing, tool calls, multi-step reasoning, git integration) running against powerful open-source models at zero cost.&lt;/p&gt;




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

&lt;p&gt;For most developers, Claude Code was exciting in theory but expensive in practice. A typical heavy session — analyzing a codebase, refactoring multiple files, generating tests — could burn through dollars fast.&lt;/p&gt;

&lt;p&gt;This setup changes the math completely:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Local models&lt;/strong&gt;: completely free, private, works offline, no data leaves your machine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama cloud models (free tier)&lt;/strong&gt;: runs on Ollama's servers, no GPU required, free daily usage with session limits&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Same CLI experience&lt;/strong&gt;: you still type &lt;code&gt;claude&lt;/code&gt; in your terminal. Nothing feels different&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For learning, building demos, exploring Claude Code's features, and handling everyday coding tasks, these free alternatives are more than capable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 1: Installing Ollama
&lt;/h2&gt;

&lt;h3&gt;
  
  
  macOS / Linux
&lt;/h3&gt;

&lt;p&gt;Open your terminal and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Windows
&lt;/h3&gt;

&lt;p&gt;Download the installer directly from &lt;a href="https://ollama.com/download" rel="noopener noreferrer"&gt;ollama.com/download&lt;/a&gt; and run it. Ollama installs as a background service automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Verify Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see version &lt;strong&gt;0.14.0 or later&lt;/strong&gt; (0.6.x is current as of mid-2026). This version is required for Anthropic API compatibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Start Ollama Server (if not auto-started)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This starts the local Ollama daemon on &lt;code&gt;http://localhost:11434&lt;/code&gt;. On macOS, it usually starts automatically as a menu bar app.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 2: Essential Ollama Commands
&lt;/h2&gt;

&lt;p&gt;These are the commands you'll use regularly. Learn them once and you'll never forget them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pull (Download) a Model
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama pull &amp;lt;model-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;ollama pull qwen3-coder:480b-cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For cloud models (with the &lt;code&gt;:cloud&lt;/code&gt; suffix), this registers the model reference — no actual weights are downloaded to your disk. Inference runs on Ollama's servers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Run a Model Interactively
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run &amp;lt;model-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;ollama run nemotron-3-super:cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This opens an interactive chat session in your terminal. Type your message and press Enter.&lt;/p&gt;

&lt;h3&gt;
  
  
  List All Downloaded / Registered Models
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama &lt;span class="nb"&gt;ls&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Remove a Model
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama &lt;span class="nb"&gt;rm&lt;/span&gt; &amp;lt;model-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Check Running Models
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama ps
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Show Model Info
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama show &amp;lt;model-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Stop a Running Model
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama stop &amp;lt;model-name&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Connect Your Ollama Account (Required for Cloud Models)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama auth login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This opens a browser tab to &lt;code&gt;ollama.com/connect&lt;/code&gt;. Sign in and your credentials are stored locally. All cloud model requests use this automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  Launch Claude Code Directly from Ollama
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama launch claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the magic command. ⚡ It starts Claude Code with Ollama as the backend, auto-sets all required environment variables, and prompts you to pick a model interactively.&lt;/p&gt;

&lt;p&gt;You can also specify the model directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama launch claude &lt;span class="nt"&gt;--model&lt;/span&gt; nemotron-3-super:cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Part 3: Installing Claude Code
&lt;/h2&gt;

&lt;p&gt;Claude Code requires &lt;strong&gt;Node.js 18+&lt;/strong&gt;. Check your version first:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you don't have Node.js, download it from &lt;a href="https://nodejs.org" rel="noopener noreferrer"&gt;nodejs.org&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Install Claude Code via npm
&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; &lt;span class="nt"&gt;-g&lt;/span&gt; @anthropic-ai/claude-code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Verify Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Update Claude Code
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm update &lt;span class="nt"&gt;-g&lt;/span&gt; @anthropic-ai/claude-code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Part 4: Connecting Claude Code to Ollama
&lt;/h2&gt;

&lt;p&gt;This is the three-step configuration. You set three environment variables to redirect Claude Code away from Anthropic's servers and toward your local Ollama instance.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option A: Set Variables for the Current Session (Quick Test)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;macOS / Linux:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"ollama"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:11434"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Windows (PowerShell):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ollama"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;$&lt;/span&gt;&lt;span class="nn"&gt;env&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:11434"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Option B: Permanent Setup (Recommended)
&lt;/h3&gt;

&lt;p&gt;Add these lines to your &lt;code&gt;~/.bashrc&lt;/code&gt;, &lt;code&gt;~/.zshrc&lt;/code&gt;, or &lt;code&gt;~/.bash_profile&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;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"ollama"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:11434"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then reload:&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="nb"&gt;source&lt;/span&gt; ~/.zshrc
&lt;span class="c"&gt;# or&lt;/span&gt;
&lt;span class="nb"&gt;source&lt;/span&gt; ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Verify the Variables Are Set
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;printenv&lt;/span&gt; | &lt;span class="nb"&gt;grep &lt;/span&gt;ANTHROPIC
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should see all three variables.&lt;/p&gt;




&lt;h2&gt;
  
  
  Part 5: Running Claude Code with Ollama Models
&lt;/h2&gt;

&lt;p&gt;Once your environment variables are set, start Claude Code like this:&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 1: Using the &lt;code&gt;claude&lt;/code&gt; Command Directly
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude &lt;span class="nt"&gt;--model&lt;/span&gt; nemotron-3-super:cloud &lt;span class="nt"&gt;--allow-dangerously-skip-permissions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Replace the model name with any Ollama-supported model. The &lt;code&gt;--allow-dangerously-skip-permissions&lt;/code&gt; flag skips the interactive trust prompt (useful for faster startup during development).&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 2: Using &lt;code&gt;ollama launch claude&lt;/code&gt; (The Clean Way)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama launch claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This method is recommended for most users. It:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auto-sets all environment variables&lt;/li&gt;
&lt;li&gt;Lets you pick the model from a list&lt;/li&gt;
&lt;li&gt;Handles all Anthropic API routing automatically&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With a specific model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama launch claude &lt;span class="nt"&gt;--model&lt;/span&gt; gpt-oss:120b-cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With auto-confirm and auto-pull:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama launch claude &lt;span class="nt"&gt;--model&lt;/span&gt; qwen3-coder:480b-cloud &lt;span class="nt"&gt;--yes&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;--yes&lt;/code&gt; flag automatically pulls the model (if not already registered) and skips all confirmation prompts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Method 3: Test Your Project Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create a test project&lt;/span&gt;
&lt;span class="nb"&gt;mkdir &lt;/span&gt;my-test-project
&lt;span class="nb"&gt;cd &lt;/span&gt;my-test-project
git init
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"# My Project"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; README.md
git add README.md
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"initial commit"&lt;/span&gt;

&lt;span class="c"&gt;# Start Claude Code with Ollama&lt;/span&gt;
ollama launch claude &lt;span class="nt"&gt;--model&lt;/span&gt; gemma4:31b-cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You'll see the familiar Claude Code interface — but it's now powered by a free open-source model. 🎉&lt;/p&gt;




&lt;h2&gt;
  
  
  The 5 Free Ollama Cloud Models You Should Know
&lt;/h2&gt;

&lt;p&gt;These are all available on Ollama's platform. Cloud models run on Ollama's servers, and all users get a &lt;strong&gt;free tier&lt;/strong&gt; with daily/session usage limits. No GPU required on your machine.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;✅ &lt;strong&gt;Verification note:&lt;/strong&gt; All five models below are confirmed available on Ollama's official model library (&lt;code&gt;ollama.com/library&lt;/code&gt;) as &lt;code&gt;:cloud&lt;/code&gt; variants. Ollama's free tier provides limited daily cloud usage — heavier models (higher usage levels) consume your quota faster. For unlimited access, a Pro plan ($20/month) is available, but the free tier is genuinely useful for learning and everyday development.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  1. &lt;code&gt;nemotron-3-super:cloud&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;NVIDIA's Nemotron 3 Super is a 120B Mixture-of-Experts model that activates only 12B parameters at a time — so you get strong reasoning quality with surprisingly efficient compute. It supports English, French, German, Italian, Japanese, Spanish, and Chinese, making it great for multilingual work and complex multi-agent tasks.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run nemotron-3-super:cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. &lt;code&gt;gpt-oss:120b-cloud&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;OpenAI's open-weight model designed for reasoning, agentic tasks, and developer use cases. The 120B variant has strong tool-use support and thinking capabilities — making it a natural fit for Claude Code's multi-step file editing and shell command workflows.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run gpt-oss:120b-cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. &lt;code&gt;gemma4:31b-cloud&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Google's Gemma 4 in the 31B size brings vision capabilities alongside solid general reasoning. It's a good all-rounder for chat, code review, and general development tasks. If you want a model that handles both text and images, this is your pick.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run gemma4:31b-cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4. &lt;code&gt;qwen3-vl:235b-cloud&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Alibaba's most powerful vision-language model to date. With 235B parameters, it handles complex vision tasks alongside text, including image understanding, document parsing, and code from screenshots. If you're working on projects involving both visuals and code, this is a compelling option.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run qwen3-vl:235b-cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. &lt;code&gt;qwen3-coder:480b-cloud&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;This is the one developers talk about most. Qwen3-Coder at 480B is specifically optimized for long-context coding and agentic tasks — exactly the kind of work Claude Code does. It supports a 128K context window and is built for multi-file edits and code generation workflows. Heavy model (higher usage level), so pace yourself on the free tier.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama run qwen3-coder:480b-cloud
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  Model Comparison Table
&lt;/h2&gt;

&lt;p&gt;Here's a clear side-by-side comparison of all five models to help you pick the right one for your task:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Parameters&lt;/th&gt;
&lt;th&gt;Context Window&lt;/th&gt;
&lt;th&gt;Vision&lt;/th&gt;
&lt;th&gt;Tool Use&lt;/th&gt;
&lt;th&gt;Thinking&lt;/th&gt;
&lt;th&gt;Best For&lt;/th&gt;
&lt;th&gt;Usage Level&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;nemotron-3-super:cloud&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;120B MoE (12B active)&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Reasoning, multi-agent, multilingual&lt;/td&gt;
&lt;td&gt;Level 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gpt-oss:120b-cloud&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;120B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;Agentic tasks, coding, reasoning&lt;/td&gt;
&lt;td&gt;Level 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;gemma4:31b-cloud&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;31B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;General chat, multimodal, code review&lt;/td&gt;
&lt;td&gt;Level 2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;qwen3-vl:235b-cloud&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;235B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Vision + code, document parsing&lt;/td&gt;
&lt;td&gt;Level 3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;qwen3-coder:480b-cloud&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;480B&lt;/td&gt;
&lt;td&gt;128K&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;Code generation, agentic coding&lt;/td&gt;
&lt;td&gt;Level 3–4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;Quick tip:&lt;/strong&gt; On the free tier, start with &lt;code&gt;nemotron-3-super:cloud&lt;/code&gt; or &lt;code&gt;gemma4:31b-cloud&lt;/code&gt; (Level 2) to stretch your free usage further. Use &lt;code&gt;qwen3-coder:480b-cloud&lt;/code&gt; when you need serious coding power and have quota available.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Claude Code Commands You Should Know
&lt;/h2&gt;

&lt;p&gt;Once inside a Claude Code session, here are the most useful commands:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/help&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows all available commands&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/exit&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Exits Claude Code&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/clear&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Clears the conversation history&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/compact&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Compresses conversation to save context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/model&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Shows the current model in use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Ctrl+C&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Cancel the current response&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Tab&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Switch between planning and build mode&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Ctrl+P&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Opens options panel&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Best Tips for This Setup ✅
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do these:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always verify your environment variables are set before starting Claude Code — run &lt;code&gt;printenv | grep ANTHROPIC&lt;/code&gt; to confirm&lt;/li&gt;
&lt;li&gt;Start with &lt;code&gt;ollama launch claude&lt;/code&gt; instead of the manual &lt;code&gt;claude&lt;/code&gt; command. It's simpler and handles everything automatically&lt;/li&gt;
&lt;li&gt;Use &lt;code&gt;qwen3-coder:480b-cloud&lt;/code&gt; for serious coding sessions when you have quota. It's optimized for exactly this kind of work&lt;/li&gt;
&lt;li&gt;Create a test project first before running Claude Code on real code, so you can verify everything works&lt;/li&gt;
&lt;li&gt;Sign into your Ollama account before using any &lt;code&gt;:cloud&lt;/code&gt; model — run &lt;code&gt;ollama auth login&lt;/code&gt; once and you're done&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Avoid these:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't skip the &lt;code&gt;ollama auth login&lt;/code&gt; step for cloud models — they won't run without it&lt;/li&gt;
&lt;li&gt;Don't set &lt;code&gt;ANTHROPIC_API_KEY&lt;/code&gt; to a real Anthropic key when using Ollama — leave it empty or set to a dummy value&lt;/li&gt;
&lt;li&gt;Don't expect local inference speed to match cloud — on a 16GB RAM machine, local models can be slow. Cloud models are faster for heavy tasks&lt;/li&gt;
&lt;li&gt;Don't use cloud models on the free tier for large batch jobs — you'll hit session limits fast. Stick to focused coding sessions&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Common Mistakes People Make
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Forgetting to start the Ollama server
&lt;/h3&gt;

&lt;p&gt;If you see a connection error when Claude Code starts, Ollama's daemon probably isn't running. Fix it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ollama serve
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Missing the &lt;code&gt;ollama auth login&lt;/code&gt; step for cloud models
&lt;/h3&gt;

&lt;p&gt;Cloud models (&lt;code&gt;*:cloud&lt;/code&gt;) require you to be signed into your Ollama account. Without this, requests fail. Run &lt;code&gt;ollama auth login&lt;/code&gt; once and your credentials are saved automatically.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Setting the wrong &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Some older guides suggest &lt;code&gt;http://localhost:11434/v1&lt;/code&gt;. The correct URL for Ollama's Anthropic-compatible endpoint is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:11434
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without the &lt;code&gt;/v1&lt;/code&gt; suffix, unless you're specifically testing the OpenAI-compatible endpoint.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Expecting identical Claude behavior
&lt;/h3&gt;

&lt;p&gt;Open-source models follow Claude Code's expected output format well for most tasks, but complex multi-step reasoning chains may behave differently than Anthropic's flagship models. For simple to mid-complexity tasks, they perform great. For highly complex architectural decisions, results may vary.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Running out of free cloud quota on heavy models
&lt;/h3&gt;

&lt;p&gt;The Ollama free tier has session and weekly limits. Models like &lt;code&gt;qwen3-coder:480b-cloud&lt;/code&gt; are large (Level 3–4 usage), so they consume your quota faster. Be intentional with your requests on the free tier, and use &lt;code&gt;gemma4:31b-cloud&lt;/code&gt; for lighter tasks to preserve quota.&lt;/p&gt;




&lt;h2&gt;
  
  
  Putting It All Together: Full Setup Walkthrough
&lt;/h2&gt;

&lt;p&gt;Here's the complete setup from scratch in one place:&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="c"&gt;# Step 1: Install Ollama&lt;/span&gt;
curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://ollama.com/install.sh | sh

&lt;span class="c"&gt;# Step 2: Verify Ollama version (needs 0.14+)&lt;/span&gt;
ollama &lt;span class="nt"&gt;--version&lt;/span&gt;

&lt;span class="c"&gt;# Step 3: Sign in for cloud model access&lt;/span&gt;
ollama auth login

&lt;span class="c"&gt;# Step 4: Install Claude Code&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @anthropic-ai/claude-code

&lt;span class="c"&gt;# Step 5: Set environment variables (add to ~/.zshrc for permanent setup)&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"ollama"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;""&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"http://localhost:11434"&lt;/span&gt;

&lt;span class="c"&gt;# Step 6: Launch Claude Code with Ollama (the easy way)&lt;/span&gt;
ollama launch claude

&lt;span class="c"&gt;# OR with a specific model&lt;/span&gt;
ollama launch claude &lt;span class="nt"&gt;--model&lt;/span&gt; nemotron-3-super:cloud

&lt;span class="c"&gt;# OR the manual way&lt;/span&gt;
claude &lt;span class="nt"&gt;--model&lt;/span&gt; qwen3-coder:480b-cloud &lt;span class="nt"&gt;--allow-dangerously-skip-permissions&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. You're now running Claude Code on free, powerful open-source models. 🎉&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The combination of Claude Code and Ollama is genuinely exciting. What used to be an expensive tool reserved for developers with budget for API credits is now accessible to everyone — students, indie developers, learners, and anyone curious about agentic AI coding.&lt;/p&gt;

&lt;p&gt;The five cloud models covered here — &lt;code&gt;nemotron-3-super:cloud&lt;/code&gt;, &lt;code&gt;gpt-oss:120b-cloud&lt;/code&gt;, &lt;code&gt;gemma4:31b-cloud&lt;/code&gt;, &lt;code&gt;qwen3-vl:235b-cloud&lt;/code&gt;, and &lt;code&gt;qwen3-coder:480b-cloud&lt;/code&gt; — are all available on Ollama's free tier and cover a strong range of use cases from coding to vision to multilingual reasoning.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;ollama launch claude&lt;/code&gt; command is genuinely the simplest way to start. One command, pick your model, and you're in. No manual environment variable juggling required.&lt;/p&gt;

&lt;p&gt;Start free. Learn the workflow. When your usage outgrows the free tier, Ollama's Pro plan at $20/month is still a fraction of what Anthropic's API costs for heavy use.&lt;/p&gt;

&lt;p&gt;Happy coding — and may your context windows always be long enough. 🚀&lt;/p&gt;




&lt;p&gt;For more dev guides like this, visit &lt;strong&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;&lt;/strong&gt; — if this post saved you money or time, share it with a developer friend who could use it too. 🙌&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>llm</category>
      <category>webdev</category>
    </item>
    <item>
      <title>VS Code 1.120 Is Here: Agents Window, BYOK Token Tracking, and More</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Sat, 16 May 2026 06:26:16 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/vs-code-1120-is-here-agents-window-byok-token-tracking-and-more-3mhk</link>
      <guid>https://dev.to/hamidrazadev/vs-code-1120-is-here-agents-window-byok-token-tracking-and-more-3mhk</guid>
      <description>&lt;p&gt;You open VS Code, start a task with an AI agent, then realize you need to jump to a completely different project — and suddenly your whole workflow falls apart. Sound familiar? 😅&lt;/p&gt;

&lt;p&gt;VS Code 1.120, released on &lt;strong&gt;May 13, 2026&lt;/strong&gt;, tackles exactly that kind of friction head-on. This release is packed with genuinely useful upgrades — not just checkbox features, but things that will actually change how you work day to day.&lt;/p&gt;

&lt;p&gt;From a dedicated &lt;strong&gt;Agents window&lt;/strong&gt; built for multi-project agentic workflows, to accurate token tracking for your BYOK models, to smarter Markdown tooling and terminal command risk badges — there's a lot to unpack. So let's get into it.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is VS Code 1.120?
&lt;/h2&gt;

&lt;p&gt;VS Code 1.120 is the latest stable release of Visual Studio Code — Microsoft's free, open-source code editor used by millions of developers worldwide.&lt;/p&gt;

&lt;p&gt;Every month or so, the VS Code team ships a new version with new features, fixes, and improvements. Version 1.120 is a particularly noteworthy release because it graduates the &lt;strong&gt;Agents window&lt;/strong&gt; from Insiders-only to Stable — which means it's now available to everyone.&lt;/p&gt;

&lt;p&gt;Think of this release as VS Code leveling up its AI game, sharpening its Markdown tools, and adding a few safety nets you didn't know you needed.&lt;/p&gt;




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

&lt;p&gt;Here's the honest reality: agentic coding is not a future thing anymore. Developers are actively using AI agents to write code, run commands, make changes across files, and even manage projects. But VS Code was originally designed around one editor, one workspace, one task at a time.&lt;/p&gt;

&lt;p&gt;VS Code 1.120 starts to fix that. It introduces a purpose-built environment for working with multiple agents across multiple projects simultaneously. At the same time, it addresses real pain points around cost visibility, terminal safety, and Markdown review quality. These aren't flashy gimmicks — they solve problems developers are running into right now.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features in VS Code 1.120
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🪟 Agents Window — Now in Stable
&lt;/h3&gt;

&lt;p&gt;The biggest headline of this release is the &lt;strong&gt;Agents window&lt;/strong&gt; moving from VS Code Insiders to Stable. This is a whole new type of window designed specifically for agent-driven development.&lt;/p&gt;

&lt;p&gt;Instead of forcing your agent workflows into the same editor layout built for writing code manually, the Agents window gives you a dedicated space to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explore and iterate on tasks across multiple projects&lt;/li&gt;
&lt;li&gt;Switch between active agent sessions without losing context&lt;/li&gt;
&lt;li&gt;Review agent-generated changes in one place&lt;/li&gt;
&lt;li&gt;Choose your agent harness and run agents on remote machines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It shares all your existing VS Code settings (themes, keybindings, extensions) but lets you override specific settings just for the Agents window.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's improved since Insiders?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your dropdown preferences (agent harness, isolation mode) now persist between sessions — no more re-selecting every time.&lt;/li&gt;
&lt;li&gt;You can discard edits directly from the Changes panel without hunting for a menu.&lt;/li&gt;
&lt;li&gt;A sync button on the Files panel lets you pull upstream changes from the base branch before the agent begins.&lt;/li&gt;
&lt;li&gt;Completed sessions now automatically show the agent's full set of changes when you open them.&lt;/li&gt;
&lt;li&gt;Arrow buttons in the top-left title bar let you jump between recent sessions quickly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can open it from the "Open in Agents" button in the VS Code title bar. The &lt;a href="https://code.visualstudio.com" rel="noopener noreferrer"&gt;Agents window documentation&lt;/a&gt; has everything you need to get started.&lt;/p&gt;




&lt;h3&gt;
  
  
  💰 BYOK Token Usage — Finally Accurate
&lt;/h3&gt;

&lt;p&gt;If you use &lt;strong&gt;Bring Your Own Key (BYOK)&lt;/strong&gt; with providers like Anthropic, OpenAI, or others, you've probably noticed that the context window control in Chat always showed &lt;code&gt;0%&lt;/code&gt; and zero tokens. That was a bug — token accounting simply wasn't working for BYOK models.&lt;/p&gt;

&lt;p&gt;VS Code 1.120 fixes that. The context window control now shows &lt;strong&gt;accurate token usage and percentage&lt;/strong&gt; for all BYOK models. No more guessing whether you're burning through your context window.&lt;/p&gt;

&lt;p&gt;This matters for two reasons: performance and cost. When your model runs out of context window space, it starts forgetting earlier parts of your conversation. And if you're paying per token, keeping an eye on usage is just good hygiene.&lt;/p&gt;




&lt;h3&gt;
  
  
  🧠 Thinking Effort for BYOK Reasoning Models
&lt;/h3&gt;

&lt;p&gt;Reasoning models — the kind that "think before they answer" — let you control how hard they work on a problem. More thinking effort means better answers but higher cost and slower responses. Less effort is faster and cheaper but may produce shallower results.&lt;/p&gt;

&lt;p&gt;VS Code 1.120 lets you configure &lt;strong&gt;thinking effort&lt;/strong&gt; for BYOK reasoning models directly from the model picker in the Chat view. This works across OpenAI-compatible endpoints including OpenAI, xAI (Grok), OpenRouter, and custom Azure OpenAI deployments. (Anthropic models already had this; the control is now consistent everywhere.)&lt;/p&gt;




&lt;h3&gt;
  
  
  📦 Model Picker Organized by Provider
&lt;/h3&gt;

&lt;p&gt;If you work with models from multiple providers, the old model picker could feel like one giant unsorted list. Now, models are &lt;strong&gt;grouped by provider&lt;/strong&gt;, making it much easier to find what you need. You can also search by model name.&lt;/p&gt;

&lt;p&gt;Bonus: recently used models now show the provider name in grey text next to the model name, so you can instantly tell apart similarly named models from different services.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;💡 Quick tip: Type &lt;code&gt;/models&lt;/code&gt; in the chat input to jump straight to the model list.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  ⚡ Terminal Output Compression (Preview)
&lt;/h3&gt;

&lt;p&gt;Here's a real scenario: you run &lt;code&gt;npm install&lt;/code&gt; or &lt;code&gt;git diff&lt;/code&gt; inside an agent session, and the output is hundreds of lines long. That output gets sent to the model and eats a huge chunk of your context window — leaving less space for your actual code and the agent's reasoning.&lt;/p&gt;

&lt;p&gt;Enable &lt;code&gt;chat.tools.compressOutput.enabled&lt;/code&gt; and VS Code will post-process terminal output before sending it to the model:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Large unchanged hunks in diffs are collapsed&lt;/li&gt;
&lt;li&gt;Lockfile and snapshot diffs are dropped entirely&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;ls -l&lt;/code&gt; output is reduced to just entry names&lt;/li&gt;
&lt;li&gt;npm install progress bars and deprecation warnings are stripped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A short banner is added to any compressed output so the model knows what was filtered — and can request the raw version if it needs it.&lt;/p&gt;




&lt;h3&gt;
  
  
  🚦 Risk Assessment for Terminal Commands (Experimental)
&lt;/h3&gt;

&lt;p&gt;This one is genuinely useful if you let agents run terminal commands. Enable &lt;code&gt;chat.tools.riskAssessment.enabled&lt;/code&gt; and every terminal command confirmation now shows a &lt;strong&gt;colored risk badge&lt;/strong&gt; with an AI-generated one-sentence explanation.&lt;/p&gt;

&lt;p&gt;Three levels:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Safe (green):&lt;/strong&gt; reads files or prints output without making changes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Caution (orange):&lt;/strong&gt; modifies the workspace, installs packages, or sends data over the network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review carefully (red):&lt;/strong&gt; may be difficult or impossible to undo — think force-pushing to a remote or deleting files outside the workspace&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's a small thing, but it gives you a moment to breathe before saying yes to something destructive.&lt;/p&gt;




&lt;h3&gt;
  
  
  📝 Markdown Preview for Diffs (Preview)
&lt;/h3&gt;

&lt;p&gt;If you've ever opened a Markdown file in Source Control's diff view and had to mentally parse raw syntax to understand what changed — this feature is for you.&lt;/p&gt;

&lt;p&gt;VS Code 1.120 lets you view Markdown diffs as &lt;strong&gt;rendered previews&lt;/strong&gt; instead of raw source. You can see both side-by-side and inline views. Spotting a changed heading or a restructured list is now as easy as reading the document — no mental decoding required.&lt;/p&gt;

&lt;p&gt;To try it, open a Markdown diff and use &lt;strong&gt;Reopen Editor With...&lt;/strong&gt; to switch to the Markdown preview diff view.&lt;/p&gt;

&lt;p&gt;You can also make it the default:&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;"workbench.diffEditorAssociations"&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;"*.md"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"vscode.markdown.preview.editor"&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;p&gt;This is especially handy when reviewing documentation changes from agents or pull requests.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔗 HTML &lt;code&gt;id&lt;/code&gt; Support in Markdown
&lt;/h3&gt;

&lt;p&gt;VS Code now recognizes &lt;code&gt;id&lt;/code&gt; attributes from HTML elements inside Markdown files for both &lt;strong&gt;path completions&lt;/strong&gt; and &lt;strong&gt;link validation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;So if you write:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"install-guide"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;...&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then link to it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;See the &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;installation steps&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#install-guide&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; for details.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;VS Code will suggest &lt;code&gt;#install-guide&lt;/code&gt; in completions and flag it as an error if the id doesn't exist. No more broken anchor links that look fine until someone clicks them.&lt;/p&gt;




&lt;h3&gt;
  
  
  📊 Smart Select for Markdown Tables
&lt;/h3&gt;

&lt;p&gt;A small but welcome addition: Markdown tables now support &lt;strong&gt;smart selection&lt;/strong&gt;. Use &lt;code&gt;Shift+Alt+RightArrow&lt;/code&gt; to expand the selection from a cell → row → full table. Use &lt;code&gt;Shift+Alt+LeftArrow&lt;/code&gt; to shrink it back. If you edit tables regularly, you'll appreciate this.&lt;/p&gt;




&lt;h3&gt;
  
  
  🗂️ Plan Mode Improvements for Claude and Copilot CLI
&lt;/h3&gt;

&lt;p&gt;If you use plan mode with the Claude agent or Copilot CLI, the plan editor got better:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inline editing:&lt;/strong&gt; You can now edit the plan directly inside the control instead of opening a separate editor tab.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clearer feedback mode:&lt;/strong&gt; When you're giving feedback on a plan, the UI now clearly shows you're in feedback mode and displays your added feedback.&lt;/li&gt;
&lt;li&gt;You can opt out of the inline editor and fall back to a regular editor tab if you prefer with &lt;code&gt;chat.planWidget.inlineEditor.enabled&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Comparison: Before and After 1.120
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Before 1.120&lt;/th&gt;
&lt;th&gt;After 1.120&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;BYOK token display&lt;/td&gt;
&lt;td&gt;Always showed 0%&lt;/td&gt;
&lt;td&gt;Accurate usage and %&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Thinking effort for BYOK&lt;/td&gt;
&lt;td&gt;Anthropic only&lt;/td&gt;
&lt;td&gt;All OpenAI-compatible providers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model picker&lt;/td&gt;
&lt;td&gt;One unsorted list&lt;/td&gt;
&lt;td&gt;Grouped by provider, searchable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Markdown diff view&lt;/td&gt;
&lt;td&gt;Raw syntax only&lt;/td&gt;
&lt;td&gt;Rendered preview available&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal command confirmation&lt;/td&gt;
&lt;td&gt;Just the command&lt;/td&gt;
&lt;td&gt;Command + risk badge + explanation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agents window&lt;/td&gt;
&lt;td&gt;Insiders only&lt;/td&gt;
&lt;td&gt;Available in Stable&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Best Tips for Getting the Most Out of 1.120
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;✅ Try the Agents window for your next multi-project task.&lt;/strong&gt; Even if you're not doing heavy agentic work, it's worth exploring. The session history and change review features alone are useful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Enable terminal output compression if you run long commands in agent sessions.&lt;/strong&gt; It directly preserves your context window and can save you from unexpected token overages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Turn on risk assessment for terminal commands.&lt;/strong&gt; It takes two seconds to enable and could save you from a painful &lt;code&gt;git push --force&lt;/code&gt; accident.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Set the Markdown preview as your default diff view for &lt;code&gt;.md&lt;/code&gt; files.&lt;/strong&gt; If you review docs regularly, this change alone is worth the update.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;✅ Use &lt;code&gt;/models&lt;/code&gt; in the chat input&lt;/strong&gt; to quickly switch between models without clicking through menus.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;❌ Ignoring the risk badge on terminal commands.&lt;/strong&gt; The experimental risk assessment feature is there for a reason. A red badge means stop and read before hitting confirm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌ Skipping terminal output compression.&lt;/strong&gt; If you're paying for tokens with BYOK, or working on complex agent sessions, not compressing output is quietly expensive. It's opt-in, so you have to actually turn it on.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌ Not setting the Agents window preferences early.&lt;/strong&gt; Your harness and isolation mode choices are now saved between sessions — but only after you set them the first time. Take a minute to configure things the way you want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;❌ Assuming BYOK token tracking was always accurate.&lt;/strong&gt; If you were making decisions based on that 0% display, now's a good time to re-evaluate your context window habits.&lt;/p&gt;




&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&gt;

&lt;p&gt;VS Code 1.120 is one of those releases that makes daily developer work noticeably smoother. The Agents window landing in Stable is the headline, but the token tracking fix, risk badges, Markdown preview for diffs, and terminal compression are the features you'll actually feel every day.&lt;/p&gt;

&lt;p&gt;It's not a revolutionary release — it's a thoughtful, practical one. And those are often the best kind. 🚀&lt;/p&gt;

&lt;p&gt;If you found this useful, check out more developer content on &lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt; — there's a lot more where this came from. And if this post saved you some time, share it with a teammate who's still on VS Code 1.119. They'll thank you later. 😊&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>vscode</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>I Wrote 101 Developer Blogs. Here's What I Learned — And What I Was Really Trying to Teach You</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Mon, 11 May 2026 07:48:28 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/i-wrote-101-developer-blogs-heres-what-i-learned-and-what-i-was-really-trying-to-teach-you-hja</link>
      <guid>https://dev.to/hamidrazadev/i-wrote-101-developer-blogs-heres-what-i-learned-and-what-i-was-really-trying-to-teach-you-hja</guid>
      <description>&lt;p&gt;You open a blank page. The cursor blinks. You have no idea where to start.&lt;/p&gt;

&lt;p&gt;That was me on my very first blog post. I was nervous. I thought, "Who is going to read this? I'm not an expert. I'm just a student."&lt;/p&gt;

&lt;p&gt;But I hit publish anyway.&lt;/p&gt;

&lt;p&gt;Then I did it again. And again. And again.&lt;/p&gt;

&lt;p&gt;101 times later, here I am — looking back at what writing all those posts actually taught me, not just about code, but about people, learning, and what it really means to share knowledge online. 🚀&lt;/p&gt;

&lt;p&gt;So if you've been following along, thank you. This one's for you.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Journey: From 1 Blog to 101
&lt;/h2&gt;

&lt;p&gt;My first post was short. The formatting was rough. The writing was stiff.&lt;/p&gt;

&lt;p&gt;But it was honest. And it was mine.&lt;/p&gt;

&lt;p&gt;Over time, I started covering topics I genuinely cared about — VS Code updates, CSS history, DNS, React patterns, AI tools, Next.js SEO, and a lot more. I wasn't picking topics to go viral. I was writing about things I was learning, experimenting with, or genuinely curious about.&lt;/p&gt;

&lt;p&gt;That turned out to be the best strategy I never planned.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Learned From Writing 101 Blogs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Consistency Beats Perfection Every Single Time
&lt;/h3&gt;

&lt;p&gt;My early posts weren't perfect. Some of them still aren't. But I kept going.&lt;/p&gt;

&lt;p&gt;The moment I stopped waiting to be "ready enough" to write, the writing got better on its own. Showing up regularly — even when the draft feels messy — teaches you more than any writing course ever could.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; Publish imperfect work. Improve over time. Don't wait.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. Simple Writing Is Harder Than Technical Writing
&lt;/h3&gt;

&lt;p&gt;Anyone can write a complicated explanation. Writing something a beginner can actually understand? That takes real skill.&lt;/p&gt;

&lt;p&gt;I spent more time simplifying my explanations than I spent researching the topic. And every time I found a simpler way to say something, I actually understood the topic better myself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; If you can't explain it simply, you don't fully understand it yet. Writing forces that clarity.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. Developers Are Hungry for Relatable Content
&lt;/h3&gt;

&lt;p&gt;The posts that got the most attention weren't always the most technical.&lt;/p&gt;

&lt;p&gt;They were the ones that started with a real situation — a frustrating bug, a confusing concept, a "wait, how does this actually work?" moment. Readers don't just want information. They want to feel like the writer gets them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; Start with the human moment. The technical detail comes after.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. Writing About Something Teaches You More Than Reading About It
&lt;/h3&gt;

&lt;p&gt;Every time I wrote about a topic — whether it was DNS, CSS Flexbox, MCP, or pagination — I understood it at a deeper level than before.&lt;/p&gt;

&lt;p&gt;Writing forces you to fill the gaps. You can't fake your way through an explanation. If you don't understand something, it shows. So you go back, research harder, test things, and come back with clarity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; Want to truly learn something? Write about it.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. Your Audience Is More Diverse Than You Think
&lt;/h3&gt;

&lt;p&gt;I assumed my readers were mostly experienced developers.&lt;/p&gt;

&lt;p&gt;I was wrong.&lt;/p&gt;

&lt;p&gt;Students, career-switchers, beginners, self-taught developers from countries all over the world — they all showed up. That changed how I write. I stopped assuming prior knowledge. I started explaining from the ground up, without being condescending.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; Write for the beginner in the room. Advanced readers can skim. Beginners can't.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. The Title Is Half the Battle
&lt;/h3&gt;

&lt;p&gt;I spent maybe 10 minutes on the title of my first blog. I now spend more time on the title than any other single line.&lt;/p&gt;

&lt;p&gt;A great title answers: "Why should I click this?" The answer has to be fast, clear, and honest. Clickbait burns trust. Good titles build it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; Spend real time on your title. It's a promise to your reader — keep it.&lt;/p&gt;




&lt;h3&gt;
  
  
  7. Burnout Is Real, and Breaks Are Necessary
&lt;/h3&gt;

&lt;p&gt;Around post 60-something, I hit a wall. Writing felt like a chore. Topics felt recycled. Everything felt dry.&lt;/p&gt;

&lt;p&gt;I took a short break. Came back. The energy returned.&lt;/p&gt;

&lt;p&gt;Sustainable content creation isn't about writing every single day without rest. It's about protecting your curiosity so it stays alive long enough to keep going.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lesson:&lt;/strong&gt; Rest is part of the process. Protect your enthusiasm like it's a resource — because it is.&lt;/p&gt;




&lt;h2&gt;
  
  
  What I Was Actually Trying to Teach You
&lt;/h2&gt;

&lt;p&gt;Every blog I wrote had the same hidden goal underneath all the headings and code snippets:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make developers feel less stuck and more capable.&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Whether I was explaining how DNS works or why pnpm is faster, I was always asking myself: &lt;em&gt;Will the person reading this feel smarter and more confident after finishing?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Here's what I hoped you took away from the different posts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;From the CSS and frontend posts&lt;/strong&gt; → That styling doesn't have to be a fight. When you understand the model, it clicks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;From the VS Code update posts&lt;/strong&gt; → That tools evolve fast, and staying updated doesn't have to be overwhelming if someone breaks it down for you.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;From the AI posts&lt;/strong&gt; → That AI is a tool, not a threat. Understanding it makes you more useful, not replaceable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;From the networking and DNS posts&lt;/strong&gt; → That the internet makes a lot more sense when someone traces through it with you step by step.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;From the personal posts&lt;/strong&gt; → That every developer — no matter where they are — deals with doubt, confusion, and imposter syndrome. You're not alone.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  What I'm Still Learning
&lt;/h2&gt;

&lt;p&gt;I'll be honest: I don't have everything figured out.&lt;/p&gt;

&lt;p&gt;I'm still learning how to make my code explanations clearer. I'm still figuring out the right balance between beginner-friendly and technically rigorous. I'm still working on writing introductions that grab attention in the first two sentences.&lt;/p&gt;

&lt;p&gt;But that's kind of the point.&lt;/p&gt;

&lt;p&gt;101 blogs in, and I'm still learning. That should tell you something — writing is never really "done." It just gets better if you keep going.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why You Should Start Writing Too
&lt;/h2&gt;

&lt;p&gt;If you've been thinking about starting a blog, here's my honest pitch:&lt;/p&gt;

&lt;p&gt;You don't need to be an expert. You need to be one step ahead of someone who's stuck.&lt;/p&gt;

&lt;p&gt;That gap — between where you are and where a beginner is — is your entire value as a writer. Use it.&lt;/p&gt;

&lt;p&gt;Write about what confused you last week. Explain the thing that took you three hours to figure out in five minutes. That's the blog post someone needs right now.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;101 posts. Hundreds of topics. Thousands of words.&lt;/p&gt;

&lt;p&gt;But if I had to distill everything into one sentence, it would be this:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The best thing I ever did for my learning was starting to write in public.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It made me a clearer thinker, a better communicator, and a more empathetic developer.&lt;/p&gt;

&lt;p&gt;Thank you for reading. Thank you for the reactions, the follows, and the quiet encouragement of just showing up.&lt;/p&gt;

&lt;p&gt;Here's to the next 101. 💡&lt;/p&gt;




&lt;p&gt;If you want to read more posts like this, head over to &lt;strong&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;&lt;/strong&gt; — everything is there. If this post helped you or made you smile, share it. And if you're thinking about starting your own blog, drop a comment. I'd genuinely love to hear from you.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>career</category>
      <category>productivity</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Top 5 Chrome Extensions Every Developer Should Be Using Right Now 🚀</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Sun, 10 May 2026 07:28:51 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/top-5-chrome-extensions-every-developer-should-be-using-right-now-442m</link>
      <guid>https://dev.to/hamidrazadev/top-5-chrome-extensions-every-developer-should-be-using-right-now-442m</guid>
      <description>&lt;p&gt;You open Chrome, start debugging a bug, inspect a layout, check an API response, and test a color — all within the first ten minutes of your day. Sound familiar?&lt;/p&gt;

&lt;p&gt;Developers live inside their browser. It is basically a second IDE at this point. But most people are still using Chrome without any extensions, which is like coding without autocomplete. You can do it, but why would you?&lt;/p&gt;

&lt;p&gt;The right Chrome extensions can save you real time, reduce the mental load, and make your workflow noticeably smoother. So here are the &lt;strong&gt;top 5 Chrome extensions every developer should know&lt;/strong&gt; — tried, practical, and genuinely useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Are Chrome Extensions (and Why Should Developers Care)?
&lt;/h2&gt;

&lt;p&gt;Chrome extensions are small programs that plug into your browser and add features that are not there by default. They can change how pages look, add new tools, or help you inspect and analyze things on any website.&lt;/p&gt;

&lt;p&gt;For developers specifically, a good extension can help you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Debug faster&lt;/li&gt;
&lt;li&gt;Understand how websites are built&lt;/li&gt;
&lt;li&gt;Test your own UI without switching tools&lt;/li&gt;
&lt;li&gt;Manage your colors, fonts, and assets on the fly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Think of them as power-ups for your browser. And the best part? Most of them are free.&lt;/p&gt;




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

&lt;p&gt;Here is the honest truth: most developers underestimate how much time they waste switching between tools, searching for hex codes, copying API responses into Notepad, or squinting at font sizes in DevTools.&lt;/p&gt;

&lt;p&gt;The right extensions eliminate these micro-frustrations. And when you add up all those small savings across a full day of work, it is a meaningful difference. That is not an exaggeration — it is just good tooling.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Top 5 Chrome Extensions for Developers
&lt;/h2&gt;




&lt;h3&gt;
  
  
  1. 🔧 React Developer Tools
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; React developers who want real insight into their components.&lt;/p&gt;

&lt;p&gt;If you build React applications, this one is non-negotiable. React Developer Tools adds a dedicated &lt;strong&gt;Components&lt;/strong&gt; and &lt;strong&gt;Profiler&lt;/strong&gt; tab to Chrome DevTools. From there, you can inspect your entire component tree, see live props and state, and track what is re-rendering and why.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-life example:&lt;/strong&gt; You notice your page is lagging after a state update. Instead of adding &lt;code&gt;console.log&lt;/code&gt; everywhere, you open the Profiler, run a trace, and see exactly which component is re-rendering unnecessarily. Three minutes later, you have fixed it.&lt;/p&gt;

&lt;p&gt;Without this extension, debugging React apps is a lot of guesswork. With it, everything becomes visible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt; React Developer Tools — available on the Chrome Web Store.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. 👀 WhatFont
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Developers and designers who want to identify fonts instantly.&lt;/p&gt;

&lt;p&gt;You are browsing a website and the typography looks really clean. You want to know what font it is using. Normally you would open DevTools, find the element, inspect the &lt;code&gt;font-family&lt;/code&gt; property, and dig through the CSS. That takes a while.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;WhatFont&lt;/strong&gt;, you just hover over any text on the page and it instantly tells you the font name, size, weight, color, and even the source it is loaded from.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-life example:&lt;/strong&gt; You are building a landing page and the client sends you a competitor's site as a reference. You hover over the heading and immediately see: "Inter, 48px, 700 weight." Done. No digging needed.&lt;/p&gt;

&lt;p&gt;It is incredibly simple and surprisingly useful. Every frontend developer should have this installed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt; WhatFont — available on the Chrome Web Store.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. ⚡ JSON Viewer
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Anyone working with APIs or JSON data in the browser.&lt;/p&gt;

&lt;p&gt;If you have ever opened a raw API response in Chrome and been greeted by one giant unformatted wall of text, you know the pain. It is unreadable. It is stressful. And it slows you down.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JSON Viewer&lt;/strong&gt; automatically formats any JSON response in your browser into a clean, collapsible, color-coded tree. You can expand and collapse nodes, search through the data, and actually understand what the API is returning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-life example:&lt;/strong&gt; You are debugging a third-party API. The response has deeply nested objects. With JSON Viewer, you collapse the parts you do not need and focus on exactly the field you are looking for. What could take five minutes of scrolling through raw text takes about ten seconds.&lt;/p&gt;

&lt;p&gt;There are a few variants of this extension on the Web Store. Any well-rated one with formatting and collapsible nodes will do the job.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt; Search "JSON Viewer" on the Chrome Web Store and pick the highest-rated option.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. 💡 ColorZilla
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Developers and designers who work with colors daily.&lt;/p&gt;

&lt;p&gt;Color picking sounds like a small thing. But if you are building UI, you grab colors constantly — from designs, from websites, from mockups. &lt;strong&gt;ColorZilla&lt;/strong&gt; gives you a pixel-level color picker that works anywhere on your screen.&lt;/p&gt;

&lt;p&gt;You click the eyedropper, hover over any element, and it instantly gives you the exact HEX, RGB, or HSL value. It also keeps a history of recently picked colors and includes a gradient generator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-life example:&lt;/strong&gt; Your designer sends you a Figma screenshot over chat (not the actual file, because of course not 😅). You need the exact hex code for that button color. You open ColorZilla, click the eyedropper, hover over the button, and there it is: &lt;code&gt;#fd6e4e&lt;/code&gt;. Perfect.&lt;/p&gt;

&lt;p&gt;It is small, fast, and one of those tools you use without even thinking about it after a while.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Install:&lt;/strong&gt; ColorZilla — available on the Chrome Web Store.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. ✅ Lighthouse (Built-in, But Worth Knowing)
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Best for:&lt;/strong&gt; Developers who want to audit performance, accessibility, and SEO.&lt;/p&gt;

&lt;p&gt;Technically, &lt;strong&gt;Lighthouse&lt;/strong&gt; is already built into Chrome DevTools — but many developers never open it or do not realize how powerful it is. It deserves a spot on this list because it is genuinely one of the best developer tools available, and it is completely free.&lt;/p&gt;

&lt;p&gt;Lighthouse runs an automated audit on any web page and gives you a detailed score for &lt;strong&gt;Performance&lt;/strong&gt;, &lt;strong&gt;Accessibility&lt;/strong&gt;, &lt;strong&gt;Best Practices&lt;/strong&gt;, and &lt;strong&gt;SEO&lt;/strong&gt;. It also gives you specific, actionable suggestions to fix each issue it finds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Real-life example:&lt;/strong&gt; You finish building a page and feel good about it. You run Lighthouse and find out the images are not compressed, there are no ARIA labels on your buttons, and the render-blocking scripts are slowing things down. It tells you exactly what to fix and why. Your client's page goes from a 54 to an 89 performance score after one session.&lt;/p&gt;

&lt;p&gt;To use it: Open DevTools → Click the &lt;strong&gt;Lighthouse&lt;/strong&gt; tab → Click &lt;strong&gt;Analyze page load&lt;/strong&gt;. That's it.&lt;/p&gt;

&lt;p&gt;If you are building anything for real users, run Lighthouse before you ship. Every time.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Comparison: With vs Without These Extensions
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Task&lt;/th&gt;
&lt;th&gt;Without Extensions&lt;/th&gt;
&lt;th&gt;With Extensions&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Identify a font on a site&lt;/td&gt;
&lt;td&gt;Dig through DevTools CSS&lt;/td&gt;
&lt;td&gt;Hover and read instantly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read an API response&lt;/td&gt;
&lt;td&gt;Stare at raw JSON text&lt;/td&gt;
&lt;td&gt;Collapsible, color-coded view&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pick a color from a screenshot&lt;/td&gt;
&lt;td&gt;Guess and test&lt;/td&gt;
&lt;td&gt;Exact HEX in one click&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Debug React state&lt;/td&gt;
&lt;td&gt;Add &lt;code&gt;console.log&lt;/code&gt; everywhere&lt;/td&gt;
&lt;td&gt;Inspect live in Components tab&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audit page performance&lt;/td&gt;
&lt;td&gt;Manual checks, guessing&lt;/td&gt;
&lt;td&gt;Full report in one click&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The difference is real.&lt;/p&gt;




&lt;h2&gt;
  
  
  Best Tips for Using Chrome Extensions as a Developer
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Only install what you use.&lt;/strong&gt; Too many extensions slow Chrome down and create security risks. Keep it lean.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check permissions before installing.&lt;/strong&gt; A color picker does not need access to your clipboard history. Be mindful.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use the Extensions shortcut bar.&lt;/strong&gt; Pin the ones you use daily so they are one click away.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Update your extensions regularly.&lt;/strong&gt; Outdated extensions can break or become vulnerable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test with extensions disabled sometimes.&lt;/strong&gt; When debugging, turn off extensions temporarily. They can interfere with your page behavior or DevTools.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Common Mistakes Developers Make with Extensions
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Installing too many at once.&lt;/strong&gt; It feels like setting up a great toolkit, but ten extensions running simultaneously is a real performance hit. Install one, use it for a week, then add another.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ignoring extension permissions.&lt;/strong&gt; Many developers click "Add to Chrome" without reading what access the extension is requesting. Always check. A suspicious extension with broad permissions is a real security concern.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forgetting to use Lighthouse.&lt;/strong&gt; This one is already in DevTools and most developers never touch it. If you are building for production, use it. The accessibility and performance insights alone are worth it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Relying on extensions instead of learning DevTools.&lt;/strong&gt; Extensions are helpers, not replacements. Knowing Chrome DevTools deeply is a core developer skill. Extensions just make certain parts of that faster.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Your browser is one of your most important work environments. A few well-chosen extensions can turn it from a basic tool into a genuinely powerful developer workspace.&lt;/p&gt;

&lt;p&gt;To recap the five worth installing:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;React Developer Tools&lt;/strong&gt; — for debugging React apps properly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WhatFont&lt;/strong&gt; — for identifying any font instantly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JSON Viewer&lt;/strong&gt; — for reading API responses without pain&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ColorZilla&lt;/strong&gt; — for picking exact colors from anywhere&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lighthouse&lt;/strong&gt; — for auditing performance and accessibility before you ship&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;None of these are flashy. They are just practical, reliable, and time-saving. That is exactly the kind of tool that stays in your browser for years.&lt;/p&gt;

&lt;p&gt;If this was useful, share it with a developer friend who is still wrestling with raw JSON in their browser tab 😄. And for more practical developer content like this, check out &lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt; — there is plenty more where this came from.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>javascript</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Why Most Developers Love Dark Mode (And It's Not Just a Vibe)</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Sat, 09 May 2026 10:45:22 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/why-most-developers-love-dark-mode-and-its-not-just-a-vibe-3no6</link>
      <guid>https://dev.to/hamidrazadev/why-most-developers-love-dark-mode-and-its-not-just-a-vibe-3no6</guid>
      <description>&lt;p&gt;You open your laptop at 11 PM to fix "just one bug." The screen blasts you with a wall of white light. Your eyes feel like they're being interrogated. Sound familiar? 😅&lt;/p&gt;

&lt;p&gt;Dark mode has quietly become the unofficial uniform of the developer world. Open any code editor, terminal, browser dev tool, or GitHub repo — chances are it's dressed in dark. But why exactly? Is it just aesthetic? Is it a productivity thing? Or are developers just wired to love the night?&lt;/p&gt;

&lt;p&gt;Let's dig into the real reasons why most developers swear by dark mode, and whether it actually deserves all the love it gets.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Dark Mode?
&lt;/h2&gt;

&lt;p&gt;Dark mode is a display setting that flips the default color scheme of an interface. Instead of dark text on a white background, you get light text on a dark (usually near-black or deep gray) background.&lt;/p&gt;

&lt;p&gt;It's available in almost every modern OS, browser, app, and code editor today — from VS Code and JetBrains IDEs to GitHub, Twitter, Discord, and even Google Docs.&lt;/p&gt;

&lt;p&gt;Think of it like switching from a fluorescent office room to a cozy desk lamp setup. Same work. Very different vibe — and for many, very different comfort.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Dark Mode Matters for Developers
&lt;/h2&gt;

&lt;p&gt;Developers don't just stare at screens occasionally. They stare at screens &lt;em&gt;all day&lt;/em&gt;. Sometimes all night too.&lt;/p&gt;

&lt;p&gt;When your job involves reading thousands of lines of code, debugging complex logic, and switching between dozens of tabs — how your screen looks isn't a minor detail. It directly affects how long you can work comfortably, how quickly your eyes tire, and even how focused you feel.&lt;/p&gt;

&lt;p&gt;That's exactly why dark mode isn't just a trend for developers. For many, it's a genuine quality-of-life upgrade.&lt;/p&gt;




&lt;h2&gt;
  
  
  Real Reasons Developers Love Dark Mode
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. 🔧 It Reduces Eye Strain During Long Sessions
&lt;/h3&gt;

&lt;p&gt;This is the big one. Staring at a bright white screen for 8+ hours is genuinely tiring. Dark mode reduces the overall amount of light your screen emits, which can reduce the strain on your eyes — especially in dim or nighttime environments.&lt;/p&gt;

&lt;p&gt;It's not a magic cure, but many developers notice real relief after switching. Fewer headaches. Less of that burning sensation by 6 PM.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. 💡 Code Just Looks Better on Dark Backgrounds
&lt;/h3&gt;

&lt;p&gt;Syntax highlighting — the colorful way editors display different parts of your code — pops brilliantly against dark backgrounds. Keywords in blue, strings in green, comments in gray — they stand out clearly and make code much easier to scan.&lt;/p&gt;

&lt;p&gt;On a white background, those same colors feel flatter and harder to distinguish at a glance. If you want your code to feel alive, dark mode is where syntax highlighting truly shines.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. 🌙 It Matches the Developer's Natural Habitat
&lt;/h3&gt;

&lt;p&gt;Developers often work late. Deadlines don't care about time zones. When everyone else is asleep and you're still pushing commits, a pitch-black terminal on a black background feels less aggressive on your environment — and on your mood.&lt;/p&gt;

&lt;p&gt;Dark mode also reduces how much light your screen throws into the room, which is genuinely considerate if you're sharing a space with someone sleeping nearby.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. ⚡ It Saves Battery on OLED and AMOLED Screens
&lt;/h3&gt;

&lt;p&gt;On OLED and AMOLED displays — which are common on modern laptops and phones — true black pixels are literally turned off. Dark mode means fewer lit pixels, which means less power consumption.&lt;/p&gt;

&lt;p&gt;For developers who code on their laptops without a charger, dark mode can genuinely squeeze extra time out of a battery. Practical and stylish.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. 👀 It Creates a Focused, Distraction-Free Atmosphere
&lt;/h3&gt;

&lt;p&gt;There's a psychological side too. A dark interface naturally draws your attention toward the content — the code, the text, the task at hand — rather than the white space around it.&lt;/p&gt;

&lt;p&gt;Many developers describe dark mode as creating a sort of "tunnel vision" that helps them stay focused. It's the coding equivalent of noise-canceling headphones.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. 🚀 It Looks Professional and Clean
&lt;/h3&gt;

&lt;p&gt;Let's be honest — dark mode just looks good. There's a reason tech companies, dev tools, and portfolio sites often default to dark themes. It signals sophistication, technical seriousness, and modern design taste.&lt;/p&gt;

&lt;p&gt;If you're screensharing your code in a presentation or live streaming your workflow, a dark IDE immediately looks polished. First impressions matter, even in code.&lt;/p&gt;




&lt;h2&gt;
  
  
  Dark Mode vs Light Mode: A Balanced Look
&lt;/h2&gt;

&lt;p&gt;This is one of those debates where both sides have real points. Here's an honest breakdown:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Better Choice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Long coding sessions at night&lt;/td&gt;
&lt;td&gt;Dark Mode ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reading long documentation&lt;/td&gt;
&lt;td&gt;Light Mode ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Working in a bright room or sunlight&lt;/td&gt;
&lt;td&gt;Light Mode ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Working in a dim room or late hours&lt;/td&gt;
&lt;td&gt;Dark Mode ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OLED laptop on battery&lt;/td&gt;
&lt;td&gt;Dark Mode ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Users with certain visual impairments&lt;/td&gt;
&lt;td&gt;Light Mode ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screensharing code in presentations&lt;/td&gt;
&lt;td&gt;Dark Mode ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Proofreading written content&lt;/td&gt;
&lt;td&gt;Light Mode ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The honest truth? &lt;strong&gt;Neither is universally superior.&lt;/strong&gt; Dark mode wins in low-light coding environments. Light mode often wins for reading heavy text in bright conditions. Many experienced developers actually toggle between the two depending on context.&lt;/p&gt;




&lt;h2&gt;
  
  
  Best Tips for Dark Mode Users
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Choose your dark theme carefully.&lt;/strong&gt; Pure pitch black (&lt;code&gt;#000000&lt;/code&gt;) can actually create too much contrast with white text. Deep dark grays like &lt;code&gt;#1a1a2e&lt;/code&gt; or &lt;code&gt;#121212&lt;/code&gt; are often easier on the eyes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Match your terminal, editor, and browser&lt;/strong&gt; to the same dark theme family for a consistent, less jarring experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a good font.&lt;/strong&gt; On dark backgrounds, fonts like JetBrains Mono, Fira Code, or Cascadia Code are legible and look clean.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable OS-level dark mode&lt;/strong&gt; so your apps and system UI stay consistent, not just your IDE.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't go full dark mode everywhere without thinking.&lt;/strong&gt; Some apps just aren't optimized for it and end up looking weird or broken.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adjust your screen brightness.&lt;/strong&gt; Dark mode doesn't mean you need max brightness. Tone it down — your eyes will thank you.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Common Mistakes Developers Make With Dark Mode
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Picking a theme that's all contrast, no comfort.&lt;/strong&gt;&lt;br&gt;
Maximum black with maximum white text looks sharp for screenshots but is brutal for 4-hour sessions. Find a theme that balances contrast with warmth. Popular ones like One Dark Pro, Dracula, and Tokyo Night are popular for a reason — they've been tuned over time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ignoring external lighting.&lt;/strong&gt;&lt;br&gt;
Dark mode helps most in low-light rooms. If you're working in a bright office, dark mode can actually make the screen harder to read because the ambient light creates glare on a dark surface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Assuming dark mode fixes all eye strain.&lt;/strong&gt;&lt;br&gt;
Dark mode helps, but it doesn't replace proper habits. Take screen breaks. Follow the 20-20-20 rule (every 20 minutes, look at something 20 feet away for 20 seconds). Blink. Adjust your monitor height. No color scheme fixes poor ergonomics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forcing dark mode on every site using browser extensions.&lt;/strong&gt;&lt;br&gt;
Some websites are genuinely not built for dark mode. Forcing it can invert images, make colors muddy, or break layouts. Use it where it works natively when possible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Never trying light mode again.&lt;/strong&gt;&lt;br&gt;
If you've been on dark mode for years and always feel like reading documentation is painful — try switching to a clean light theme for a week. Sometimes the brain just needs a different kind of contrast for reading-heavy work.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Dark mode isn't just aesthetic rebellion or developer fashion. For many developers, it's a genuine comfort upgrade that reduces eye strain, extends battery life, improves focus, and makes code easier to read — especially during those long late-night sessions that are basically a rite of passage in this profession.&lt;/p&gt;

&lt;p&gt;That said, it's not a one-size-fits-all solution. Knowing when to use dark mode and when to switch is the real skill. The best developers stay flexible and optimize their environment for actual comfort, not just looks.&lt;/p&gt;

&lt;p&gt;If you're not on dark mode yet, give it a serious two-week trial with a well-designed theme like Dracula or One Dark Pro. If you are on dark mode — welcome to the club. You're in good company. 🌙&lt;/p&gt;




&lt;p&gt;Want to read more practical developer content like this? Head over to &lt;strong&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;&lt;/strong&gt; for more articles, tips, and tutorials built for real developers.&lt;/p&gt;

&lt;p&gt;If this post helped you or made you think differently about your setup, share it with a dev friend who's still squinting at a white screen. 😊&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
    <item>
      <title>What Is a CMS? A Friendly Guide for Beginners and Developers 🚀</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Wed, 06 May 2026 10:52:03 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/what-is-a-cms-a-friendly-guide-for-beginners-and-developers-ioh</link>
      <guid>https://dev.to/hamidrazadev/what-is-a-cms-a-friendly-guide-for-beginners-and-developers-ioh</guid>
      <description>&lt;p&gt;Ever tried updating a small typo on a website by editing raw HTML, and ended up breaking the entire layout? 😅 If yes, welcome to the club. That tiny moment of panic is exactly why CMS platforms exist.&lt;/p&gt;

&lt;p&gt;Today, websites are everywhere — blogs, online stores, school portals, news sites, portfolios. But not everyone wants to write code every time they need to add a blog post or update a banner. That's where a &lt;strong&gt;CMS&lt;/strong&gt; quietly saves the day.&lt;/p&gt;

&lt;p&gt;So let's break it down in plain English: what is a CMS, why do developers and non-developers love it, and when should you actually use one?&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is a CMS?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;CMS&lt;/strong&gt; stands for &lt;strong&gt;Content Management System&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In simple words, a CMS is a software tool that helps you create, edit, organize, and publish content on a website — without needing to write code for every single change.&lt;/p&gt;

&lt;p&gt;Think of it like Google Docs, but for your website. You log in, type your content, click publish, and it appears online. The CMS handles the boring technical parts behind the scenes — storing your text, managing images, organizing pages, and showing them to visitors.&lt;/p&gt;

&lt;p&gt;A quick analogy for younger readers: imagine a school notice board. The principal doesn't rebuild the board every time there's a new notice. They just pin a new paper on it. A CMS is that notice board for your website. 📌&lt;/p&gt;

&lt;p&gt;Popular examples you may have heard of include &lt;strong&gt;WordPress&lt;/strong&gt;, &lt;strong&gt;Drupal&lt;/strong&gt;, &lt;strong&gt;Joomla&lt;/strong&gt;, &lt;strong&gt;Ghost&lt;/strong&gt;, &lt;strong&gt;Strapi&lt;/strong&gt;, &lt;strong&gt;Contentful&lt;/strong&gt;, and &lt;strong&gt;Sanity&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why a CMS Matters
&lt;/h2&gt;

&lt;p&gt;Here's the honest truth: most website owners are not developers. They are writers, teachers, shop owners, marketers, and small business folks who just want their content online.&lt;/p&gt;

&lt;p&gt;A CMS matters because it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lets non-technical people manage a website on their own.&lt;/li&gt;
&lt;li&gt;Saves developers from updating content manually every week.&lt;/li&gt;
&lt;li&gt;Speeds up website building since common features (login, comments, media library) come built-in.&lt;/li&gt;
&lt;li&gt;Keeps content organized in one place so nothing gets lost.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're a developer, a CMS frees you to focus on the fun parts — design, performance, custom features — instead of pushing tiny content updates for clients at midnight.&lt;/p&gt;

&lt;p&gt;And if you're a beginner learning web development, understanding CMS concepts is a huge career booster. A massive part of the web runs on CMS platforms, especially WordPress.&lt;/p&gt;




&lt;h2&gt;
  
  
  Benefits of Using a CMS (with Real Examples)
&lt;/h2&gt;

&lt;p&gt;Here are the real, practical benefits — not just buzzwords:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No coding for everyday updates&lt;/strong&gt; 💡&lt;br&gt;&lt;br&gt;
Example: A bakery owner can add a new cake to the menu without calling a developer. They just log in, upload a photo, type the price, and click publish.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Built-in user roles&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Example: On a news website, editors can write articles, but only the admin can publish them. A CMS handles these permissions out of the box.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Media management made easy&lt;/strong&gt; 🖼️&lt;br&gt;&lt;br&gt;
Example: Uploading 50 product images becomes a drag-and-drop task instead of an FTP nightmare.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Templates and themes&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Example: A student building a portfolio can pick a clean theme in WordPress and have a working site in an afternoon.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Plugins and extensions&lt;/strong&gt; 🔧&lt;br&gt;&lt;br&gt;
Example: Want a contact form, SEO tools, or an online shop? Install a plugin instead of building it from scratch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SEO-friendly structure&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Example: Most CMS platforms generate clean URLs, sitemaps, and meta tags automatically, which helps your content show up on Google.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scales with your needs&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Example: A personal blog can grow into a full magazine or e-commerce store without rebuilding the whole site.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  Traditional CMS vs Headless CMS (Quick Comparison)
&lt;/h2&gt;

&lt;p&gt;This is one comparison that genuinely helps, especially for developers.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traditional CMS&lt;/strong&gt; (like WordPress)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Frontend and backend are tightly connected.&lt;/li&gt;
&lt;li&gt;Easier to set up for non-developers.&lt;/li&gt;
&lt;li&gt;Great for blogs, small business sites, and portfolios.&lt;/li&gt;
&lt;li&gt;Less flexible if you want to use modern frameworks like React or Next.js directly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Headless CMS&lt;/strong&gt; (like Strapi, Sanity, Contentful)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Only handles the backend (the content).&lt;/li&gt;
&lt;li&gt;You build the frontend with any framework you like.&lt;/li&gt;
&lt;li&gt;Perfect for apps, multi-platform projects (web + mobile), and modern stacks.&lt;/li&gt;
&lt;li&gt;Requires more developer involvement to set up.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Easy rule of thumb:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
If your client just wants a website, a traditional CMS is usually enough. If you're building a custom app or delivering content to multiple platforms, go headless. ⚡&lt;/p&gt;




&lt;h2&gt;
  
  
  Best Tips: Do's and Don'ts
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do's ✅&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pick a CMS that matches your project's size. Don't use a hammer for a thumbtack.&lt;/li&gt;
&lt;li&gt;Keep your CMS and plugins updated to avoid security issues.&lt;/li&gt;
&lt;li&gt;Take regular backups. Future-you will thank present-you.&lt;/li&gt;
&lt;li&gt;Use strong passwords and two-factor authentication for admin accounts.&lt;/li&gt;
&lt;li&gt;Learn the basics of how the CMS stores data — it helps when something breaks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Don'ts ❌&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't install dozens of plugins "just in case." Each one adds weight and risk.&lt;/li&gt;
&lt;li&gt;Don't edit core CMS files directly. Updates will overwrite your changes.&lt;/li&gt;
&lt;li&gt;Don't ignore performance. A slow CMS site loses visitors fast.&lt;/li&gt;
&lt;li&gt;Don't pick a CMS just because it's trendy. Pick one that fits the project.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Common Mistakes People Make
&lt;/h2&gt;

&lt;p&gt;Even experienced developers slip up here. A few mistakes I see often:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Choosing the wrong CMS.&lt;/strong&gt; People grab WordPress for everything, even when a static site generator or headless CMS would be simpler and faster.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Skipping security basics.&lt;/strong&gt; Default admin usernames, weak passwords, and outdated plugins are an open invitation for attackers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overloading the site with plugins.&lt;/strong&gt; Each plugin is extra code running on your site. Too many plugins = slow site + more bugs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forgetting backups.&lt;/strong&gt; One bad update can wipe out months of work. Backups are not optional.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ignoring the editor experience.&lt;/strong&gt; If your client struggles to add a blog post, the CMS setup failed — no matter how clean your code is.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These mistakes happen because CMS platforms feel "easy" at first, so people skip the planning step. A few minutes of thinking ahead saves days of fixing later.&lt;/p&gt;




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

&lt;p&gt;A CMS is simply a tool that makes managing website content easier for everyone — from a teenager starting their first blog to a full development team running a global news platform.&lt;/p&gt;

&lt;p&gt;If you're a beginner, start with something like WordPress to feel the magic of publishing without coding. If you're a developer, explore headless CMS options to combine clean backends with modern frontends. Either way, you're learning a skill the web genuinely runs on. 🌍&lt;/p&gt;

&lt;p&gt;If this guide helped clear things up, share it with a friend who's still scared of editing their website. And if you enjoyed the writing style, you'll find more friendly developer guides on &lt;strong&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Drop a comment with the CMS you use — I'm always curious to hear what works for other devs. 😊&lt;/p&gt;

&lt;p&gt;Happy building!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>productivity</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
