<?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.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>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>
    <item>
      <title>Why DNS Was Introduced and How It Replaced Raw IP Addresses</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Tue, 05 May 2026 08:57:35 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/why-dns-was-introduced-and-how-it-replaced-raw-ip-addresses-3h0j</link>
      <guid>https://dev.to/hamidrazadev/why-dns-was-introduced-and-how-it-replaced-raw-ip-addresses-3h0j</guid>
      <description>&lt;p&gt;Have you ever wondered what actually happens when you type &lt;code&gt;google.com&lt;/code&gt; into your browser and press Enter? 🤔&lt;/p&gt;

&lt;p&gt;Behind the scenes, a quiet but brilliant system kicks into action — one that most people use thousands of times a day without ever thinking about it. That system is &lt;strong&gt;DNS&lt;/strong&gt;, the Domain Name System.&lt;/p&gt;

&lt;p&gt;Before DNS existed, accessing a website meant memorizing long strings of numbers. We're talking things like &lt;code&gt;192.168.1.1&lt;/code&gt; but for every single website on the internet. Sounds exhausting, right?&lt;/p&gt;

&lt;p&gt;This post explains why DNS was introduced, how it replaced raw IP addresses, and why understanding it makes you a sharper developer, a better debugger, and honestly just a more informed person on the internet.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is an IP Address?
&lt;/h2&gt;

&lt;p&gt;Before we can appreciate DNS, we need to understand what it replaced.&lt;/p&gt;

&lt;p&gt;Every device connected to the internet — your laptop, your phone, the server hosting your favorite website — has an &lt;strong&gt;IP address&lt;/strong&gt;. Think of it like a home address. If you want to send a letter, you need to know where the house is. If your browser wants to load a website, it needs to know the server's address.&lt;/p&gt;

&lt;p&gt;An IPv4 address looks like this: &lt;code&gt;142.250.190.78&lt;/code&gt;&lt;br&gt;
An IPv6 address looks like this: &lt;code&gt;2607:f8b0:4004:c09::64&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;These numbers are how machines identify and talk to each other. Accurate? Yes. Human-friendly? Absolutely not.&lt;/p&gt;


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

&lt;p&gt;&lt;strong&gt;DNS stands for Domain Name System.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It is essentially the internet's phonebook. Instead of memorizing a number, you remember a name — like &lt;code&gt;google.com&lt;/code&gt; or &lt;code&gt;github.com&lt;/code&gt; — and DNS quietly translates that name into the correct IP address behind the scenes.&lt;/p&gt;

&lt;p&gt;Here is a simple analogy. Imagine you want to call your friend Ayesha. You don't memorize her phone number. You just search "Ayesha" in your contacts and your phone finds the number for you. DNS does exactly that — but for websites.&lt;/p&gt;

&lt;p&gt;You type a human-friendly name → DNS finds the IP address → your browser connects to the right server.&lt;/p&gt;

&lt;p&gt;Simple. Elegant. And completely invisible when it works correctly.&lt;/p&gt;


&lt;h2&gt;
  
  
  Why Was DNS Introduced? The Real Story
&lt;/h2&gt;

&lt;p&gt;DNS did not appear out of nowhere. It was born out of a very real and growing problem.&lt;/p&gt;
&lt;h3&gt;
  
  
  The Early Internet and the HOSTS.TXT File
&lt;/h3&gt;

&lt;p&gt;In the early days of the internet (the ARPANET era, late 1960s to early 1980s), the network was tiny. There were only a few hundred computers connected to it — mostly at universities and research labs.&lt;/p&gt;

&lt;p&gt;Back then, every computer had a file called &lt;code&gt;HOSTS.TXT&lt;/code&gt;. This plain text file listed every hostname and its matching IP address on the entire network.&lt;/p&gt;

&lt;p&gt;It looked something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;192.0.0.1    stanford
192.0.0.2    mit
192.0.0.3    ucla
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you wanted to connect to another machine, your computer looked up the name in this file and got the IP. Simple enough — when the internet was small.&lt;/p&gt;

&lt;p&gt;There was one central copy of &lt;code&gt;HOSTS.TXT&lt;/code&gt; maintained by Stanford Research Institute. Every network connected to ARPANET would download this file periodically to stay updated.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem That Made HOSTS.TXT Impossible to Scale
&lt;/h3&gt;

&lt;p&gt;As the internet grew through the late 1970s and early 1980s, this system started to break down fast. Here is why:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The file grew too large.&lt;/strong&gt; With hundreds and then thousands of machines, HOSTS.TXT became huge and slow to process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Updates were too slow.&lt;/strong&gt; It took days for changes to spread across the network. New hostnames would not appear immediately everywhere.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Name conflicts were a nightmare.&lt;/strong&gt; Two organizations might register the same hostname because there was no central authority to prevent it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bandwidth was being wasted.&lt;/strong&gt; Every machine had to download the full file constantly to stay current.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human memory still had limits.&lt;/strong&gt; Even with the file doing the lookup, administrators had to manage it manually.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The internet was growing, and HOSTS.TXT simply could not keep up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Enter Paul Mockapetris
&lt;/h3&gt;

&lt;p&gt;In &lt;strong&gt;1983&lt;/strong&gt;, computer scientist &lt;strong&gt;Paul Mockapetris&lt;/strong&gt; designed and published the DNS specification in &lt;strong&gt;RFC 882 and RFC 883&lt;/strong&gt;. His solution was both smart and scalable.&lt;/p&gt;

&lt;p&gt;Instead of one giant file maintained in one place, DNS would be a &lt;strong&gt;distributed, hierarchical database&lt;/strong&gt; spread across thousands of servers around the world. No single server would know everything. But together, they would be able to answer any hostname query on the planet.&lt;/p&gt;

&lt;p&gt;This was the turning point. DNS replaced HOSTS.TXT, and it has been running the internet ever since.&lt;/p&gt;




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

&lt;p&gt;You might be thinking, "Okay, interesting history — but why should I care as a developer?"&lt;/p&gt;

&lt;p&gt;Fair question. Here is why DNS knowledge is actually useful day-to-day:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Debugging Network Issues
&lt;/h3&gt;

&lt;p&gt;When your app cannot connect to an external API or your domain is not loading, DNS is often the first thing to check. Understanding how DNS works helps you debug faster instead of staring blankly at a timeout error.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Deploying Apps and Configuring Domains
&lt;/h3&gt;

&lt;p&gt;When you deploy a Next.js app to Vercel or a server on DigitalOcean, you always have to update DNS records — &lt;code&gt;A records&lt;/code&gt;, &lt;code&gt;CNAME records&lt;/code&gt;, &lt;code&gt;TXT records&lt;/code&gt;. Knowing what these mean saves you hours of confusion.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Setting Up Email
&lt;/h3&gt;

&lt;p&gt;Configuring a custom email domain requires DNS records like &lt;code&gt;MX&lt;/code&gt; and &lt;code&gt;SPF&lt;/code&gt;. Without understanding DNS basics, this feels like dark magic.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Performance and Caching
&lt;/h3&gt;

&lt;p&gt;DNS responses are cached for a period defined by &lt;strong&gt;TTL (Time to Live)&lt;/strong&gt;. If you update a DNS record and it does not take effect immediately, that is TTL doing its job. Knowing this prevents unnecessary panic.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Security
&lt;/h3&gt;

&lt;p&gt;DNS-based attacks like &lt;strong&gt;DNS spoofing&lt;/strong&gt; and &lt;strong&gt;DNS hijacking&lt;/strong&gt; are real threats. Developers and sysadmins who understand DNS are better equipped to protect their infrastructure.&lt;/p&gt;




&lt;h2&gt;
  
  
  How DNS Actually Works: A Step-by-Step Breakdown
&lt;/h2&gt;

&lt;p&gt;Let's trace what happens when you type &lt;code&gt;hamidrazadev.com&lt;/code&gt; into your browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1 — Check the local cache&lt;/strong&gt;&lt;br&gt;
Your browser first checks if it has recently resolved this domain. If yes, it uses the cached IP and skips the rest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2 — Ask the Recursive Resolver&lt;/strong&gt;&lt;br&gt;
If not cached, your device contacts a &lt;strong&gt;recursive resolver&lt;/strong&gt; — usually provided by your ISP or a public DNS service like &lt;code&gt;8.8.8.8&lt;/code&gt; (Google) or &lt;code&gt;1.1.1.1&lt;/code&gt; (Cloudflare).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 3 — Ask the Root Name Server&lt;/strong&gt;&lt;br&gt;
The resolver asks a &lt;strong&gt;Root Name Server&lt;/strong&gt; where to find information about &lt;code&gt;.com&lt;/code&gt; domains. There are 13 root server clusters around the world (operated by organizations like ICANN, NASA, and Verisign).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 4 — Ask the TLD Name Server&lt;/strong&gt;&lt;br&gt;
The root server points the resolver to the &lt;strong&gt;TLD (Top-Level Domain) Name Server&lt;/strong&gt; responsible for &lt;code&gt;.com&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 5 — Ask the Authoritative Name Server&lt;/strong&gt;&lt;br&gt;
The TLD server points to the &lt;strong&gt;Authoritative Name Server&lt;/strong&gt; for &lt;code&gt;hamidrazadev.com&lt;/code&gt; specifically — this is the server that actually knows the IP address.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 6 — Get the IP address&lt;/strong&gt;&lt;br&gt;
The authoritative server returns the IP address. The resolver caches it and sends it to your browser.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 7 — Your browser connects&lt;/strong&gt;&lt;br&gt;
Your browser now has the IP address and makes a request to the server. The website loads. 🚀&lt;/p&gt;

&lt;p&gt;This entire process typically completes in &lt;strong&gt;milliseconds&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  DNS vs. Raw IP Addresses: A 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;Raw IP Address&lt;/th&gt;
&lt;th&gt;DNS&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Human-readable&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Easy to remember&lt;/td&gt;
&lt;td&gt;❌ Very hard&lt;/td&gt;
&lt;td&gt;✅ Simple names&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scales with internet growth&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Distributed system&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supports changes&lt;/td&gt;
&lt;td&gt;❌ Hard to update&lt;/td&gt;
&lt;td&gt;✅ Update DNS records anytime&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Required for email/SSL setup&lt;/td&gt;
&lt;td&gt;❌ Insufficient&lt;/td&gt;
&lt;td&gt;✅ Essential&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Using raw IPs still works in certain scenarios — like internal networks or hardcoded server calls. But for public-facing services, DNS is non-negotiable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Common DNS Record Types You Should Know
&lt;/h2&gt;

&lt;p&gt;Here is a quick reference for the records developers deal with most often:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A Record&lt;/strong&gt; — Maps a domain to an IPv4 address. This is the most common record.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AAAA Record&lt;/strong&gt; — Maps a domain to an IPv6 address.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CNAME Record&lt;/strong&gt; — Points one domain to another domain (alias). Used a lot in Vercel and Netlify deployments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MX Record&lt;/strong&gt; — Specifies the mail server for a domain. Needed for email.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TXT Record&lt;/strong&gt; — Stores arbitrary text. Used for domain verification and SPF/DKIM email authentication.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NS Record&lt;/strong&gt; — Identifies which name servers are authoritative for a domain.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Best Tips for Working with DNS
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;✅ Do's&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Lower your TTL before making changes.&lt;/strong&gt; Before you update a DNS record, lower the TTL to something like 300 seconds (5 minutes). This makes changes propagate faster. Once stable, you can raise it back.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a reliable DNS provider.&lt;/strong&gt; Cloudflare DNS (&lt;code&gt;1.1.1.1&lt;/code&gt;) and Google DNS (&lt;code&gt;8.8.8.8&lt;/code&gt;) are fast and trustworthy for resolvers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use &lt;code&gt;nslookup&lt;/code&gt; or &lt;code&gt;dig&lt;/code&gt; to debug.&lt;/strong&gt; These command-line tools let you query DNS directly and are invaluable for troubleshooting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document your DNS records.&lt;/strong&gt; Keep a simple spreadsheet or note of what each record does. Future-you will thank present-you.&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;
&lt;strong&gt;Don't expect instant propagation.&lt;/strong&gt; DNS changes take time to spread globally — sometimes minutes, sometimes up to 48 hours depending on TTL values.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't delete records without checking dependencies.&lt;/strong&gt; Removing an &lt;code&gt;MX record&lt;/code&gt; will break your email. Removing a &lt;code&gt;CNAME&lt;/code&gt; might break your subdomain.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't rely on IP addresses directly in production configs.&lt;/strong&gt; If the server IP changes (which happens), you will have to update every hardcoded reference. Use domain names instead.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  Mistake 1: Panicking when changes don't apply immediately
&lt;/h3&gt;

&lt;p&gt;DNS propagation is not instant. When you update a record and it doesn't work right away, that's normal. Wait for the TTL to expire. Use tools like &lt;a href="https://www.whatsmydns.net" rel="noopener noreferrer"&gt;whatsmydns.net&lt;/a&gt; to track propagation globally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 2: Forgetting to renew a domain
&lt;/h3&gt;

&lt;p&gt;Your domain is registered, not owned forever. When it expires, your DNS stops working and someone else can register it. Set auto-renewal and use a real email for domain alerts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 3: Confusing CNAME and A records
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;CNAME&lt;/strong&gt; points to another domain name. An &lt;strong&gt;A record&lt;/strong&gt; points to an IP address. Using a CNAME where an A record is needed (or vice versa) is a classic setup mistake that causes hours of confusion.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 4: Setting TTL too high during migration
&lt;/h3&gt;

&lt;p&gt;If you are moving a website to a new server and your TTL is set to 86400 (24 hours), visitors may keep hitting the old server for an entire day. Always lower TTL in advance before migrations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mistake 5: Not testing locally before going live
&lt;/h3&gt;

&lt;p&gt;Use &lt;code&gt;dig&lt;/code&gt; or &lt;code&gt;nslookup&lt;/code&gt; to confirm your DNS is pointing where you think it is before announcing a new deployment to the world.&lt;/p&gt;




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

&lt;p&gt;DNS is one of those technologies that works so silently and reliably that most people forget it exists — until it breaks. 😄&lt;/p&gt;

&lt;p&gt;What started as a simple text file on a handful of computers in the early internet became a distributed, global system that handles billions of queries every single day. It replaced raw IP addresses not by eliminating them, but by making them invisible to humans — and that invisibility is the point.&lt;/p&gt;

&lt;p&gt;For developers, understanding DNS is not just academic knowledge. It is a practical skill that shows up in deployments, debugging sessions, email setups, domain migrations, and security decisions. The more comfortable you are with it, the less mysterious the internet becomes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The big takeaway:&lt;/strong&gt; IP addresses are how machines talk. DNS is how humans stay sane while that's happening.&lt;/p&gt;




&lt;p&gt;If you found this post helpful, feel free to share it with a fellow developer or student who is just starting to explore how the internet works. 😊&lt;/p&gt;

&lt;p&gt;For more developer content, tutorials, and deep dives like this one, visit &lt;strong&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;&lt;/strong&gt; — new posts go up regularly and cover topics from frontend development to networking concepts like this one.&lt;/p&gt;

&lt;p&gt;Drop a comment if you have questions, or share this post if it cleared something up for you. Happy coding! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>networking</category>
      <category>devops</category>
      <category>beginners</category>
    </item>
    <item>
      <title>VS Code 1.118 Is Here — And It's All About Smarter Agents, Faster Code, and Less Token Waste</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Mon, 04 May 2026 13:42:55 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/vs-code-1118-is-here-and-its-all-about-smarter-agents-faster-code-and-less-token-waste-pj9</link>
      <guid>https://dev.to/hamidrazadev/vs-code-1118-is-here-and-its-all-about-smarter-agents-faster-code-and-less-token-waste-pj9</guid>
      <description>&lt;p&gt;You updated VS Code, glanced at the changelog, and thought, &lt;em&gt;"Cool, more Copilot stuff."&lt;/em&gt; Then you closed it and moved on.&lt;/p&gt;

&lt;p&gt;But wait — this release is actually worth a proper look. 👀&lt;/p&gt;

&lt;p&gt;VS Code &lt;strong&gt;1.118&lt;/strong&gt; (released April 29, 2026) is packed with features that genuinely change how you work with AI agents, search your codebase, manage chat history, and even keep your token usage from quietly draining your budget. Whether you're using Copilot daily or just exploring AI-assisted coding, there's something real here for you.&lt;/p&gt;

&lt;p&gt;So let's break it down in plain English — no corporate fluff, just the stuff that matters.&lt;/p&gt;




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

&lt;p&gt;VS Code 1.118 is the latest monthly release of Visual Studio Code — Microsoft's free, open-source code editor that millions of developers use every day.&lt;/p&gt;

&lt;p&gt;Each release ships new features, bug fixes, and improvements. This one focuses heavily on the &lt;strong&gt;agent experience&lt;/strong&gt;, which basically means making Copilot smarter, faster, and cheaper to run.&lt;/p&gt;

&lt;p&gt;If you're not familiar with agents: think of them as AI that doesn't just answer questions — they &lt;em&gt;act&lt;/em&gt;. They write code, run terminal commands, search your files, and loop through tasks until the job is done. This release makes all of that smoother and more efficient.&lt;/p&gt;




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

&lt;p&gt;Here's the honest truth: AI-assisted coding is no longer a gimmick. It's becoming part of the daily workflow for a lot of developers.&lt;/p&gt;

&lt;p&gt;But more AI usage means more tokens. More tokens means higher costs — especially now that GitHub announced Copilot is moving to &lt;strong&gt;usage-based billing on June 1, 2026&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;VS Code 1.118 directly addresses this. The team made serious engineering improvements to reduce how many tokens each request uses, without making Copilot worse. That's a meaningful change for anyone who relies on it.&lt;/p&gt;

&lt;p&gt;Beyond cost, this release also:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Makes it easier to search across massive codebases&lt;/li&gt;
&lt;li&gt;Lets you control Copilot sessions &lt;em&gt;remotely&lt;/em&gt;, from your phone&lt;/li&gt;
&lt;li&gt;Helps you revisit your chat history like a dev journal&lt;/li&gt;
&lt;li&gt;Brings TypeScript 7 one step closer to everyone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's not a small update. That's a solid month of real improvements.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features with Real-Life Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🚀 Remote Control for Copilot CLI Sessions
&lt;/h3&gt;

&lt;p&gt;Imagine you kick off a long agent task before lunch. While you're away, it hits a decision point and stops. Previously, you'd have to be back at your machine to continue.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;remote control&lt;/strong&gt;, you can approve, steer, or check progress from your phone using the GitHub mobile app — while the session keeps running on your machine in the background.&lt;/p&gt;

&lt;p&gt;Enable it with the &lt;code&gt;github.copilot.chat.cli.remote.enabled&lt;/code&gt; setting and type &lt;code&gt;/remote on&lt;/code&gt; in a Copilot CLI chat to get started.&lt;/p&gt;




&lt;h3&gt;
  
  
  🔍 Semantic Indexing for &lt;em&gt;All&lt;/em&gt; Workspaces
&lt;/h3&gt;

&lt;p&gt;Before 1.118, semantic search (which lets Copilot find code by &lt;em&gt;meaning&lt;/em&gt;, not just exact words) only worked with GitHub or Azure DevOps repos.&lt;/p&gt;

&lt;p&gt;Now it works for &lt;strong&gt;any workspace&lt;/strong&gt;. So if you ask Copilot "where do we handle user authentication?", it can find code with terms like &lt;code&gt;signIn&lt;/code&gt;, &lt;code&gt;verifyCredentials&lt;/code&gt;, or &lt;code&gt;OAuth token exchange&lt;/code&gt; — even if the word "authentication" never appears.&lt;/p&gt;

&lt;p&gt;For local projects, it might take a few minutes to build the index initially. But once it's ready, Copilot understands your codebase much better.&lt;/p&gt;




&lt;h3&gt;
  
  
  💡 GitHub Text Search Across Repos and Orgs
&lt;/h3&gt;

&lt;p&gt;Semantic search is great for fuzzy intent. But sometimes you need an &lt;strong&gt;exact match&lt;/strong&gt; — like finding a specific error message or API name across your entire organization's codebase.&lt;/p&gt;

&lt;p&gt;The new &lt;code&gt;githubTextSearch&lt;/code&gt; agent tool does a grep-style search across any GitHub repo or organization, giving Copilot a much sharper way to look things up outside your current workspace.&lt;/p&gt;




&lt;h3&gt;
  
  
  ⚡ Massive Token Efficiency Improvements
&lt;/h3&gt;

&lt;p&gt;This is the one that affects your wallet directly. The team rolled out several changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cache reuse across turns:&lt;/strong&gt; Over 93% of each request is now served from cache in active agent sessions. For Anthropic models, cached tokens cost roughly 10x less.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool search tool:&lt;/strong&gt; Instead of loading every possible tool schema on every request, VS Code now loads a small core set and fetches the rest only when needed. This alone saves up to &lt;strong&gt;20% in token usage&lt;/strong&gt; for Claude Sonnet 4.5+ users.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agentic search and execution tools:&lt;/strong&gt; Powered by smaller, cheaper models that handle specific tasks like codebase exploration and terminal commands. Early results show up to &lt;strong&gt;20% additional token savings&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;None of this changes how Copilot behaves — it just makes it cheaper to run.&lt;/p&gt;




&lt;h3&gt;
  
  
  📋 Chronicle — Your Chat History as a Dev Journal (Experimental)
&lt;/h3&gt;

&lt;p&gt;Ever tried to write a standup report and completely blanked on what you did yesterday?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Chronicle&lt;/strong&gt; tracks your Copilot chat sessions in a local SQLite database — recording which files you touched, which PRs you referenced, and what you were working on. Then you can ask it things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/chronicle:standup&lt;/code&gt; → Generates a standup report from the last 24 hours&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/chronicle:tips&lt;/code&gt; → Gives you personalized prompting tips based on your usage&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/chronicle what files did I edit yesterday?&lt;/code&gt; → Free-form natural language queries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enable it with &lt;code&gt;github.copilot.chat.localIndex.enabled&lt;/code&gt;. It's experimental, but genuinely useful.&lt;/p&gt;




&lt;h3&gt;
  
  
  🛠️ TypeScript 7.0 Beta Support
&lt;/h3&gt;

&lt;p&gt;TypeScript 7 is a full rewrite in native code. The performance difference is wild — VS Code's own build time dropped from &lt;strong&gt;60 seconds to 10 seconds&lt;/strong&gt; just by switching to TS 7 for type checking.&lt;/p&gt;

&lt;p&gt;You can try it today by installing the &lt;strong&gt;TypeScript Native preview extension&lt;/strong&gt;. It's still beta, so it's not for production, but it's worth testing.&lt;/p&gt;




&lt;h3&gt;
  
  
  🖥️ VS Code Agents App (Insiders)
&lt;/h3&gt;

&lt;p&gt;If you're on VS Code Insiders, the Agents app now integrates more tightly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch it directly from the title bar&lt;/li&gt;
&lt;li&gt;Access it from the browser at &lt;code&gt;insiders.vscode.dev/agents&lt;/code&gt; (requires a Dev Tunnel)&lt;/li&gt;
&lt;li&gt;Use the &lt;strong&gt;Claude Agent&lt;/strong&gt; alongside Copilot and other agents&lt;/li&gt;
&lt;li&gt;Tabs persist across sessions, so your browser doesn't refresh when you switch context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It's still in preview, but it's shaping up into a genuinely useful parallel workflow tool.&lt;/p&gt;




&lt;h2&gt;
  
  
  Before vs. After: How Token Usage Has Changed
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Area&lt;/th&gt;
&lt;th&gt;Before 1.118&lt;/th&gt;
&lt;th&gt;After 1.118&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cache reuse per request&lt;/td&gt;
&lt;td&gt;Variable&lt;/td&gt;
&lt;td&gt;93%+ in active sessions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tool schema loading&lt;/td&gt;
&lt;td&gt;All tools every turn&lt;/td&gt;
&lt;td&gt;Core set + on-demand loading&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Terminal command handling&lt;/td&gt;
&lt;td&gt;Main model&lt;/td&gt;
&lt;td&gt;Smaller, dedicated execution tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codebase search&lt;/td&gt;
&lt;td&gt;Main model&lt;/td&gt;
&lt;td&gt;Smaller, dedicated search tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated token savings&lt;/td&gt;
&lt;td&gt;Baseline&lt;/td&gt;
&lt;td&gt;Up to ~20-40% in agent workflows&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;This doesn't mean Copilot suddenly becomes free — but for heavy users, the cumulative difference will be noticeable.&lt;/p&gt;




&lt;h2&gt;
  
  
  Best Tips for Getting the Most Out of VS Code 1.118
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;Enable &lt;code&gt;github.copilot.chat.localIndex.enabled&lt;/code&gt; to try Chronicle — your future self will thank you at standup&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;Build Codebase semantic index&lt;/code&gt; manually if Copilot seems off on local projects&lt;/li&gt;
&lt;li&gt;Try &lt;code&gt;/remote on&lt;/code&gt; in Copilot CLI before leaving your desk for long agent tasks&lt;/li&gt;
&lt;li&gt;Install the TypeScript Native preview extension in a non-production project to test TS 7 performance&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;Expect remote control to work without enabling the &lt;code&gt;github.copilot.chat.cli.remote.enabled&lt;/code&gt; setting first&lt;/li&gt;
&lt;li&gt;Assume TS 7 is production-ready — it's still beta&lt;/li&gt;
&lt;li&gt;Ignore the Chronicle feature just because it's experimental; it's genuinely useful for tracking work&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;&lt;strong&gt;Skipping experimental features entirely.&lt;/strong&gt; A lot of the best stuff in 1.118 is behind experimental flags. That's not a warning sign — it's a chance to try genuinely useful features before they're stable. Just use them in non-critical projects first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Forgetting to build the semantic index.&lt;/strong&gt; If you're on a local workspace (not GitHub/ADO), Copilot won't have semantic search until the index is ready. Run the build command manually if you want it available right away.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ignoring the token efficiency changes.&lt;/strong&gt; If you're on a usage-based plan, these improvements aren't just nice to have — they affect your bill. Make sure you're on Claude Sonnet 4.5+ or GPT-5.4/5.5 to benefit from the tool search savings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Not checking for updates manually.&lt;/strong&gt; VS Code 1.118 is rolling out gradually. If you haven't seen it yet, go to &lt;strong&gt;Help → Check for Updates&lt;/strong&gt; to get it right away.&lt;/p&gt;




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

&lt;p&gt;VS Code 1.118 is a focused, well-executed release. It doesn't add flashy gimmicks — it makes the AI-assisted workflow more reliable, more efficient, and cheaper to run.&lt;/p&gt;

&lt;p&gt;Remote control for CLI sessions, semantic search everywhere, Chronicle for tracking your work, and serious token savings across the board — these are practical improvements that affect your daily workflow.&lt;/p&gt;

&lt;p&gt;If you're a developer who uses Copilot regularly, this update is worth enabling the experimental features and exploring properly.&lt;/p&gt;

&lt;p&gt;Check for the update, enable Chronicle, test the remote control — and enjoy paying a little less in token costs. 🎉&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Want more VS Code breakdowns, dev tools, and web development content? Head over to *&lt;/em&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;** for more practical articles written by a developer, for developers.*&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If this post saved you time or taught you something new, share it with your team or drop a comment below — it helps more than you know. 🙌&lt;/em&gt;&lt;/p&gt;

</description>
      <category>vscode</category>
      <category>typescript</category>
      <category>webdev</category>
      <category>ai</category>
    </item>
    <item>
      <title>WiFi vs Cellular Data: Why WiFi Often Wins for Daily Internet Use 🌐</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Mon, 04 May 2026 10:26:25 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/wifi-vs-cellular-data-why-wifi-often-wins-for-daily-internet-use-2g49</link>
      <guid>https://dev.to/hamidrazadev/wifi-vs-cellular-data-why-wifi-often-wins-for-daily-internet-use-2g49</guid>
      <description>&lt;p&gt;We've all been there. You're downloading a big update, watching a tutorial, or pushing code to GitHub, and suddenly your mobile data vanishes faster than free pizza at a developer meetup. 🍕&lt;/p&gt;

&lt;p&gt;Then you connect to WiFi, and everything just… works. Smoother. Faster. No panic about your data balance.&lt;/p&gt;

&lt;p&gt;But why does WiFi usually feel better than cellular data? Is it always the right choice? And when should you actually stick with mobile data instead?&lt;/p&gt;

&lt;p&gt;Let's break it down in simple words, without any tech-jargon overload. Ready to finally understand the difference?&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is WiFi and What Is Cellular Data?
&lt;/h2&gt;

&lt;p&gt;Before we compare them, let's keep things super simple.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;WiFi&lt;/strong&gt; is internet that comes from a nearby router. The router is connected to a wired internet line (fiber, cable, DSL, or similar), and it shares that connection wirelessly with devices around it, usually inside a home, office, café, or airport.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cellular data&lt;/strong&gt; is internet that comes from mobile network towers. Your SIM card connects your phone to those towers, and the tower sends data to your device through radio signals. This is what powers 3G, 4G LTE, and 5G.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;WiFi is like drinking water from a tap at home. 🚰&lt;/li&gt;
&lt;li&gt;Cellular data is like buying bottled water on the go. 💧&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Both give you water. But one is cheaper at home, and the other is convenient when you're traveling.&lt;/p&gt;




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

&lt;p&gt;Internet is no longer optional. It's how we learn, work, build apps, attend meetings, watch tutorials, and stay connected with people we care about.&lt;/p&gt;

&lt;p&gt;For developers and students, the choice between WiFi and cellular data affects:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How much money you spend each month&lt;/li&gt;
&lt;li&gt;How fast you can download tools, packages, and updates&lt;/li&gt;
&lt;li&gt;Whether your video calls freeze during a client demo&lt;/li&gt;
&lt;li&gt;How safely you connect to the internet&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A small choice, but a big impact on your daily routine.&lt;/p&gt;

&lt;p&gt;So the question is simple: &lt;strong&gt;why do most people prefer WiFi when it's available?&lt;/strong&gt; Let's get into the real reasons.&lt;/p&gt;




&lt;h2&gt;
  
  
  Benefits of WiFi Over Cellular Data (with Real-Life Examples)
&lt;/h2&gt;

&lt;p&gt;Here are the practical reasons WiFi often beats cellular data for most everyday tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Usually Cheaper for Heavy Use 💰
&lt;/h3&gt;

&lt;p&gt;Most home and office WiFi plans are unlimited or have very high data limits. Cellular plans, especially prepaid ones, often charge more per GB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Downloading a 5 GB Android Studio update on mobile data could eat your whole weekly package. On WiFi, it's just… a download.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Better for Large Downloads and Uploads
&lt;/h3&gt;

&lt;p&gt;Pushing a Docker image, cloning a big repo, or uploading video content? WiFi is usually more comfortable for that kind of work because routers are built to handle long, heavy sessions without throttling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; A YouTuber uploading a 4K video will almost always pick WiFi to avoid burning through their mobile data plan.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. More Stable for Video Calls and Meetings
&lt;/h3&gt;

&lt;p&gt;WiFi tends to give a steadier connection inside buildings where cellular signals can drop. If your office is on the 7th floor with thick walls, mobile signals might struggle, but the WiFi router right next to you won't.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; During a Zoom standup, WiFi often keeps your video sharp while cellular data can get jittery indoors.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Multiple Devices, One Connection
&lt;/h3&gt;

&lt;p&gt;A single WiFi router can serve your laptop, phone, tablet, smart TV, and even your smart bulb at the same time. With cellular data, every SIM is a separate plan (unless you use hotspot, which drains your phone battery fast).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; A family of four streaming, gaming, and working from home on a single WiFi plan is much cheaper than four separate mobile data plans.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. No Stress About Daily or Monthly Limits
&lt;/h3&gt;

&lt;p&gt;Many cellular packages have strict caps. Once you cross them, speed drops or extra charges kick in. Most home WiFi plans either don't have limits or have very generous ones.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Binge-watching a coding course on Udemy at night? WiFi handles it without sweat.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Often Faster Where Coverage Is Weak
&lt;/h3&gt;

&lt;p&gt;If you live in an area with weak mobile signal, WiFi (powered by a wired connection) can give you better speeds than cellular ever could in that location.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Better Battery Life
&lt;/h3&gt;

&lt;p&gt;This one surprises many people. Phones generally use &lt;strong&gt;less battery on WiFi than on cellular&lt;/strong&gt;, especially when the cellular signal is weak and the phone is constantly searching for a tower.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt; Ever notice your phone heats up and drains fast in low-signal areas? That's your phone working overtime to stay connected.&lt;/p&gt;




&lt;h2&gt;
  
  
  WiFi vs Cellular Data: A Quick Comparison
&lt;/h2&gt;

&lt;p&gt;Both have their place. Here's an honest, balanced look.&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;WiFi&lt;/th&gt;
&lt;th&gt;Cellular Data&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost for heavy use&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Usually cheaper&lt;/td&gt;
&lt;td&gt;Often more expensive per GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Mobility&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Works in a fixed area&lt;/td&gt;
&lt;td&gt;Works almost anywhere with signal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Speed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Depends on the router and plan&lt;/td&gt;
&lt;td&gt;Depends on tower, network, and location&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Stability indoors&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Generally better&lt;/td&gt;
&lt;td&gt;Can drop behind walls&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Setup needed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Router required&lt;/td&gt;
&lt;td&gt;Just a SIM and signal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Security&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Safer on private networks, risky on public ones&lt;/td&gt;
&lt;td&gt;Generally encrypted by the carrier&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Battery use&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Lower&lt;/td&gt;
&lt;td&gt;Higher, especially on weak signal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Best for&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Home, office, study, big downloads&lt;/td&gt;
&lt;td&gt;Travel, commute, emergencies, outdoors&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So WiFi isn't &lt;em&gt;always&lt;/em&gt; better. It's better &lt;strong&gt;for the right situation&lt;/strong&gt;, which is usually most of our day.&lt;/p&gt;




&lt;h2&gt;
  
  
  Pros and Cons in Plain Words
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Pros of WiFi
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cheaper for heavy and long usage&lt;/li&gt;
&lt;li&gt;More stable for indoor work&lt;/li&gt;
&lt;li&gt;Supports many devices at once&lt;/li&gt;
&lt;li&gt;Lower battery drain&lt;/li&gt;
&lt;li&gt;Great for big downloads and video calls&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons of WiFi
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Tied to one location (you can't take your home router to the park)&lt;/li&gt;
&lt;li&gt;Public WiFi can be unsafe without a VPN&lt;/li&gt;
&lt;li&gt;Needs hardware (router, modem) and setup&lt;/li&gt;
&lt;li&gt;If the router or internet line fails, the whole network goes down&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Pros of Cellular Data
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Works almost anywhere with signal&lt;/li&gt;
&lt;li&gt;No setup, just insert a SIM&lt;/li&gt;
&lt;li&gt;Good for travel, road trips, and outdoor work&lt;/li&gt;
&lt;li&gt;Useful as a backup when WiFi fails&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cons of Cellular Data
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Usually pricier per GB&lt;/li&gt;
&lt;li&gt;Speeds can drop during peak hours or in crowded areas&lt;/li&gt;
&lt;li&gt;Drains battery faster&lt;/li&gt;
&lt;li&gt;Hits data caps quickly with heavy usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The honest truth? Most people don't have to pick one. They use &lt;strong&gt;WiFi at home and work, and cellular data on the move&lt;/strong&gt;. That combo wins almost every time.&lt;/p&gt;




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

&lt;p&gt;A few habits I've personally found useful as a developer:&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Use WiFi for big tasks: OS updates, IDE downloads, package installs, Docker pulls, and Zoom calls.&lt;/li&gt;
&lt;li&gt;Keep mobile data on standby for when WiFi fails (which always happens 5 minutes before a deadline 😅).&lt;/li&gt;
&lt;li&gt;Use a &lt;strong&gt;VPN on public WiFi&lt;/strong&gt;, especially in airports, cafés, and hotels.&lt;/li&gt;
&lt;li&gt;Set "WiFi only" mode for app updates, cloud backups, and large media downloads.&lt;/li&gt;
&lt;li&gt;Restart your router every few weeks. It really does help.&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 log into banking or work accounts on &lt;strong&gt;open public WiFi&lt;/strong&gt; without a VPN.&lt;/li&gt;
&lt;li&gt;Don't waste mobile data on auto-playing videos. Turn off autoplay in YouTube, Instagram, and similar apps.&lt;/li&gt;
&lt;li&gt;Don't stand right next to the microwave while complaining about slow WiFi. (Yes, microwaves can interfere with 2.4 GHz networks.) 🔧&lt;/li&gt;
&lt;li&gt;Don't forget to turn off your hotspot. It silently drains your phone for hours.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Even tech-savvy folks slip up here. A few I see often:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Trusting any "Free WiFi" sign.&lt;/strong&gt;&lt;br&gt;
Free WiFi is great, but some networks are set up to capture data. If the network has no password and no login page from a known brand, be careful.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Forgetting that "Unlimited" isn't always unlimited.&lt;/strong&gt;&lt;br&gt;
Many cellular "unlimited" plans slow you down after a certain amount of data. Read the fine print before relying on it for work.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Using mobile hotspot as a long-term solution.&lt;/strong&gt;&lt;br&gt;
Hotspot is a lifesaver in emergencies, but using it daily for hours hurts your phone battery, heats up the device, and burns through data fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Ignoring router placement.&lt;/strong&gt;&lt;br&gt;
A router stuffed inside a closet behind a TV will give weak signals. Place it in an open area, ideally in the center of your home or workspace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Not securing the home WiFi.&lt;/strong&gt;&lt;br&gt;
Leaving your home network with the default password is a small but real security risk. Change it once, and forget about it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Blaming the internet for everything.&lt;/strong&gt;&lt;br&gt;
Sometimes it's not WiFi or cellular at fault. It's the website, the server, or that one Chrome tab eating all your RAM. 👀&lt;/p&gt;




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

&lt;p&gt;WiFi and cellular data aren't enemies. They're teammates. WiFi is your reliable home base, great for heavy work, study, and long sessions. Cellular data is your portable backup, ready whenever you step outside.&lt;/p&gt;

&lt;p&gt;For most developers, students, and everyday users, &lt;strong&gt;WiFi handles 80% of daily internet needs more cheaply and comfortably&lt;/strong&gt;, while cellular data steps in for the remaining 20% on the go.&lt;/p&gt;

&lt;p&gt;The smartest move isn't picking one. It's knowing &lt;strong&gt;when to use which&lt;/strong&gt;. Once you understand that, you stop wasting money, save battery, and avoid those frustrating "buffering" moments during important calls.&lt;/p&gt;

&lt;p&gt;If this article helped clear things up, share it with a friend who keeps blowing through their data plan. 🚀&lt;/p&gt;

&lt;p&gt;For more easy-to-follow tech blogs, visit &lt;strong&gt;&lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt;&lt;/strong&gt;, drop a comment if you have a tip I missed, and let me know your own WiFi-vs-data story. I'd genuinely love to read it. 😊&lt;/p&gt;

&lt;p&gt;Happy coding, and may your connection always be stable.&lt;/p&gt;

</description>
      <category>networking</category>
      <category>discuss</category>
      <category>security</category>
      <category>architecture</category>
    </item>
    <item>
      <title>How Web Browsers Work — The Phenomenon Behind Every Web Experience</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Sun, 03 May 2026 11:27:31 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/how-web-browsers-work-the-phenomenon-behind-every-web-experience-56b9</link>
      <guid>https://dev.to/hamidrazadev/how-web-browsers-work-the-phenomenon-behind-every-web-experience-56b9</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Every time you type a URL and hit Enter, a small miracle unfolds in milliseconds. Most people never think twice about it. Developers should.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  1. Introduction — More Than a Window
&lt;/h2&gt;

&lt;p&gt;Open Chrome. Type a URL. Press Enter. A page appears.&lt;/p&gt;

&lt;p&gt;Simple, right?&lt;/p&gt;

&lt;p&gt;Not even close.&lt;/p&gt;

&lt;p&gt;Behind that instant result is one of the most complex pieces of software ever written. A modern web browser is simultaneously a &lt;strong&gt;network client&lt;/strong&gt;, a &lt;strong&gt;rendering engine&lt;/strong&gt;, a &lt;strong&gt;JavaScript runtime&lt;/strong&gt;, a &lt;strong&gt;security sandbox&lt;/strong&gt;, and a &lt;strong&gt;mini operating system&lt;/strong&gt; — all working in perfect coordination, every single time you browse.&lt;/p&gt;

&lt;p&gt;Google Chrome has over &lt;strong&gt;35 million lines of code&lt;/strong&gt;. Firefox has been actively developed for more than two decades. These aren't simple apps — they're engineering marvels disguised as everyday tools.&lt;/p&gt;

&lt;p&gt;In this post, we're going to pull back the curtain completely. From the moment you hit Enter to the pixel appearing on your screen — this is how browsers &lt;em&gt;actually&lt;/em&gt; work.&lt;/p&gt;




&lt;h2&gt;
  
  
  2. Step One — Finding the Server (DNS Resolution)
&lt;/h2&gt;

&lt;p&gt;Before anything loads, the browser needs to answer one question: &lt;em&gt;Where is this website?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Computers don't understand domain names like &lt;code&gt;hamidrazadev.com&lt;/code&gt;. They speak in &lt;strong&gt;IP addresses&lt;/strong&gt; like &lt;code&gt;104.21.45.78&lt;/code&gt;. The system that translates between the two is called &lt;strong&gt;DNS — Domain Name System&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here's the lookup chain:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Browser Cache&lt;/strong&gt; — Has it visited this domain recently? If yes, use the saved IP.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OS Cache&lt;/strong&gt; — Ask the operating system's own DNS cache.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Router Cache&lt;/strong&gt; — Ask the local network router.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ISP DNS Resolver&lt;/strong&gt; — Ask your internet provider's DNS server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Root → TLD → Authoritative Nameserver&lt;/strong&gt; — A recursive query through the global DNS hierarchy until the correct IP is returned.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This entire process often completes in &lt;strong&gt;under 20 milliseconds&lt;/strong&gt; — but it's the invisible foundation of every page load.&lt;/p&gt;

&lt;h3&gt;
  
  
  Connecting to the Server — TCP Handshake
&lt;/h3&gt;

&lt;p&gt;With the IP address in hand, the browser opens a &lt;strong&gt;TCP connection&lt;/strong&gt; using a three-way handshake:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Client  →  SYN         →  Server   (I want to connect)
Client  ←  SYN-ACK     ←  Server   (Acknowledged, go ahead)
Client  →  ACK         →  Server   (Connection established)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For &lt;code&gt;https://&lt;/code&gt; sites (which is basically everything today), a &lt;strong&gt;TLS handshake&lt;/strong&gt; follows immediately after — exchanging cryptographic certificates, verifying the server's identity, and establishing an encrypted channel. This is what puts the padlock in your address bar.&lt;/p&gt;

&lt;p&gt;Only &lt;em&gt;after&lt;/em&gt; all of this does the browser send the actual request:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="nf"&gt;GET&lt;/span&gt; &lt;span class="nn"&gt;/&lt;/span&gt; &lt;span class="k"&gt;HTTP&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="m"&gt;1.1&lt;/span&gt;
&lt;span class="na"&gt;Host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;hamidrazadev.com&lt;/span&gt;
&lt;span class="na"&gt;Accept&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;text/html,application/xhtml+xml&lt;/span&gt;
&lt;span class="na"&gt;Accept-Encoding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;gzip, deflate, br&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. Step Two — The Server Responds
&lt;/h2&gt;

&lt;p&gt;The server processes the request and sends back an &lt;strong&gt;HTTP response&lt;/strong&gt;. This includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Status Code&lt;/strong&gt; — &lt;code&gt;200 OK&lt;/code&gt;, &lt;code&gt;301 Redirect&lt;/code&gt;, &lt;code&gt;404 Not Found&lt;/code&gt;, &lt;code&gt;500 Server Error&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response Headers&lt;/strong&gt; — Content type, caching rules, security policies, cookies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Response Body&lt;/strong&gt; — The actual HTML markup&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the most important things to understand here: &lt;strong&gt;the browser does not wait for the full HTML to download before it starts working.&lt;/strong&gt; It reads the response as a &lt;strong&gt;stream&lt;/strong&gt;, processing bytes as they arrive over the network. This is called &lt;strong&gt;streaming parsing&lt;/strong&gt; — and it's the reason you sometimes see a page begin rendering before it's fully loaded.&lt;/p&gt;

&lt;p&gt;Modern browsers also take advantage of &lt;strong&gt;HTTP/2&lt;/strong&gt; and &lt;strong&gt;HTTP/3&lt;/strong&gt;, which allow multiple resources (HTML, CSS, JS, images) to be fetched over a &lt;em&gt;single&lt;/em&gt; connection simultaneously — a massive leap over HTTP/1.1's one-request-at-a-time model.&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Step Three — Parsing HTML into the DOM
&lt;/h2&gt;

&lt;p&gt;As HTML bytes arrive, the browser's &lt;strong&gt;HTML Parser&lt;/strong&gt; gets to work. Its job is to convert raw markup text into a structured, in-memory data structure called the &lt;strong&gt;DOM — Document Object Model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Think of it as a tree:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Document
└── &amp;lt;html&amp;gt;
    ├── &amp;lt;head&amp;gt;
    │   ├── &amp;lt;title&amp;gt;My Site&amp;lt;/title&amp;gt;
    │   └── &amp;lt;link rel="stylesheet" href="styles.css"&amp;gt;
    └── &amp;lt;body&amp;gt;
        ├── &amp;lt;header&amp;gt;
        │   └── &amp;lt;nav&amp;gt;...&amp;lt;/nav&amp;gt;
        ├── &amp;lt;main&amp;gt;
        │   └── &amp;lt;article&amp;gt;...&amp;lt;/article&amp;gt;
        └── &amp;lt;footer&amp;gt;...&amp;lt;/footer&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every HTML element becomes a &lt;strong&gt;node&lt;/strong&gt;. Every node has a parent, zero or more children, and sibling relationships. This tree is what JavaScript manipulates at runtime — adding, removing, and modifying nodes to create dynamic UIs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Parser Blocking — The Hidden Performance Trap
&lt;/h3&gt;

&lt;p&gt;Parsing is not always a straight line. The HTML parser can get &lt;em&gt;blocked&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;&amp;lt;link rel="stylesheet"&amp;gt;&lt;/code&gt;&lt;/strong&gt; — Triggers a CSS file fetch. Rendering is blocked until CSS is downloaded and parsed (to avoid a flash of unstyled content).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt;&lt;/strong&gt; (without &lt;code&gt;async&lt;/code&gt;/&lt;code&gt;defer&lt;/code&gt;) — The parser &lt;em&gt;stops completely&lt;/em&gt; to download and execute the JavaScript before continuing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt;&lt;/strong&gt; — Non-blocking; parallel fetches are fired off but don't halt the parser.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is exactly why developers are told to put &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tags at the bottom of the body, or use &lt;code&gt;defer&lt;/code&gt; — to avoid stalling the parser mid-document.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. Step Four — Building the CSSOM
&lt;/h2&gt;

&lt;p&gt;While the HTML parser builds the DOM, a parallel process handles your CSS — constructing the &lt;strong&gt;CSSOM (CSS Object Model)&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Every style rule, from every source (&lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; tags, external stylesheets, inline styles) is parsed and organized into its own tree. The browser then applies the &lt;strong&gt;cascade algorithm&lt;/strong&gt; to determine which styles actually apply to each element, resolving conflicts using:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Origin&lt;/strong&gt; — Browser defaults vs. developer styles vs. user overrides&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Specificity&lt;/strong&gt; — &lt;code&gt;#id&lt;/code&gt; &amp;gt; &lt;code&gt;.class&lt;/code&gt; &amp;gt; &lt;code&gt;element&lt;/code&gt; selector&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Order of appearance&lt;/strong&gt; — Later rules override earlier ones at equal specificity&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inheritance&lt;/strong&gt; — Some properties (like &lt;code&gt;font-family&lt;/code&gt;) inherit from parent to child automatically&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once both the DOM and CSSOM are complete, the browser merges them into the &lt;strong&gt;Render Tree&lt;/strong&gt; — a new tree containing &lt;em&gt;only&lt;/em&gt; the visible elements, each annotated with their final computed styles.&lt;/p&gt;

&lt;p&gt;Elements with &lt;code&gt;display: none&lt;/code&gt; are excluded entirely. Elements with &lt;code&gt;visibility: hidden&lt;/code&gt; remain in the tree (they still occupy space) but are painted transparently.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Step Five — The Rendering Pipeline
&lt;/h2&gt;

&lt;p&gt;With the render tree ready, the browser enters the &lt;strong&gt;rendering pipeline&lt;/strong&gt; — the process of turning data into actual pixels. This happens in four distinct stages:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Layout (Reflow)
&lt;/h3&gt;

&lt;p&gt;The browser calculates the &lt;strong&gt;exact position and dimensions&lt;/strong&gt; of every element on the page. This involves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Box model calculations (margin, border, padding, content width/height)&lt;/li&gt;
&lt;li&gt;Flexbox and CSS Grid algorithms&lt;/li&gt;
&lt;li&gt;Text wrapping and line-breaking&lt;/li&gt;
&lt;li&gt;Relative and absolute positioning&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Layout is computed from the root of the render tree downward. Changing a single element's size can &lt;strong&gt;trigger a reflow&lt;/strong&gt; of its descendants and siblings — which is why layout-thrashing in JavaScript is a serious performance concern.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Paint
&lt;/h3&gt;

&lt;p&gt;The browser walks the render tree and records &lt;strong&gt;paint operations&lt;/strong&gt; — drawing text, colors, borders, box shadows, images — layer by layer. This stage produces a list of draw calls, not actual pixels yet.&lt;/p&gt;

&lt;p&gt;Modern browsers split the page into multiple &lt;strong&gt;layers&lt;/strong&gt; (think: transparent sheets stacked together). Elements that animate or change frequently are promoted to their own layer so they can be updated independently without repainting the rest of the page.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Rasterization
&lt;/h3&gt;

&lt;p&gt;Paint commands are converted to actual &lt;strong&gt;pixels&lt;/strong&gt; — either on the CPU or, more commonly, the GPU. The page is broken into &lt;strong&gt;tiles&lt;/strong&gt; and rasterized in parallel for speed.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Composite
&lt;/h3&gt;

&lt;p&gt;The GPU combines all rasterized layers into the &lt;strong&gt;final frame&lt;/strong&gt; displayed on screen. CSS properties like &lt;code&gt;transform&lt;/code&gt; and &lt;code&gt;opacity&lt;/code&gt; are handled entirely at this stage — which is why they're the gold standard for performant animations. They skip Layout and Paint entirely.&lt;/p&gt;

&lt;p&gt;The full pipeline looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;JavaScript → Style Recalc → Layout → Paint → Composite
     ↑                                              ↓
  DOM/CSSOM Changes                         Frame on Screen
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Browsers target &lt;strong&gt;60 frames per second&lt;/strong&gt; — that's one frame every &lt;strong&gt;16.67ms&lt;/strong&gt;. Miss that budget, and you get visible jank.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Step Six — JavaScript Execution
&lt;/h2&gt;

&lt;p&gt;No browser discussion is complete without the &lt;strong&gt;JavaScript engine&lt;/strong&gt; — arguably the most complex component of all.&lt;/p&gt;

&lt;p&gt;Different browsers ship different engines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;V8&lt;/strong&gt; — Chrome, Edge, Node.js&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SpiderMonkey&lt;/strong&gt; — Firefox&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JavaScriptCore (Nitro)&lt;/strong&gt; — Safari&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They all follow a similar pipeline:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Source Code → AST → Bytecode → JIT Machine Code
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Parsing&lt;/strong&gt; — JS source is parsed into an &lt;strong&gt;Abstract Syntax Tree (AST)&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bytecode Compilation&lt;/strong&gt; — The AST is compiled to bytecode by an interpreter (e.g., V8's &lt;em&gt;Ignition&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;JIT Optimization&lt;/strong&gt; — Frequently-executed ("hot") code paths are recompiled to highly optimized native machine code (e.g., V8's &lt;em&gt;TurboFan&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deoptimization&lt;/strong&gt; — If assumptions change (e.g., a variable's type changes), the JIT compiler throws away optimized code and falls back to bytecode&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Garbage Collection&lt;/strong&gt; — Unreachable memory is automatically freed using a generational GC algorithm&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The Event Loop — Why JS Doesn't Freeze
&lt;/h3&gt;

&lt;p&gt;JavaScript is &lt;strong&gt;single-threaded&lt;/strong&gt; — one call stack, one execution context at a time. Yet it handles async operations (network requests, timers, events) without blocking. How?&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;Event Loop&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Call Stack → empty? → Check Microtask Queue → Check Macrotask Queue → Push callback → Repeat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Long-running browser operations (fetch, setTimeout, DOM events) are handled by &lt;strong&gt;Web APIs&lt;/strong&gt; in C++ — outside the JS thread.&lt;/li&gt;
&lt;li&gt;When they complete, their callbacks enter a &lt;strong&gt;queue&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The event loop picks callbacks off the queue and pushes them onto the call stack &lt;em&gt;only when it's empty&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why &lt;code&gt;async/await&lt;/code&gt; and Promises don't block the UI — they defer callbacks until the call stack is free.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. The Bigger Picture — Security, Caching &amp;amp; Performance
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Process Isolation &amp;amp; The Sandbox
&lt;/h3&gt;

&lt;p&gt;Modern browsers run each tab in its own &lt;strong&gt;sandboxed OS process&lt;/strong&gt;. Even if malicious JavaScript runs in one tab, it cannot access:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Another tab's DOM or data&lt;/li&gt;
&lt;li&gt;Your file system&lt;/li&gt;
&lt;li&gt;OS-level resources&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is enforced at the OS level — not just by browser rules. A crashed tab crashes its process, not the entire browser.&lt;/p&gt;

&lt;p&gt;Key security mechanisms include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Same-Origin Policy (SOP)&lt;/strong&gt; — JavaScript on &lt;code&gt;site-a.com&lt;/code&gt; cannot read data from &lt;code&gt;site-b.com&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Content Security Policy (CSP)&lt;/strong&gt; — Server-defined rules about which scripts and resources are allowed to load&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTPS + HSTS&lt;/strong&gt; — Enforces encrypted connections and prevents downgrade attacks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-Origin Resource Sharing (CORS)&lt;/strong&gt; — Controlled exceptions to SOP for trusted cross-origin requests&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Caching — Speed Through Memory
&lt;/h3&gt;

&lt;p&gt;Browsers cache aggressively to eliminate redundant work:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cache Type&lt;/th&gt;
&lt;th&gt;Lifetime&lt;/th&gt;
&lt;th&gt;Speed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Memory Cache&lt;/td&gt;
&lt;td&gt;Tab session&lt;/td&gt;
&lt;td&gt;Instant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Disk Cache&lt;/td&gt;
&lt;td&gt;Controlled by HTTP headers&lt;/td&gt;
&lt;td&gt;Fast&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Service Worker Cache&lt;/td&gt;
&lt;td&gt;Programmatic / Persistent&lt;/td&gt;
&lt;td&gt;Flexible&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The &lt;code&gt;Cache-Control&lt;/code&gt;, &lt;code&gt;ETag&lt;/code&gt;, and &lt;code&gt;Last-Modified&lt;/code&gt; headers give servers fine-grained control over how long resources are cached and when they expire.&lt;/p&gt;

&lt;h3&gt;
  
  
  Modern Performance Techniques
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;&amp;lt;link rel="preload"&amp;gt;&lt;/code&gt;&lt;/strong&gt; — Fetch critical resources (fonts, hero images) before the parser discovers them&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;&amp;lt;link rel="dns-prefetch"&amp;gt;&lt;/code&gt;&lt;/strong&gt; — Resolve third-party domains early&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;loading="lazy"&lt;/code&gt;&lt;/strong&gt; — Defer off-screen image/iframe loads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;async&lt;/code&gt; / &lt;code&gt;defer&lt;/code&gt;&lt;/strong&gt; on scripts — Avoid parser blocking&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTTP/3 + QUIC&lt;/strong&gt; — Faster connection establishment, especially on lossy mobile networks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Brotli Compression&lt;/strong&gt; — Smaller transfer sizes than gzip for text-based assets&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Final Thoughts — Know Your Runtime
&lt;/h2&gt;

&lt;p&gt;Every page load you've ever experienced — every click, every scroll, every animation — was the product of this entire pipeline running in perfect orchestration, usually in under a second.&lt;/p&gt;

&lt;p&gt;As a developer, understanding this isn't just trivia. It's &lt;strong&gt;leverage&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It's the difference between a 4-second load and a 0.9-second one. Between janky scroll and buttery 60fps. Between an XSS vulnerability and a hardened app. Between a developer who writes code and one who understands the &lt;em&gt;system&lt;/em&gt; their code runs in.&lt;/p&gt;

&lt;p&gt;The browser is your runtime. Respect it. Understand it. And build for it with intention.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>browser</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Run Powerful AI Models Offline on Your Phone with Google AI Edge Gallery (Android &amp; iOS)</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Fri, 01 May 2026 10:24:13 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/run-powerful-ai-models-offline-on-your-phone-with-google-ai-edge-gallery-android-ios-p3d</link>
      <guid>https://dev.to/hamidrazadev/run-powerful-ai-models-offline-on-your-phone-with-google-ai-edge-gallery-android-ios-p3d</guid>
      <description>&lt;p&gt;Have you ever wished you could use a powerful AI assistant without burning through your mobile data — or worrying about your private conversations being sent to some server halfway around the world?&lt;/p&gt;

&lt;p&gt;That wish just became reality. 🚀&lt;/p&gt;

&lt;p&gt;Google's &lt;strong&gt;AI Edge Gallery&lt;/strong&gt; app lets you download and run real open-source large language models (LLMs) directly on your iPhone or Android phone. No internet. No cloud. No data leaving your device. Just raw AI power running straight from your hardware.&lt;/p&gt;

&lt;p&gt;But wait — how good can phone AI actually be? Better than you'd expect. Let's dig in.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is Google AI Edge Gallery?
&lt;/h2&gt;

&lt;p&gt;AI Edge Gallery is a free, open-source app built by Google's Research team — available on both &lt;strong&gt;Android&lt;/strong&gt; and &lt;strong&gt;iPhone&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Instead of sending your questions to a remote server like most AI apps do, it downloads AI models directly onto your device and runs them locally using your phone's CPU and GPU.&lt;/p&gt;

&lt;p&gt;Think of it as a mini AI computer in your pocket — one that works even in airplane mode.&lt;/p&gt;

&lt;p&gt;The app supports multiple open-source models, including Google's own &lt;strong&gt;Gemma 4&lt;/strong&gt; family, and gives you tools for chatting, image analysis, voice transcription, and even simple device automation — all completely offline.&lt;/p&gt;




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

&lt;p&gt;Most AI tools today are cloud-dependent. That means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your prompts travel to remote servers&lt;/li&gt;
&lt;li&gt;You need a stable internet connection&lt;/li&gt;
&lt;li&gt;Slow networks mean slow responses&lt;/li&gt;
&lt;li&gt;You have zero control over what happens to your data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI Edge Gallery flips all of that. Everything runs &lt;strong&gt;on-device&lt;/strong&gt;, which means your data never leaves your phone. For developers, students, journalists, or anyone handling sensitive information, that's a big deal.&lt;/p&gt;

&lt;p&gt;There's also the offline angle. If you're traveling, in a low-connectivity area, or just don't want to burn through your data plan, local AI is incredibly useful.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to Download It
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;For Android:&lt;/strong&gt;&lt;br&gt;
Search for &lt;strong&gt;"AI Edge Gallery"&lt;/strong&gt; on the Google Play Store (by Research at Google). Requires Android 12 or higher. App size: ~23 MB.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For iPhone:&lt;/strong&gt;&lt;br&gt;
Search for &lt;strong&gt;"Google AI Edge Gallery"&lt;/strong&gt; on the Apple App Store, or visit:&lt;br&gt;
&lt;a href="https://apps.apple.com/us/app/google-ai-edge-gallery/id6749645337" rel="noopener noreferrer"&gt;apps.apple.com/us/app/google-ai-edge-gallery/id6749645337&lt;/a&gt;&lt;br&gt;
App size: ~68 MB. Requires iOS 13+. Rated 4.0 stars with 1,000+ ratings.&lt;/p&gt;




&lt;h2&gt;
  
  
  Key Features Worth Knowing 💡
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🗨️ AI Chat with Thinking Mode
&lt;/h3&gt;

&lt;p&gt;Have multi-turn conversations with the model just like any AI chat app. The really interesting part? You can toggle &lt;strong&gt;Thinking Mode&lt;/strong&gt; to see the model's step-by-step reasoning before it gives you an answer. It's like watching the AI think out loud — incredibly useful for learning or understanding complex responses.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Thinking Mode currently works with supported models, starting with the Gemma 4 family.)&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  🖼️ Ask Image (Multimodal AI)
&lt;/h3&gt;

&lt;p&gt;Point your camera at something — a math problem on a whiteboard, a plant in your garden, a broken error message on your screen — and ask the AI about it. It uses your device's camera or photo gallery to give you visual, detailed answers.&lt;/p&gt;

&lt;h3&gt;
  
  
  🎙️ Audio Scribe
&lt;/h3&gt;

&lt;p&gt;Speak into your phone and the app transcribes your voice to text in real time. It handles translation too. All of it happens on-device with no audio ever being sent to a server.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧪 Prompt Lab
&lt;/h3&gt;

&lt;p&gt;This is the developer's favorite corner of the app. You get a dedicated workspace to test prompts with full control over model parameters like &lt;strong&gt;temperature&lt;/strong&gt; and &lt;strong&gt;top-k&lt;/strong&gt;. Perfect for experimenting, learning, and fine-tuning your prompting skills.&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖 Agent Skills
&lt;/h3&gt;

&lt;p&gt;This takes the app beyond simple chatting. You can add tools like Wikipedia lookups, interactive maps, and rich visual summary cards to make the AI more capable and grounded. You can even load custom skills from a URL or browse community contributions on GitHub.&lt;/p&gt;

&lt;h3&gt;
  
  
  📱 Mobile Actions
&lt;/h3&gt;

&lt;p&gt;On both platforms, the app can control certain device functions and automate simple tasks — powered by a lightweight fine-tuned model called FunctionGemma 270m, running entirely offline. On iOS, features like controlling the flashlight work well, though more advanced actions like creating calendar events are still limited.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌱 Tiny Garden
&lt;/h3&gt;

&lt;p&gt;A fun little bonus — a mini-game where you use natural language to plant and harvest a virtual garden. It's experimental and powered by FunctionGemma 270m. Quirky, but genuinely impressive as a demo of what small models can do.&lt;/p&gt;

&lt;h3&gt;
  
  
  📊 Model Management &amp;amp; Benchmarking
&lt;/h3&gt;

&lt;p&gt;Download models from a curated list or load your own custom models. Run benchmark tests to see exactly how fast each model runs on &lt;strong&gt;your specific hardware&lt;/strong&gt;. Results vary a lot between devices, so this is worth doing before you dive in.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step-by-Step: Getting Started
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1 — Install the App
&lt;/h3&gt;

&lt;p&gt;Download from the &lt;strong&gt;Google Play Store&lt;/strong&gt; (Android) or the &lt;strong&gt;Apple App Store&lt;/strong&gt; (iPhone) and open it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2 — Download a Model
&lt;/h3&gt;

&lt;p&gt;You'll see a list of available models. Tap one and download it. The models are larger files — usually several hundred MB to a few GB — so &lt;strong&gt;download on Wi-Fi&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The home screen features the Gemma 4 family prominently. &lt;strong&gt;Start with a smaller variant&lt;/strong&gt; (like Gemma 4 2B) if you have a mid-range device with limited RAM.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3 — Pick a Feature
&lt;/h3&gt;

&lt;p&gt;Once your model is downloaded, choose what you want to do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Chat&lt;/strong&gt; for conversation and multi-turn dialogue&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prompt Lab&lt;/strong&gt; for controlled testing and experimentation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ask Image&lt;/strong&gt; for visual queries using your camera&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio Scribe&lt;/strong&gt; for voice-to-text transcription&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Skills&lt;/strong&gt; for tool-augmented AI responses&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Step 4 — Enable Thinking Mode (Optional but Fascinating)
&lt;/h3&gt;

&lt;p&gt;In the AI Chat screen with a Gemma 4 model loaded, tap the &lt;strong&gt;Thinking Mode&lt;/strong&gt; toggle. Ask a complex question — like "How many R's are in strawberry?" — and watch the model break down its reasoning step by step before answering.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5 — Run a Benchmark
&lt;/h3&gt;

&lt;p&gt;Head to &lt;strong&gt;Model Management&lt;/strong&gt; and run a benchmark test. You'll get real performance numbers for your device. It takes under a minute and helps you understand your hardware's actual capabilities before downloading heavier models.&lt;/p&gt;




&lt;h2&gt;
  
  
  On-Device AI vs Cloud AI: Quick Comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;On-Device (AI Edge Gallery)&lt;/th&gt;
&lt;th&gt;Cloud AI (ChatGPT, Gemini Web, etc.)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Internet required&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Data privacy&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Fully local&lt;/td&gt;
&lt;td&gt;⚠️ Sent to servers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Speed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Depends on hardware&lt;/td&gt;
&lt;td&gt;Depends on connection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Model size&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Limited by device RAM&lt;/td&gt;
&lt;td&gt;Very large models&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Often subscription-based&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Latest models&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Open-source only&lt;/td&gt;
&lt;td&gt;Proprietary + cutting-edge&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Custom model support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Load your own&lt;/td&gt;
&lt;td&gt;❌ Limited&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Works offline&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Always&lt;/td&gt;
&lt;td&gt;❌ Never&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The honest take:&lt;/strong&gt; Cloud AI models like GPT-4o or Gemini 1.5 Pro are still more capable for complex tasks. On-device AI is the best choice for privacy-sensitive use cases, offline situations, learning about AI behavior, and low or no connectivity scenarios.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tips for the Best Experience 🔧
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;Download models over Wi-Fi — they're large files&lt;/li&gt;
&lt;li&gt;Start with smaller models (2B–3B parameters) on mid-range phones&lt;/li&gt;
&lt;li&gt;Use Prompt Lab to understand how temperature and top-k affect model output&lt;/li&gt;
&lt;li&gt;Try Agent Skills to add Wikipedia, maps, and visual tools to your AI&lt;/li&gt;
&lt;li&gt;Run a benchmark first before downloading heavier models&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;❌ Avoid this:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Don't expect cloud-level accuracy from a model running on phone hardware&lt;/li&gt;
&lt;li&gt;Don't run very large models on devices with under 6GB RAM — they'll struggle&lt;/li&gt;
&lt;li&gt;Don't skip the benchmark — it gives you genuinely useful data about your device&lt;/li&gt;
&lt;li&gt;Don't give up after one slow response — performance improves once the model is fully loaded into memory&lt;/li&gt;
&lt;/ul&gt;




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

&lt;h3&gt;
  
  
  Downloading the biggest model first
&lt;/h3&gt;

&lt;p&gt;Bigger parameters doesn't always mean better performance on your device. A very large model might run slowly or even crash on phones with limited RAM. &lt;strong&gt;Start small, benchmark, then scale up.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Expecting the same output quality as GPT-4 or Gemini Ultra
&lt;/h3&gt;

&lt;p&gt;On-device models are improving rapidly, but they're optimized for size and speed, not maximum intelligence. Go in expecting a capable, private, offline assistant — and you'll genuinely be impressed. Go in expecting a match for the largest cloud models — and you'll be let down.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ignoring which models are optimized for your chip
&lt;/h3&gt;

&lt;p&gt;Android users on Qualcomm Snapdragon devices now have &lt;strong&gt;Gemma 3 1B NPU support&lt;/strong&gt;, meaning the model runs on the neural processing unit for much faster inference. Always check model details before downloading to pick the best-optimized version for your hardware.&lt;/p&gt;

&lt;h3&gt;
  
  
  Not trying Agent Skills
&lt;/h3&gt;

&lt;p&gt;Many users stick to basic chat and miss the real power of the app. Agent Skills — Wikipedia grounding, interactive maps, visual summaries — make the AI dramatically more useful. Spend five minutes here and you'll see the difference.&lt;/p&gt;




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

&lt;p&gt;Google AI Edge Gallery is one of the most exciting things happening in mobile AI right now. It brings real, powerful open-source models to your Android or iPhone — offline, private, and completely free.&lt;/p&gt;

&lt;p&gt;Is it going to replace your cloud AI subscription tomorrow? Probably not for complex tasks. But as a &lt;strong&gt;developer tool, a privacy-focused assistant, a learning sandbox, and a reliable offline companion&lt;/strong&gt;, it's genuinely impressive and improving with every update.&lt;/p&gt;

&lt;p&gt;The open-source, community-driven nature makes it even more interesting. Developers are already building and sharing custom Agent Skills, contributing models, and constantly pushing what a phone can do.&lt;/p&gt;

&lt;p&gt;Download it, try a small Gemma 4 model, toggle Thinking Mode, and see what your phone is actually capable of. You might be surprised. 😊&lt;/p&gt;

&lt;p&gt;For more dev tools, AI guides, and practical developer content, 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 was helpful, share it with a developer or tech friend who'd appreciate it!&lt;/p&gt;

</description>
      <category>android</category>
      <category>ios</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>10 Tips to Use Claude for Best Performance (Stop Wasting Tokens)</title>
      <dc:creator>Muhammad Hamid Raza</dc:creator>
      <pubDate>Thu, 30 Apr 2026 10:51:22 +0000</pubDate>
      <link>https://dev.to/hamidrazadev/10-tips-to-use-claude-for-best-performance-stop-wasting-tokens-57f1</link>
      <guid>https://dev.to/hamidrazadev/10-tips-to-use-claude-for-best-performance-stop-wasting-tokens-57f1</guid>
      <description>&lt;p&gt;You open Claude, type a quick message, get a mediocre response, tweak it, re-send it, get a slightly better one, tweak it again… and suddenly you have burned through half your daily message limit trying to get one decent paragraph.&lt;/p&gt;

&lt;p&gt;Sound familiar? 😅&lt;/p&gt;

&lt;p&gt;Most people treat Claude like a search engine — type something vague, hope for the best, then complain when the output misses the mark. But Claude is not a search engine. It is a reasoning model. And the better your input, the better your output. Every time.&lt;/p&gt;

&lt;p&gt;So the real question is: &lt;strong&gt;are you getting the most out of every single prompt, or are you silently wasting tokens on back-and-forth you could have avoided?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Here are 10 practical tips that will help you get sharp, accurate, useful results from Claude — without burning through your token budget for nothing.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Are Tokens, and Why Should You Care?
&lt;/h2&gt;

&lt;p&gt;Before we dive into the tips, let us get one thing straight.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;token&lt;/strong&gt; is roughly a word or part of a word. When you send a message to Claude — and when Claude responds — both sides use tokens. If you are on a usage-limited plan, tokens are essentially your budget. Waste them on unclear prompts and long back-and-forths, and you hit your limit faster without getting the quality you needed.&lt;/p&gt;

&lt;p&gt;Even if tokens are not a concern for you right now, efficient prompting saves time, reduces confusion, and gets you better results. That is always worth it.&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Prompting Style Actually Matters
&lt;/h2&gt;

&lt;p&gt;Claude is powerful, but it is not a mind reader.&lt;/p&gt;

&lt;p&gt;It works best when you give it clear context, clear instructions, and a clear goal. When you leave those things out, Claude has to guess — and even a well-trained AI guessing about your intent is still just guessing.&lt;/p&gt;

&lt;p&gt;Better prompts mean fewer re-tries. Fewer re-tries mean fewer tokens spent. And better responses mean less frustration. It is a win on every side.&lt;/p&gt;




&lt;h2&gt;
  
  
  10 Tips to Get the Best Performance from Claude
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. 🎯 Be Specific About What You Want
&lt;/h3&gt;

&lt;p&gt;Vague prompts produce vague answers. If you type &lt;em&gt;"explain JavaScript"&lt;/em&gt;, you could get anything from a 500-word intro to a full history of the language.&lt;/p&gt;

&lt;p&gt;Instead, say: &lt;em&gt;"Explain JavaScript closures in simple terms with one short example. Keep it under 200 words."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Specificity is your best friend. Tell Claude what topic, what depth, what format, and what length. That one habit alone will improve your results dramatically.&lt;/p&gt;




&lt;h3&gt;
  
  
  2. 🧑‍💼 Give Claude a Role
&lt;/h3&gt;

&lt;p&gt;Claude performs better when it knows what persona to take on.&lt;/p&gt;

&lt;p&gt;Start your prompt with something like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"You are a senior React developer..."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"You are a friendly teacher explaining this to a 12-year-old..."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"You are a technical writer creating documentation..."&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This small change shapes the tone, depth, and style of the entire response. It saves you multiple follow-up messages trying to adjust the voice.&lt;/p&gt;




&lt;h3&gt;
  
  
  3. 📋 Provide Context Upfront
&lt;/h3&gt;

&lt;p&gt;Claude has no memory of what you did in a previous conversation unless you tell it. Jumping straight into a complex question without context forces Claude to make assumptions — and assumptions lead to mismatched answers.&lt;/p&gt;

&lt;p&gt;Before asking your main question, give Claude the background it needs:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"I am building a Next.js app with TypeScript. I am using Supabase for authentication. I have this error in my sign-in function: [paste error]. What could be causing it?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;A bit more setup upfront = a much more useful answer on the first try.&lt;/p&gt;




&lt;h3&gt;
  
  
  4. ✂️ Use Clear, Short Sentences
&lt;/h3&gt;

&lt;p&gt;Long, winding prompts confuse priorities. When a prompt has ten different ideas crammed into one paragraph, Claude has to figure out what you actually want most — and it might pick the wrong priority.&lt;/p&gt;

&lt;p&gt;Keep your prompts clean and structured. Break big requests into clear points if needed. Short sentences are easier to follow for both humans and AI.&lt;/p&gt;




&lt;h3&gt;
  
  
  5. 📐 Specify the Format You Need
&lt;/h3&gt;

&lt;p&gt;Do you want bullet points? A numbered list? A code block? A paragraph? A table?&lt;/p&gt;

&lt;p&gt;Claude will pick a default format if you do not say anything. Sometimes that works. Sometimes it does not. Rather than sending a follow-up message asking for a reformat, just include it in your original prompt:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;"Give me the answer as a numbered list."&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"Respond only in a code block with comments."&lt;/em&gt;&lt;br&gt;
&lt;em&gt;"Write this as a short paragraph, not bullet points."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;One sentence of format instruction can save you two or three re-prompts.&lt;/p&gt;




&lt;h3&gt;
  
  
  6. 🔢 Set a Length Expectation
&lt;/h3&gt;

&lt;p&gt;Claude can write two sentences or two thousand words. Without guidance, it picks somewhere in the middle — which is often not what you needed.&lt;/p&gt;

&lt;p&gt;If you want a quick summary, say &lt;em&gt;"Keep it under 100 words."&lt;/em&gt;&lt;br&gt;
If you want depth, say &lt;em&gt;"Write a detailed explanation with examples."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Controlling length is one of the easiest ways to get cleaner, more useful responses without any wasted words — on either side.&lt;/p&gt;




&lt;h3&gt;
  
  
  7. ⛔ Tell Claude What NOT to Do
&lt;/h3&gt;

&lt;p&gt;This one is underrated.&lt;/p&gt;

&lt;p&gt;Negative instructions are just as useful as positive ones. If you do not want Claude to add a conclusion, say so. If you do not want technical jargon, mention it. If you do not want a list when you specifically need prose, be clear.&lt;/p&gt;

&lt;p&gt;Examples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;"Do not add an introduction. Start directly with the steps."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Do not include any code. Just explain the concept in plain English."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Do not suggest alternatives. Just fix what I gave you."&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These small guardrails stop Claude from going in a direction you did not want — which means no wasted tokens correcting it.&lt;/p&gt;




&lt;h3&gt;
  
  
  8. 🔁 Use Follow-Up Prompts Smartly
&lt;/h3&gt;

&lt;p&gt;Even with a great first prompt, sometimes you will want a tweak. That is totally normal. But there is a right way to do follow-ups.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Instead of:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;"Change it."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Say:&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;"Make the tone more casual and remove the second paragraph."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Vague follow-ups force Claude to guess again. Specific follow-ups land on the first try. The goal is fewer rounds of back-and-forth, not more.&lt;/p&gt;




&lt;h3&gt;
  
  
  9. 🗂️ Break Big Tasks into Smaller Steps
&lt;/h3&gt;

&lt;p&gt;Asking Claude to &lt;em&gt;"build me a full e-commerce website"&lt;/em&gt; in one prompt is a recipe for a bloated, half-right response that you then spend ages correcting.&lt;/p&gt;

&lt;p&gt;For big or complex tasks, break them into steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;em&gt;"First, write the product listing component in React."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Now write the cart logic."&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;"Now connect the cart to the listing component."&lt;/em&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This gives you better control, cleaner output, and easier debugging if something goes wrong. Smaller tasks also use context more efficiently.&lt;/p&gt;




&lt;h3&gt;
  
  
  10. 💾 Reuse Prompts That Work
&lt;/h3&gt;

&lt;p&gt;When you find a prompt structure that consistently gives you great results, save it. Seriously — keep a small notes file or a Notion doc with your best-performing prompts.&lt;/p&gt;

&lt;p&gt;Whether it is a prompt for writing blog outlines, debugging code, summarizing documentation, or generating component ideas — a saved prompt you can reuse is a token-efficient shortcut for every future task.&lt;/p&gt;

&lt;p&gt;Good prompts are assets. Treat them like one.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Comparison: Weak Prompt vs Strong Prompt
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Weak Prompt&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Strong Prompt&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Topic&lt;/td&gt;
&lt;td&gt;Vague or missing&lt;/td&gt;
&lt;td&gt;Clearly stated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context&lt;/td&gt;
&lt;td&gt;None given&lt;/td&gt;
&lt;td&gt;Background provided&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Format&lt;/td&gt;
&lt;td&gt;Not specified&lt;/td&gt;
&lt;td&gt;Requested explicitly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Length&lt;/td&gt;
&lt;td&gt;Not mentioned&lt;/td&gt;
&lt;td&gt;Defined&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Role&lt;/td&gt;
&lt;td&gt;Default&lt;/td&gt;
&lt;td&gt;Assigned persona&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Result&lt;/td&gt;
&lt;td&gt;Hit or miss&lt;/td&gt;
&lt;td&gt;Consistently useful&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The difference between these two columns is not talent. It is just habit.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;1. Treating Claude like Google.&lt;/strong&gt;&lt;br&gt;
Claude is not for searching. It is for reasoning, writing, explaining, and generating. Use it for what it is good at.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Sending one giant wall of text.&lt;/strong&gt;&lt;br&gt;
Unstructured prompts produce unstructured answers. Format your input so Claude can follow it clearly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Not iterating smartly.&lt;/strong&gt;&lt;br&gt;
Sending the exact same prompt again after a bad response will not help. Change something — the format, the framing, the context — and it will respond differently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Assuming Claude remembers previous chats.&lt;/strong&gt;&lt;br&gt;
By default, each conversation starts fresh. If your task depends on past context, include a brief summary at the start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Asking for everything at once.&lt;/strong&gt;&lt;br&gt;
Big prompts with ten different goals rarely produce ten great outputs. Chunk your work. You will thank yourself later.&lt;/p&gt;




&lt;h2&gt;
  
  
  Best Practices at a Glance ✅
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ Be specific about topic, format, tone, and length&lt;/li&gt;
&lt;li&gt;✅ Assign a role when the task has a clear persona&lt;/li&gt;
&lt;li&gt;✅ Give context before jumping into the question&lt;/li&gt;
&lt;li&gt;✅ Use negative instructions to set boundaries&lt;/li&gt;
&lt;li&gt;✅ Break large tasks into smaller, clean steps&lt;/li&gt;
&lt;li&gt;✅ Save prompt templates that work well for you&lt;/li&gt;
&lt;li&gt;❌ Do not be vague and expect great results&lt;/li&gt;
&lt;li&gt;❌ Do not skip context and hope Claude figures it out&lt;/li&gt;
&lt;li&gt;❌ Do not ask Claude to redo something without telling it what to change&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Claude is a genuinely powerful tool — but only when you give it what it needs to perform. Most people leave a lot of quality on the table simply because of unclear or incomplete prompts.&lt;/p&gt;

&lt;p&gt;You do not need to be a prompt engineering expert. You just need to be clear, specific, and intentional. Follow these 10 tips and you will get faster, sharper, and more accurate responses — with far fewer re-tries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Less re-prompting. Less wasted tokens. More results.&lt;/strong&gt; That is the goal.&lt;/p&gt;

&lt;p&gt;If this helped you, check out more developer tips and guides on &lt;a href="https://hamidrazadev.com" rel="noopener noreferrer"&gt;hamidrazadev.com&lt;/a&gt; 🚀&lt;/p&gt;

&lt;p&gt;Share this with a fellow developer who is still sending one-liner prompts and wondering why the output is not great. They will appreciate you for it. 😊&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>discuss</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
