<?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: Mohamed Yaseen</title>
    <description>The latest articles on DEV Community by Mohamed Yaseen (@i_am_yaseen).</description>
    <link>https://dev.to/i_am_yaseen</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%2F3382387%2F9dc13f74-4350-45d7-ad08-f2105f1c285b.jpg</url>
      <title>DEV Community: Mohamed Yaseen</title>
      <link>https://dev.to/i_am_yaseen</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/i_am_yaseen"/>
    <language>en</language>
    <item>
      <title>Stop Typing the Same Commands Over and Over: Bash Aliases for Lazy Developers</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Fri, 03 Apr 2026 15:40:40 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/stop-typing-the-same-commands-over-and-over-bash-aliases-for-lazy-developers-nhe</link>
      <guid>https://dev.to/i_am_yaseen/stop-typing-the-same-commands-over-and-over-bash-aliases-for-lazy-developers-nhe</guid>
      <description>&lt;p&gt;A quick guide to automating repetitive terminal commands with bash aliases&lt;/p&gt;

&lt;p&gt;We've all been there—typing the same git commands, npm scripts, or directory navigations 50 times a day. Your fingers hurt, your productivity suffers, and you're wasting mental energy on muscle memory instead of actual coding.&lt;/p&gt;

&lt;p&gt;Here's the fix: &lt;strong&gt;bash aliases&lt;/strong&gt;. Two minutes to set up, infinite time saved.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's an Alias?
&lt;/h2&gt;

&lt;p&gt;An alias is basically a shortcut command. Instead of typing the full command, you create a shorter version that does the same thing.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Set It Up
&lt;/h2&gt;

&lt;p&gt;Open your shell config file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;nano ~/.bashrc
&lt;span class="c"&gt;# or if you use zsh:&lt;/span&gt;
nano ~/.zshrc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add your aliases at the end:&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;# Git shortcuts&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;gs&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'git status'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;ga&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'git add .'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;gc&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'git commit -m'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;gp&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'git push'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;gl&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'git log --oneline'&lt;/span&gt;

&lt;span class="c"&gt;# Navigation&lt;/span&gt;
&lt;span class="nb"&gt;alias&lt;/span&gt; ..&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'cd ..'&lt;/span&gt;
&lt;span class="nb"&gt;alias&lt;/span&gt; ...&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'cd ../..'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;myproject&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'cd ~/projects/my-awesome-project'&lt;/span&gt;

&lt;span class="c"&gt;# Common npm commands&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;ni&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'npm install'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;nr&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'npm run'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;ns&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'npm start'&lt;/span&gt;

&lt;span class="c"&gt;# Quick docker&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;dps&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'docker ps -a'&lt;/span&gt;
&lt;span class="nb"&gt;alias &lt;/span&gt;&lt;span class="nv"&gt;dstop&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'docker stop $(docker ps -q)'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save and exit (Ctrl+X, Y, Enter if using nano).&lt;/p&gt;

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

&lt;/div&gt;



&lt;h2&gt;
  
  
  Real-Life Example
&lt;/h2&gt;

&lt;p&gt;Before:&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;cd&lt;/span&gt; ~/projects/my-webapp &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mydev  &lt;span class="c"&gt;# That's it!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You just saved keystrokes and your carpal tunnel says thank you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pro Tips
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Keep it memorable&lt;/strong&gt; - Use abbreviations you'll actually remember&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't override existing commands&lt;/strong&gt; - Check before naming your alias&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document complex ones&lt;/strong&gt; - Add comments in your config file&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Share with your team&lt;/strong&gt; - Add aliases to a dotfiles repo everyone can use&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Bonus: Functions for Complex Tasks
&lt;/h2&gt;

&lt;p&gt;If you need more than a simple shortcut, use a function:&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;# Create and navigate into a directory&lt;/span&gt;
mkcd&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="nb"&gt;mkdir&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;# Kill process by name&lt;/span&gt;
killport&lt;span class="o"&gt;()&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    lsof &lt;span class="nt"&gt;-ti&lt;/span&gt;:&lt;span class="nv"&gt;$1&lt;/span&gt; | xargs &lt;span class="nb"&gt;kill&lt;/span&gt; &lt;span class="nt"&gt;-9&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Real Win
&lt;/h2&gt;

&lt;p&gt;Every second counts when you're grinding. These tiny automation wins add up to hours of reclaimed time over a year. More time coding, less time typing the same stuff.&lt;/p&gt;

&lt;p&gt;Start with 5 aliases today. You'll thank yourself tomorrow.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;What's your favorite time-saving alias?&lt;/strong&gt; Drop it in the comments! 👇&lt;/p&gt;

&lt;p&gt;&lt;code&gt;#happycoding&lt;/code&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>bash</category>
      <category>beginners</category>
    </item>
    <item>
      <title>SnippKit — Not Just a Snippet Manager</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Sat, 28 Mar 2026 14:42:32 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/snippkit-not-just-a-snippet-manager-2llb</link>
      <guid>https://dev.to/i_am_yaseen/snippkit-not-just-a-snippet-manager-2llb</guid>
      <description>&lt;p&gt;Most developers store code snippets somewhere.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Notion&lt;/li&gt;
&lt;li&gt;GitHub gists&lt;/li&gt;
&lt;li&gt;Text files&lt;/li&gt;
&lt;li&gt;Random folders&lt;/li&gt;
&lt;li&gt;ChatGPT history&lt;/li&gt;
&lt;li&gt;Sticky notes&lt;/li&gt;
&lt;li&gt;Terminal history&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But snippets today are not just code anymore.&lt;/p&gt;

&lt;p&gt;We save:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CLI commands&lt;/li&gt;
&lt;li&gt;SQL queries&lt;/li&gt;
&lt;li&gt;API requests&lt;/li&gt;
&lt;li&gt;AI prompts&lt;/li&gt;
&lt;li&gt;Config files&lt;/li&gt;
&lt;li&gt;JSON templates&lt;/li&gt;
&lt;li&gt;Regex&lt;/li&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;li&gt;Links&lt;/li&gt;
&lt;li&gt;Debug commands&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s why I built &lt;strong&gt;SnippKit&lt;/strong&gt; — a place to &lt;strong&gt;save, share, organize, and run snippets from anywhere&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This is not just a snippet manager.&lt;br&gt;&lt;br&gt;
It’s more like a &lt;strong&gt;developer toolkit + snippet cloud + automation tools&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffr9kru1jkqoqkc2h7ob8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffr9kru1jkqoqkc2h7ob8.png" alt="Home Page of SnippKit" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What You Can Store in SnippKit
&lt;/h2&gt;

&lt;p&gt;You can save and organize:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Code snippets&lt;/li&gt;
&lt;li&gt;CLI commands&lt;/li&gt;
&lt;li&gt;AI prompts&lt;/li&gt;
&lt;li&gt;Notes&lt;/li&gt;
&lt;li&gt;JSON data&lt;/li&gt;
&lt;li&gt;SQL queries&lt;/li&gt;
&lt;li&gt;Regex&lt;/li&gt;
&lt;li&gt;Links&lt;/li&gt;
&lt;li&gt;Config files&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything can be organized into:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;folders&lt;/li&gt;
&lt;li&gt;collections&lt;/li&gt;
&lt;li&gt;starred snippets&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So your important snippets are always easy to find.&lt;/p&gt;




&lt;h2&gt;
  
  
  Secure Sharing — Ghost Send
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbdhv1vdw8b5wf1x9wwg9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbdhv1vdw8b5wf1x9wwg9.png" alt="Ghost Send" width="800" height="289"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SnippKit has a feature called &lt;strong&gt;Ghost Send&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This allows you to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;share a snippet securely&lt;/li&gt;
&lt;li&gt;send a private link&lt;/li&gt;
&lt;li&gt;control who can access it&lt;/li&gt;
&lt;li&gt;share sensitive configs safely&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API examples&lt;/li&gt;
&lt;li&gt;server configs&lt;/li&gt;
&lt;li&gt;deployment commands&lt;/li&gt;
&lt;li&gt;debugging snippets&lt;/li&gt;
&lt;li&gt;team sharing&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Communities and Organization Sharing
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4gwqkxz4y7bbxksceoi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs4gwqkxz4y7bbxksceoi.png" alt="Organization" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SnippKit supports &lt;strong&gt;organization and community sharing&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;WhatsApp groups for developers&lt;/li&gt;
&lt;li&gt;Teams sharing snippet collections&lt;/li&gt;
&lt;li&gt;Policy-based sharing like AWS IAM&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;create groups&lt;/li&gt;
&lt;li&gt;share collections to specific groups&lt;/li&gt;
&lt;li&gt;control who can view or edit snippets&lt;/li&gt;
&lt;li&gt;manage snippet access policies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;teams&lt;/li&gt;
&lt;li&gt;open source communities&lt;/li&gt;
&lt;li&gt;developer groups&lt;/li&gt;
&lt;li&gt;classrooms&lt;/li&gt;
&lt;li&gt;companies&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Run Commands from Cloud Using SNIX CLI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuldlp863z0l7qdyulpz6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuldlp863z0l7qdyulpz6.png" alt="Snix CLI" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SnippKit includes a CLI tool called &lt;strong&gt;Snix&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You can run commands stored in the cloud directly from your terminal.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Save a deployment command in SnippKit&lt;/li&gt;
&lt;li&gt;Open terminal&lt;/li&gt;
&lt;li&gt;Run using Snix CLI&lt;/li&gt;
&lt;li&gt;Command executes instantly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;deployment commands&lt;/li&gt;
&lt;li&gt;docker commands&lt;/li&gt;
&lt;li&gt;git workflows&lt;/li&gt;
&lt;li&gt;ssh commands&lt;/li&gt;
&lt;li&gt;database commands&lt;/li&gt;
&lt;li&gt;build scripts&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Chrome Extension — Save From Anywhere
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk7gskn0fvwkvgm50u2aa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk7gskn0fvwkvgm50u2aa.png" alt="Chrome Extension - SnippKit Saver" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SnippKit also has a &lt;strong&gt;Chrome Extension&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;save code from GitHub&lt;/li&gt;
&lt;li&gt;save commands from documentation&lt;/li&gt;
&lt;li&gt;save AI prompts&lt;/li&gt;
&lt;li&gt;save StackOverflow solutions&lt;/li&gt;
&lt;li&gt;save configs from blogs&lt;/li&gt;
&lt;li&gt;save anything from the web&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just save directly from the browser.&lt;/p&gt;




&lt;h2&gt;
  
  
  VS Code Integration
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcwxuojz9gpismznfdv6a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcwxuojz9gpismznfdv6a.png" alt="VS Code Extension" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can &lt;strong&gt;save snippets directly from VS Code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This makes it very easy to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;save useful functions&lt;/li&gt;
&lt;li&gt;save configs&lt;/li&gt;
&lt;li&gt;save reusable components&lt;/li&gt;
&lt;li&gt;save queries&lt;/li&gt;
&lt;li&gt;save scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Without leaving your editor.&lt;/p&gt;




&lt;h2&gt;
  
  
  Code to Image (Carbon-like Feature)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flnol1yywv4reuxvd5fqi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flnol1yywv4reuxvd5fqi.png" alt="Karbon Studio" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SnippKit has a feature similar to Carbon.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;convert code into beautiful images&lt;/li&gt;
&lt;li&gt;customize themes&lt;/li&gt;
&lt;li&gt;export code images&lt;/li&gt;
&lt;li&gt;share on social media&lt;/li&gt;
&lt;li&gt;share in documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Very useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;blog posts&lt;/li&gt;
&lt;li&gt;documentation&lt;/li&gt;
&lt;li&gt;social media posts&lt;/li&gt;
&lt;li&gt;tutorials&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  JSON as a Service
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xct3xs48cznqf6ipk7v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xct3xs48cznqf6ipk7v.png" alt="JAAS" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SnippKit also provides &lt;strong&gt;JSON as a Service&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;store JSON&lt;/li&gt;
&lt;li&gt;get an endpoint&lt;/li&gt;
&lt;li&gt;use it as mock API&lt;/li&gt;
&lt;li&gt;test frontend apps&lt;/li&gt;
&lt;li&gt;test fetch requests&lt;/li&gt;
&lt;li&gt;prototype apps quickly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Very useful for frontend development and testing.&lt;/p&gt;




&lt;h2&gt;
  
  
  40+ Built-in Developer Tools
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ftc9vo3tv40vcoq5eqj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ftc9vo3tv40vcoq5eqj.png" alt="DevTools" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SnippKit includes &lt;strong&gt;40+ developer tools&lt;/strong&gt;, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Base64 encoder / decoder&lt;/li&gt;
&lt;li&gt;Color palette generator&lt;/li&gt;
&lt;li&gt;QR code studio&lt;/li&gt;
&lt;li&gt;Character counter&lt;/li&gt;
&lt;li&gt;File size calculator&lt;/li&gt;
&lt;li&gt;JSON formatter&lt;/li&gt;
&lt;li&gt;URL encoder&lt;/li&gt;
&lt;li&gt;Timestamp converter&lt;/li&gt;
&lt;li&gt;Hash generator&lt;/li&gt;
&lt;li&gt;Text utilities&lt;/li&gt;
&lt;li&gt;And many more&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So it’s not just snippets — it’s also a &lt;strong&gt;developer toolbox&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  AI Features — SIDR AI
&lt;/h2&gt;

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

&lt;p&gt;SnippKit includes &lt;strong&gt;SIDR AI&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;generate code&lt;/li&gt;
&lt;li&gt;explain saved code&lt;/li&gt;
&lt;li&gt;help understand snippets later&lt;/li&gt;
&lt;li&gt;generate scripts&lt;/li&gt;
&lt;li&gt;generate regex&lt;/li&gt;
&lt;li&gt;generate SQL queries&lt;/li&gt;
&lt;li&gt;generate CLI commands&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is also &lt;strong&gt;AI code explanation&lt;/strong&gt;, so when you open an old snippet, you can instantly see what the code does.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc6bs5shj9zpw1yi8zrg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuc6bs5shj9zpw1yi8zrg.png" alt="Ai Explanation" width="800" height="479"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Very useful when revisiting old snippets.&lt;/p&gt;




&lt;h2&gt;
  
  
  SnippKit Blog
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fudyjb1pkrvnfongxm5j6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fudyjb1pkrvnfongxm5j6.png" alt="SnippKit Blog" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SnippKit also has a &lt;strong&gt;blog&lt;/strong&gt; where:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;updates are posted&lt;/li&gt;
&lt;li&gt;new features announced&lt;/li&gt;
&lt;li&gt;developer tips shared&lt;/li&gt;
&lt;li&gt;tools explained&lt;/li&gt;
&lt;li&gt;tutorials posted&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Easy Profile Sharing via QR Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jcp7y6gwoonzo31ryx8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6jcp7y6gwoonzo31ryx8.png" alt="QR Sharing" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can share your SnippKit profile using a &lt;strong&gt;QR code&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;conferences&lt;/li&gt;
&lt;li&gt;meetups&lt;/li&gt;
&lt;li&gt;sharing snippet collections&lt;/li&gt;
&lt;li&gt;sharing developer profile&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Keyboard First Workflow
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46uk06n3i7q38fazsujj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F46uk06n3i7q38fazsujj.png" alt="Keyboard first" width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SnippKit is designed to be &lt;strong&gt;keyboard-first&lt;/strong&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;open search&lt;/li&gt;
&lt;li&gt;create snippets&lt;/li&gt;
&lt;li&gt;navigate&lt;/li&gt;
&lt;li&gt;open tools&lt;/li&gt;
&lt;li&gt;switch sections&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also includes &lt;code&gt;ctrl + ;&lt;/code&gt; which shows numbers so that navigations become in a click&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F990vlpb4q4dpywkpwh5d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F990vlpb4q4dpywkpwh5d.png" alt="Shortcut keys" width="800" height="395"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using keyboard shortcuts without touching the mouse.&lt;/p&gt;




&lt;h2&gt;
  
  
  Easter Eggs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7gai18fq88dqhwx0ge6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7gai18fq88dqhwx0ge6.png" alt="Cheat Codes" width="800" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are also some fun &lt;strong&gt;easter eggs&lt;/strong&gt; inside SnippKit.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;typing &lt;strong&gt;sakura&lt;/strong&gt; → falling hearts animation&lt;/li&gt;
&lt;li&gt;typing &lt;strong&gt;rain&lt;/strong&gt; → rain animation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopb5aseazs3073g2ut17.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fopb5aseazs3073g2ut17.png" alt="Easter Eggs" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just small fun things inside the app.&lt;/p&gt;




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

&lt;p&gt;SnippKit started as a simple snippet saver.&lt;/p&gt;

&lt;p&gt;But it slowly became:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;snippet manager&lt;/li&gt;
&lt;li&gt;developer toolbox&lt;/li&gt;
&lt;li&gt;CLI command runner&lt;/li&gt;
&lt;li&gt;snippet sharing platform&lt;/li&gt;
&lt;li&gt;JSON service&lt;/li&gt;
&lt;li&gt;AI code assistant&lt;/li&gt;
&lt;li&gt;developer utilities collection&lt;/li&gt;
&lt;li&gt;community snippet sharing platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Basically a &lt;strong&gt;developer productivity platform&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you're a developer who constantly saves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;code&lt;/li&gt;
&lt;li&gt;commands&lt;/li&gt;
&lt;li&gt;prompts&lt;/li&gt;
&lt;li&gt;configs&lt;/li&gt;
&lt;li&gt;queries&lt;/li&gt;
&lt;li&gt;scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You might find SnippKit useful.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://snippkit.com" rel="noopener noreferrer"&gt;SnippKit&lt;/a&gt; : &lt;a href="https://snippkit.com" rel="noopener noreferrer"&gt;https://snippkit.com&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Built a CLI That Can Create, Fix, and Improve Projects Using Natural Language — Wrath CLI</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Fri, 27 Mar 2026 04:21:37 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/i-built-a-cli-that-can-create-fix-and-improve-projects-using-natural-language-wrath-cli-5732</link>
      <guid>https://dev.to/i_am_yaseen/i-built-a-cli-that-can-create-fix-and-improve-projects-using-natural-language-wrath-cli-5732</guid>
      <description>&lt;p&gt;Most developers spend a lot of time doing repetitive tasks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating project structure&lt;/li&gt;
&lt;li&gt;Fixing common errors&lt;/li&gt;
&lt;li&gt;Adding new features&lt;/li&gt;
&lt;li&gt;Refactoring code&lt;/li&gt;
&lt;li&gt;Improving UI&lt;/li&gt;
&lt;li&gt;Running dev servers&lt;/li&gt;
&lt;li&gt;Understanding project structure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I built a tool called Wrath CLI to handle these tasks directly from the terminal using natural language.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Wrath CLI Can Do
&lt;/h3&gt;

&lt;p&gt;Wrath works by indexing your project and understanding its structure. Once indexed, you can run commands like:&lt;/p&gt;

&lt;p&gt;wrath create "nodejs api with auth"&lt;br&gt;
wrath fix "cannot read property of undefined"&lt;br&gt;
wrath add "profile page with avatar upload"&lt;br&gt;
wrath ui "make dashboard modern"&lt;br&gt;
wrath update "optimize performance"&lt;br&gt;
wrath run npm run dev&lt;/p&gt;

&lt;h3&gt;
  
  
  Available Commands
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;wrath create [description]&lt;/code&gt;&lt;br&gt;
Scaffold a new project using natural language.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrath fix [error]&lt;/code&gt;&lt;br&gt;
Diagnose and fix errors using the project index.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrath run "command"&lt;/code&gt; (eg. command=npm start)&lt;br&gt;
Start dev server with auto-healing.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrath init&lt;/code&gt;&lt;br&gt;
Index the current project into .wrath/index.json.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrath add [feature]&lt;/code&gt;&lt;br&gt;
Add new features, files, or components.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrath ui [description]&lt;/code&gt;&lt;br&gt;
Improve UI professionally.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrath status&lt;/code&gt;&lt;br&gt;
Show current project index state.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrath reindex&lt;/code&gt;&lt;br&gt;
Rebuild the project index.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;wrath update [req]&lt;/code&gt;&lt;br&gt;
Refactor code or improve performance.&lt;/p&gt;

&lt;p&gt;Website&lt;/p&gt;

&lt;p&gt;&lt;a href="https://wrath-cli.vercel.app/" rel="noopener noreferrer"&gt;https://wrath-cli.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal of Wrath is simple:&lt;br&gt;
Make development faster by controlling projects using natural language from the terminal.&lt;/p&gt;

&lt;p&gt;I would love feedback and ideas from the community.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>git worktree: Work on Multiple Branches at the Same Time</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Tue, 24 Mar 2026 05:06:07 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/git-worktree-work-on-multiple-branches-at-the-same-time-17od</link>
      <guid>https://dev.to/i_am_yaseen/git-worktree-work-on-multiple-branches-at-the-same-time-17od</guid>
      <description>&lt;p&gt;Most developers handle parallel work one of two ways — stash everything and switch branches, or clone the repo a second time. Both work, but both have friction. git worktree is the cleaner solution that ships with Git itself.&lt;/p&gt;




&lt;h3&gt;
  
  
  What it does
&lt;/h3&gt;

&lt;p&gt;git worktree lets you check out multiple branches simultaneously, each in its own directory on disk. They share the same Git history and object database, so there's no duplication, no sync issues, and no separate remote to manage.&lt;/p&gt;




&lt;h3&gt;
  
  
  Basic usage
&lt;/h3&gt;

&lt;p&gt;git worktree add ../project-hotfix hotfix-branch&lt;/p&gt;

&lt;p&gt;You now have two working directories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;/project — your original branch, untouched&lt;/li&gt;
&lt;li&gt;/project-hotfix — hotfix-branch, fully checked out and ready&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Open a second terminal, cd into the new folder, and work normally. Both are live at the same time.&lt;/p&gt;




&lt;h3&gt;
  
  
  Practical scenarios
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Production bug comes in mid-feature&lt;/strong&gt;&lt;br&gt;
Don't stash. Don't switch. Just open the hotfix worktree in a new terminal, fix it, push, close the terminal. Your feature branch is exactly as you left it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Running tests on two branches simultaneously&lt;/strong&gt;&lt;br&gt;
Start the test suite in both worktree directories at the same time and compare output directly. Useful when you're benchmarking or verifying a fix didn't break something on another branch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reviewing a large PR properly&lt;/strong&gt;&lt;br&gt;
Instead of checking out the PR branch and losing your work, add it as a worktree, run the code, then remove the worktree when done.&lt;/p&gt;




&lt;h2&gt;
  
  
  Other commands worth knowing
&lt;/h2&gt;

&lt;h3&gt;
  
  
  List all active worktrees
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;git worktree list&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Remove a worktree when you're done
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;git worktree remove ../project-hotfix&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create a worktree with a new branch (doesn't have to exist yet)
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;git worktree add ../experiment -b experiment-branch&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  One constraint
&lt;/h3&gt;

&lt;p&gt;You cannot check out the same branch in two worktrees at the same time. Each worktree needs a unique branch. If you try, Git will error with a clear message.&lt;/p&gt;




&lt;h3&gt;
  
  
  Worth noting
&lt;/h3&gt;

&lt;p&gt;git worktree has been available since Git 2.5 (released 2015). No plugins, no configuration, nothing to install. It's just there.&lt;/p&gt;

&lt;p&gt;If you work on a codebase where context switching is frequent — multiple ongoing features, regular hotfixes, or heavy PR review load — worktrees are worth making a habit.&lt;/p&gt;

</description>
      <category>git</category>
      <category>productivity</category>
      <category>tooling</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Discover Hidden APIs Using Chrome DevTools</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Tue, 17 Mar 2026 15:18:54 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/discover-hidden-apis-using-chrome-devtools-13ll</link>
      <guid>https://dev.to/i_am_yaseen/discover-hidden-apis-using-chrome-devtools-13ll</guid>
      <description>&lt;p&gt;Many developers try to extract data from websites by scraping HTML.&lt;/p&gt;

&lt;p&gt;That approach usually involves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;fetching the page&lt;/li&gt;
&lt;li&gt;parsing the DOM&lt;/li&gt;
&lt;li&gt;extracting elements using selectors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But modern web applications rarely render their data directly in HTML.&lt;/p&gt;

&lt;p&gt;Instead, most sites load data through internal APIs that the frontend calls.&lt;/p&gt;

&lt;p&gt;If you can find those APIs, you can often access clean structured data instead of parsing HTML.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Trick: Use DevTools Network Tab
&lt;/h2&gt;

&lt;p&gt;You can discover these APIs directly from the browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1 — Open Chrome DevTools
&lt;/h3&gt;

&lt;p&gt;Press: &lt;code&gt;F12&lt;/code&gt; or &lt;code&gt;Right Click → Inspect&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2 — Go to the Network Tab
&lt;/h3&gt;

&lt;p&gt;Open the &lt;strong&gt;Network&lt;/strong&gt; tab inside DevTools.&lt;/p&gt;

&lt;p&gt;This panel shows every request the page makes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3 — Filter API Requests
&lt;/h3&gt;

&lt;p&gt;Click: &lt;code&gt;Fetch/XHR&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;This filters the requests to show only &lt;code&gt;API calls&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Now reload the page. &lt;code&gt;Ctrl + R&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4 — Inspect JSON Responses
&lt;/h3&gt;

&lt;p&gt;Look for requests returning &lt;strong&gt;JSON data&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Examples might look like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;graphql&lt;/span&gt;
&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;posts&lt;/span&gt;
&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;
&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;api&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nx"&gt;search&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Click any request and open the &lt;strong&gt;Response tab&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;You may see something like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Example Article"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"author"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Jane Doe"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&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;"publishedAt"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"2026-03-17"&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 means you just discovered the &lt;code&gt;API powering the page&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Why This Is Useful&lt;/p&gt;

&lt;p&gt;Instead of scraping HTML, using the API often provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structured JSON data&lt;/li&gt;
&lt;li&gt;faster requests&lt;/li&gt;
&lt;li&gt;more reliable results&lt;/li&gt;
&lt;li&gt;easier integrations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Many APIs require authentication or have usage restrictions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Final Thoughts
&lt;/h3&gt;

&lt;p&gt;Modern websites are essentially &lt;strong&gt;frontends built on top of APIs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Once you know how to inspect network requests, you can quickly understand how data flows inside an application.&lt;/p&gt;

&lt;p&gt;And sometimes, the easiest way to get data from a website is simply to &lt;strong&gt;use the same API the frontend already uses&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>security</category>
      <category>architecture</category>
    </item>
    <item>
      <title>Debug Code Faster Using AI</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Tue, 17 Mar 2026 09:25:09 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/debug-code-faster-using-ai-4fia</link>
      <guid>https://dev.to/i_am_yaseen/debug-code-faster-using-ai-4fia</guid>
      <description>&lt;p&gt;Debugging can sometimes take longer than writing the code itself.&lt;/p&gt;

&lt;p&gt;A common workflow is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Search the error message&lt;/li&gt;
&lt;li&gt;Open several StackOverflow links&lt;/li&gt;
&lt;li&gt;Try solutions one by one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A faster workflow is using AI.&lt;/p&gt;

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

&lt;p&gt;&lt;code&gt;Here is my code and the error message.&lt;br&gt;
Explain why this error occurs and suggest a fix.&lt;/code&gt;&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Explain the issue&lt;/li&gt;
&lt;li&gt;Identify the problematic line&lt;/li&gt;
&lt;li&gt;Suggest fixes&lt;/li&gt;
&lt;li&gt;Provide a corrected example&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes debugging &lt;strong&gt;faster and more educational&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Stop Googling Regex — Use AI Instead</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Mon, 16 Mar 2026 14:52:22 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/stop-googling-regex-use-ai-instead-1d37</link>
      <guid>https://dev.to/i_am_yaseen/stop-googling-regex-use-ai-instead-1d37</guid>
      <description>&lt;p&gt;Regex is one of those things developers rarely remember.&lt;/p&gt;

&lt;p&gt;Most of us search:&lt;br&gt;
&lt;code&gt;regex email validation javascript&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;A faster approach is using AI.&lt;/p&gt;

&lt;p&gt;Example prompt:&lt;br&gt;
&lt;code&gt;Generate a regex to extract all email addresses from the following text.&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Paste your sample text and AI will generate the regex instantly.&lt;/p&gt;

&lt;p&gt;You can then test it in tools like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;regex101&lt;/li&gt;
&lt;li&gt;VS Code search&lt;/li&gt;
&lt;li&gt;JavaScript console&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This turns a 20 minute problem into a 20 second solution.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>regex</category>
      <category>programming</category>
      <category>javascript</category>
    </item>
    <item>
      <title>The day I stopped Googling "how to rename 50 files at once" and just learned the CLI</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Mon, 16 Mar 2026 04:42:01 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/the-day-i-stopped-googling-how-to-rename-50-files-at-once-and-just-learned-the-cli-gnc</link>
      <guid>https://dev.to/i_am_yaseen/the-day-i-stopped-googling-how-to-rename-50-files-at-once-and-just-learned-the-cli-gnc</guid>
      <description>&lt;p&gt;It started with a stupid problem. I had a folder with 60 screenshots named something like &lt;code&gt;Screenshot 2024-03-14 at 10.32.11 AM.png&lt;/code&gt;, and I needed them all renamed to a clean &lt;code&gt;img-001.png&lt;/code&gt; format before shipping assets to a client.&lt;/p&gt;

&lt;p&gt;My first instinct? Google it. Find a Stack Overflow answer. Copy a bash one-liner. Paste it. Pray. It worked — but I had zero idea what it did.&lt;/p&gt;

&lt;p&gt;That moment made me realize something uncomfortable: I'd been treating the terminal like a vending machine. Put in a query, get out a command, move on. I understood nothing about what was actually happening.&lt;/p&gt;

&lt;p&gt;So I spent a weekend actually learning a handful of CLI tools — not to become a Unix wizard, just to stop feeling helpless every time I opened a terminal. It changed how I work in ways I didn't expect.&lt;/p&gt;

&lt;p&gt;Here's the thing about CLI tools: they compose. Once you understand tools like &lt;code&gt;find&lt;/code&gt;, &lt;code&gt;xargs&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt;, and &lt;code&gt;awk&lt;/code&gt; at even a basic level, you can chain them together to solve problems that would otherwise require writing a whole script or installing a GUI app.&lt;/p&gt;

&lt;p&gt;Want to find every &lt;code&gt;.env&lt;/code&gt; file you accidentally committed?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git log --all --full-history -- "**/.env"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Want to count how many times a specific function is called across your whole codebase?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;grep -r "fetchUser" ./src | wc -l&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Want to bulk-replace a deprecated API call across 30 files?&lt;/p&gt;

&lt;p&gt;&lt;code&gt;find ./src -name "*.js" | xargs sed -i 's/oldMethod/newMethod/g'&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;None of these are magic. They're small tools doing one job well, piped together. That's the whole Unix philosophy — and once it clicks, it starts feeling like a superpower.&lt;/p&gt;

&lt;p&gt;Beyond the built-in tools, the modern CLI ecosystem is genuinely exciting right now. Tools like &lt;code&gt;fzf&lt;/code&gt; (fuzzy file finder), &lt;code&gt;ripgrep&lt;/code&gt; (grep but fast), &lt;code&gt;ba&lt;/code&gt;t (cat but readable), and &lt;code&gt;zoxide&lt;/code&gt; (smarter &lt;code&gt;cd&lt;/code&gt;) are worth adding to your setup. They slot into your existing workflow without demanding you relearn anything.&lt;/p&gt;

&lt;p&gt;The real shift isn't about memorizing commands. It's about developing intuition — knowing "this is a job for the terminal" versus "this needs a script" versus "this needs a proper tool." That judgment gets sharper the more you practice.&lt;/p&gt;

&lt;p&gt;Start small. Next time you're about to reach for a GUI file manager or write a throwaway Python script for a file task — try the terminal first. Look up one new command. Understand what it does before running it.&lt;/p&gt;

&lt;p&gt;You won't regret it. Except maybe the first time you run &lt;code&gt;rm -rf&lt;/code&gt; in the wrong directory. But that's a lesson you only need once.&lt;/p&gt;

</description>
      <category>cli</category>
      <category>productivity</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The Easiest Way to Style Active Links in Next.js App Router (2026)</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Fri, 23 Jan 2026 10:22:20 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/the-easiest-way-to-style-active-links-in-nextjs-app-router-2026-ogp</link>
      <guid>https://dev.to/i_am_yaseen/the-easiest-way-to-style-active-links-in-nextjs-app-router-2026-ogp</guid>
      <description>&lt;p&gt;If you have moved to the Next.js App Router, you probably noticed that &lt;code&gt;activeClassName&lt;/code&gt; is gone. &lt;/p&gt;

&lt;p&gt;To style a Sidebar link when it is active, you now have to use the &lt;code&gt;usePathname&lt;/code&gt; hook.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Hard Way (Manual)
&lt;/h3&gt;

&lt;p&gt;You usually end up writing code like this for every single link:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;use client&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;usePathname&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/navigation&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;Link&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next/link&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;Navbar&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;pathname&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;usePathname&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;nav&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Link&lt;/span&gt; 
        &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt; 
        &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;pathname&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;active&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;''&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        Home
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;Link&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
       &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="cm"&gt;/* Repeat this logic 5 more times... */&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;nav&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This works, but it clutters your component code significantly.&lt;/p&gt;

&lt;p&gt;The Easy Way (Using a Wrapper)&lt;br&gt;
I built a tiny package to solve exactly this. It brings back the cleaner syntax we used to have.&lt;/p&gt;

&lt;p&gt;Step 1: Install &lt;code&gt;npm install next-app-active-link&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Step 2: Use It works exactly like the standard Link component, but cleaner:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ActiveLink&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;next-app-active-link&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;ActiveLink&lt;/span&gt; &lt;span class="na"&gt;href&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"/about"&lt;/span&gt; &lt;span class="na"&gt;activeClassName&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"text-blue-500 underline"&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  About
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nc"&gt;ActiveLink&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. It handles the usePathname logic internally, keeps your code dry, and is fully typed for TypeScript.&lt;/p&gt;

&lt;p&gt;Npm Package Link &lt;a href="https://www.npmjs.com/package/next-app-active-link" rel="noopener noreferrer"&gt;next-app-active-link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope this saves you some time!&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Definitely worth reading</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Thu, 31 Jul 2025 03:54:56 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/definitely-worth-reading-4838</link>
      <guid>https://dev.to/i_am_yaseen/definitely-worth-reading-4838</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/jenueldev/the-hidden-cost-of-free-ai-dont-let-chatgpt-replace-your-thinking-3mfi" class="crayons-story__hidden-navigation-link"&gt;The Hidden Cost of Free AI: Don’t Let ChatGPT Replace Your Thinking&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/jenueldev" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F298966%2Fa0b07775-fff3-4c12-b48b-20ed22d5165a.webp" alt="jenueldev profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/jenueldev" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Jenuel Oras Ganawed
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Jenuel Oras Ganawed
                
              
              &lt;div id="story-author-preview-content-2740375" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/jenueldev" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F298966%2Fa0b07775-fff3-4c12-b48b-20ed22d5165a.webp" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Jenuel Oras Ganawed&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/jenueldev/the-hidden-cost-of-free-ai-dont-let-chatgpt-replace-your-thinking-3mfi" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 29 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/jenueldev/the-hidden-cost-of-free-ai-dont-let-chatgpt-replace-your-thinking-3mfi" id="article-link-2740375"&gt;
          The Hidden Cost of Free AI: Don’t Let ChatGPT Replace Your Thinking
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/jenueldev/the-hidden-cost-of-free-ai-dont-let-chatgpt-replace-your-thinking-3mfi" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;11&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/jenueldev/the-hidden-cost-of-free-ai-dont-let-chatgpt-replace-your-thinking-3mfi#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              2&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>programming</category>
      <category>ai</category>
      <category>webdev</category>
      <category>productivity</category>
    </item>
    <item>
      <title>7 Tips That Actually Helped Me Get Better at Programming (Stuff No One Taught Me)</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Sat, 26 Jul 2025 20:10:36 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/7-tips-that-actually-helped-me-get-better-at-programming-stuff-no-one-taught-me-3f9a</link>
      <guid>https://dev.to/i_am_yaseen/7-tips-that-actually-helped-me-get-better-at-programming-stuff-no-one-taught-me-3f9a</guid>
      <description>&lt;p&gt;Hey folks,&lt;br&gt;
I wanted to share a few small things that made a big difference in my coding journey — not the kind of stuff you get in tutorials or courses, but more like… stuff I figured out after breaking things a lot 😅&lt;/p&gt;

&lt;p&gt;Maybe it helps someone out there who’s still in the trenches.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Just start building — even if it sucks&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Seriously. I kept waiting until I “understood everything” before starting a project. That was a trap.&lt;br&gt;
Turns out, trying to build a super basic app (even badly) taught me more than hours of watching others code. You’ll learn while building. Not before.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get good at Googling&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Nobody remembers everything. The real skill is knowing what to search and how to phrase it.&lt;br&gt;
And it’s totally fine to copy-paste solutions, as long as you understand why it works.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keep a “dump” file&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I always have a random file open (mine’s called junk.js) where I test stuff, break code, or just experiment. It’s like a no-pressure sandbox — no rules, no cleanup, just play.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Console.logs are fine. But learn the debugger&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Took me way too long to realize breakpoints and watch values are actually easy and save you so much time. Especially when stuff gets messy in loops or async code.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;If you can’t explain it, you probably don’t get it&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Try explaining a concept out loud — to yourself or someone else. If you stumble, that’s a clue to revisit it. Writing blog posts or rubber-ducking really helps here.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;It’s okay to delete code&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Sometimes when I’m stuck, the fastest fix is just… deleting the thing and starting over. I used to be scared of that, but it usually ends up cleaner the second time.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You don’t need to know everything&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There’s so much pressure to learn every new framework or language. Truth is, you can go very far by just going deep in one stack. Don’t burn out trying to chase every trend.&lt;/p&gt;

&lt;p&gt;⸻&lt;/p&gt;

&lt;p&gt;That’s it for now. Not groundbreaking, just honest stuff that helped me personally.&lt;br&gt;
If you’ve got a tip that saved you a ton of time or helped things finally click — I’d love to hear it. Drop it in the comments 🙌&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>codenewbie</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I Built a Developer-Focused Snippet Hub to Finally Organize My Coding Life</title>
      <dc:creator>Mohamed Yaseen</dc:creator>
      <pubDate>Wed, 23 Jul 2025 15:25:04 +0000</pubDate>
      <link>https://dev.to/i_am_yaseen/i-built-a-developer-focused-snippet-hub-to-finally-organize-my-coding-life-22l0</link>
      <guid>https://dev.to/i_am_yaseen/i-built-a-developer-focused-snippet-hub-to-finally-organize-my-coding-life-22l0</guid>
      <description>&lt;h2&gt;
  
  
  Introducing SnippKit – My Solution to Code Chaos 🧩
&lt;/h2&gt;

&lt;p&gt;As a developer, I constantly found myself digging through old projects, Notion pages, or random files just to find a single code snippet I had written weeks ago. Sound familiar?&lt;/p&gt;

&lt;p&gt;That’s why I built &lt;strong&gt;&lt;a href="https://snippkit.com" rel="noopener noreferrer"&gt;SnippKit&lt;/a&gt;&lt;/strong&gt; – a clean, focused space where you can &lt;strong&gt;save, manage, and reuse your code snippets&lt;/strong&gt; effortlessly.&lt;/p&gt;




&lt;h2&gt;
  
  
  🔧 Why I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted something:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Simple, fast, and clean.&lt;/li&gt;
&lt;li&gt;That supported &lt;strong&gt;syntax highlighting&lt;/strong&gt; and &lt;strong&gt;multi-language snippets&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;That didn't just dump everything in a list but let me &lt;strong&gt;organize by tags, folders, or favorites&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;That respected &lt;strong&gt;my privacy&lt;/strong&gt;, but still allowed me to share a snippet when I wanted to.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There were some tools out there, but they either felt bloated, outdated, or not built with modern developers in mind.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;🚀 Save your favorite snippets with &lt;strong&gt;language support&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🏷️ Tag-based organization&lt;/li&gt;
&lt;li&gt;🔐 Public by default but changeable, shareable when needed&lt;/li&gt;
&lt;li&gt;🔎 Instant search &amp;amp; filter&lt;/li&gt;
&lt;li&gt;🌘 Built-in dark/light mode&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bonus: It's also &lt;strong&gt;blazing fast&lt;/strong&gt; ⚡&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Built With
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Next.js&lt;/strong&gt; + &lt;strong&gt;Supabase&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tailwind CSS&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Framer Motion&lt;/strong&gt; for sweet microinteractions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clerk&lt;/strong&gt; for auth&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LemonSqueezy&lt;/strong&gt; for subscription support&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s all part of a #BuildInPublic journey – I’m learning and shipping every day.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;VS Code Extension&lt;/li&gt;
&lt;li&gt;AI tagging &amp;amp; auto-suggestion&lt;/li&gt;
&lt;li&gt;Public snippet sharing&lt;/li&gt;
&lt;li&gt;GitHub import/export&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🗣️ Feedback Wanted!
&lt;/h2&gt;

&lt;p&gt;I'd love to hear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How do you currently manage your code snippets?&lt;/li&gt;
&lt;li&gt;What features would make SnippKit valuable to you?&lt;/li&gt;
&lt;li&gt;What snippet tools do you use (if any)?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Try it out at 👉 &lt;a href="https://snippkit.com" rel="noopener noreferrer"&gt;snippkit.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
And follow my build journey on Twitter: &lt;a href="https://x.com/i_am_yaseen" rel="noopener noreferrer"&gt;@i_am_yaseen&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading 🙏&lt;br&gt;&lt;br&gt;
Let’s organize code like pros 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>javascript</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
