<?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>Forem: Boonyarit Iamsa-ard</title>
    <description>The latest articles on Forem by Boonyarit Iamsa-ard (@boonyaritiamsaard).</description>
    <link>https://forem.com/boonyaritiamsaard</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%2F372429%2Fcdba1a7f-7174-4bc2-9863-c26186b29d82.png</url>
      <title>Forem: Boonyarit Iamsa-ard</title>
      <link>https://forem.com/boonyaritiamsaard</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/boonyaritiamsaard"/>
    <language>en</language>
    <item>
      <title>Node.js Import Style Guide</title>
      <dc:creator>Boonyarit Iamsa-ard</dc:creator>
      <pubDate>Thu, 10 Apr 2025 14:55:11 +0000</pubDate>
      <link>https://forem.com/boonyaritiamsaard/nodejs-import-style-guide-56ck</link>
      <guid>https://forem.com/boonyaritiamsaard/nodejs-import-style-guide-56ck</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;📄 &lt;em&gt;Original post on &lt;a href="https://boonyarit.me/articles/node-import-style-guide" rel="noopener noreferrer"&gt;boonyarit.me&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When working with built-in Node.js modules, how you import them matters more than you might think. The syntax you choose can affect clarity, performance, compatibility—and even how easily your codebase scales.&lt;/p&gt;

&lt;p&gt;This guide walks through the different import styles and offers a practical rule-of-thumb approach to picking the best one.&lt;/p&gt;

&lt;p&gt;For the record, these are not hard rules—but they &lt;em&gt;are&lt;/em&gt; sensible defaults that align with modern Node.js practices (especially from v16 onward).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt; Use &lt;code&gt;import { method } from 'node:module'&lt;/code&gt; Why? It's explicit, tree-shakable, IDE-friendly, and future-ready.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;import&lt;/code&gt; in Node.js: The Big Picture
&lt;/h2&gt;

&lt;p&gt;Node.js has come a long way from &lt;code&gt;require()&lt;/code&gt;. With ES modules (ESM) support stabilized in modern versions, it's time to level up how we import built-in modules.&lt;/p&gt;

&lt;p&gt;But here's the catch, you've got options. Let's break them down.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔹 Default Import
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;fs&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;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Are you importing the entire module for convenience—even if you don't need everything?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Brings in the whole module as a default export.&lt;/li&gt;
&lt;li&gt;Less efficient for bundlers and tree-shaking.&lt;/li&gt;
&lt;li&gt;Fine for quick scripts, but suboptimal for larger apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔹 Named Import
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;readFile&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;fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Do you only need a specific function or method?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Imports &lt;em&gt;only&lt;/em&gt; what you need.&lt;/li&gt;
&lt;li&gt;More readable and efficient.&lt;/li&gt;
&lt;li&gt;Plays nicely with tree-shaking and autocomplete.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔹 Node Protocol Import
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;fs&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;node:fs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Want to make it crystal clear you're using a Node built-in?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The &lt;code&gt;node:&lt;/code&gt; prefix tells both humans and tools it's a built-in module.&lt;/li&gt;
&lt;li&gt;Reduces ambiguity, especially in monorepos or when mixing npm packages with similar names.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ✅ The Sweet Spot: Named + &lt;code&gt;node:&lt;/code&gt; Prefix
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;readFile&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;node:fs/promises&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;join&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;node:path&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Do you want clarity, efficiency, and future-proofing all at once?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Best of both worlds.&lt;/li&gt;
&lt;li&gt;Clear, focused, and modern.&lt;/li&gt;
&lt;li&gt;Supported in Node.js 16+.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📚 Common Module Examples
&lt;/h2&gt;

&lt;p&gt;Here's how to apply these patterns across popular built-in modules:&lt;/p&gt;

&lt;h3&gt;
  
  
  File System
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;readFileSync&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;writeFileSync&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;node:fs&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;readFile&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;writeFile&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;node:fs/promises&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Path
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;dirname&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;join&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;resolve&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;node:path&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  URL
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;fileURLToPath&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;node:url&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Utils
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;promisify&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;node:util&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ✅ Best Practices Checklist
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Use this:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;method&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;node:module&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;node:&lt;/code&gt; prefix is explicit and modern&lt;/li&gt;
&lt;li&gt;Named imports help reduce bundle size&lt;/li&gt;
&lt;li&gt;Improves readability and IDE support&lt;/li&gt;
&lt;li&gt;Easier to audit and refactor&lt;/li&gt;
&lt;li&gt;Plays well with ESM and future tooling&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Think of your imports as the opening sentence of your code's story. The clearer and more intentional they are, the easier it is for others (and future-you) to follow along. By using the &lt;code&gt;node:&lt;/code&gt; protocol and named imports, you're writing Node.js the way it's meant to be written in 2025.&lt;/p&gt;

&lt;p&gt;Small choices add up—so import smart, stay sharp, and keep your codebase clean.&lt;/p&gt;

&lt;p&gt;Happy coding 🚀&lt;/p&gt;

</description>
      <category>node</category>
      <category>javascript</category>
      <category>typescript</category>
    </item>
    <item>
      <title>Conventional Commit Types: A Rule of Thumb Guide</title>
      <dc:creator>Boonyarit Iamsa-ard</dc:creator>
      <pubDate>Fri, 04 Apr 2025 13:50:32 +0000</pubDate>
      <link>https://forem.com/boonyaritiamsaard/conventional-commit-types-a-rule-of-thumb-guide-1cha</link>
      <guid>https://forem.com/boonyaritiamsaard/conventional-commit-types-a-rule-of-thumb-guide-1cha</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;📄 &lt;em&gt;Original post on &lt;a href="https://boonyarit.me/articles/conventional-commit-types-guide" rel="noopener noreferrer"&gt;boonyarit.me&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Conventional Commits provide a fantastic structure for keeping commit histories clean, understandable, and ready for automated processes like versioning and changelog generation. While the official specification is the definitive guide, choosing the right type can sometimes feel ambiguous. For the complete, definitive guide, please refer to the &lt;a href="https://www.conventionalcommits.org/" rel="noopener noreferrer"&gt;official Conventional Commits specification&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Here's a practical "rule of thumb" approach to help you decide quickly across the common types. Keep in mind that this reflects one perspective on applying the specification; teams or individuals might develop slightly different interpretations based on their context. This guide focuses specifically on helping you choose the right commit &lt;em&gt;type&lt;/em&gt;, which is the most crucial first step.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Focus on the &lt;em&gt;primary intent&lt;/em&gt; of the change. Is it adding value (&lt;code&gt;feat&lt;/code&gt;), fixing something (&lt;code&gt;fix&lt;/code&gt;), improving internals (&lt;code&gt;refactor&lt;/code&gt;, &lt;code&gt;perf&lt;/code&gt;), ensuring quality (&lt;code&gt;test&lt;/code&gt;), managing the build/pipeline (&lt;code&gt;build&lt;/code&gt;, &lt;code&gt;ci&lt;/code&gt;), tidying up (&lt;code&gt;style&lt;/code&gt;, &lt;code&gt;chore&lt;/code&gt;), or explaining things (&lt;code&gt;docs&lt;/code&gt;)? This helps maintain a clear and meaningful commit history.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;feat&lt;/code&gt;: A new feature for the user
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Does this change introduce a new capability, screen, or piece of functionality that the end-user can directly see or interact with?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This type is specifically for additions that deliver tangible value or new options to the user.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Add user login, implement search functionality, create an &lt;code&gt;/about&lt;/code&gt; page, add a "dark mode" toggle.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;fix&lt;/code&gt;: A bug fix for the user
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Does this change correct an error, unexpected behavior, or crash that was negatively impacting the user experience?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This type addresses problems in the existing codebase that prevent it from working as intended for the user.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Prevent form submission on invalid input, correct layout overlap on mobile, fix calculation error in totals.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;style&lt;/code&gt;: Changes that affect style, not meaning (white-space, formatting, missing semi-colons, UI cosmetics)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Does this change &lt;em&gt;only&lt;/em&gt; affect the visual presentation (UI cosmetics like colors, spacing, fonts) or code formatting (whitespace, indentation, punctuation) without altering the underlying logic, functionality, or structure?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This type isolates purely aesthetic changes, whether in the code itself (formatting) or in the user interface (cosmetics), making it clear they don't alter how the application works.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Adjust padding/margins, update color scheme, change fonts, run Prettier/ESLint auto-format, fix indentation, remove trailing whitespace.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;refactor&lt;/code&gt;: Code changes that neither fix a bug nor add a feature
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Does this change restructure existing code for better readability, maintainability, or organization &lt;em&gt;without&lt;/em&gt; changing its external behavior or adding features/fixing bugs?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This type highlights internal improvements to the codebase's health and structure, distinct from user-facing changes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Extract function to reduce duplication, rename variables for clarity, simplify complex conditional logic, convert class component to functional component.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;perf&lt;/code&gt;: Code changes that improve performance
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Does this change specifically aim to make the application faster, use less memory, or reduce resource consumption &lt;em&gt;without&lt;/em&gt; changing features or fixing functional bugs?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This type flags optimizations that enhance the user experience through better performance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Optimize database query, implement lazy loading for images, reduce bundle size.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;test&lt;/code&gt;: Adding missing tests or correcting existing tests
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Does this change involve &lt;em&gt;only&lt;/em&gt; adding, modifying, or correcting automated tests?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This type isolates changes related to the test suite, ensuring code quality and regression prevention.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Add unit tests for a utility function, update integration tests for API changes, fix failing E2E test.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;build&lt;/code&gt;: Changes affecting the build system or external dependencies
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Does this change relate to how the project is built, packaged, or its dependencies (e.g., npm, webpack, Docker)?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This type groups changes related to the development and deployment infrastructure rather than the application code itself.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Update npm packages, configure Webpack loaders, modify Dockerfile build steps, add/remove dependencies.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;ci&lt;/code&gt;: Changes to CI configuration files and scripts
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Does this change relate &lt;em&gt;only&lt;/em&gt; to Continuous Integration configuration or scripts (e.g., GitHub Actions, GitLab CI)?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This type specifically tracks modifications to the automated build, test, and deployment pipelines.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Update GitHub Actions workflow file, fix script in &lt;code&gt;gitlab-ci.yml&lt;/code&gt;, change deployment triggers.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;chore&lt;/code&gt;: Other changes that don't modify &lt;code&gt;src&lt;/code&gt; or &lt;code&gt;test&lt;/code&gt; files
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Is this a maintenance task, configuration change, or other update that doesn't fit elsewhere and doesn't modify application source or test code?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This is often a catch-all for necessary housekeeping tasks that don't fall into the more specific categories.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Update &lt;code&gt;.gitignore&lt;/code&gt;, configure linters/formatters (the config files, not running them), add issue templates.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;code&gt;docs&lt;/code&gt;: Documentation only changes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Rule of Thumb:&lt;/strong&gt; Does this change &lt;em&gt;only&lt;/em&gt; affect documentation files (e.g., README, contribution guides, code comments)?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here's why:&lt;/strong&gt; This type isolates changes purely related to explaining the project or code.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Examples:&lt;/em&gt; Update README.md, add JSDoc comments, create a CONTRIBUTING guide.&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Adopting a consistent approach to Conventional Commits, like the rules of thumb outlined here, significantly enhances project maintainability. Clear commit messages improve collaboration, simplify the release process through automated changelog generation and version bumping, and make navigating the project's history much easier for everyone involved. While these guidelines offer a practical starting point, remember to adapt them as needed to best suit your team's specific workflow and context.&lt;/p&gt;

</description>
      <category>git</category>
      <category>codenewbie</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
