<?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: Arick Bulakali</title>
    <description>The latest articles on DEV Community by Arick Bulakali (@ndekocode).</description>
    <link>https://dev.to/ndekocode</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%2F894526%2Fc19a4cc5-0ee5-4965-a4b6-f69fdc2b3788.jpeg</url>
      <title>DEV Community: Arick Bulakali</title>
      <link>https://dev.to/ndekocode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ndekocode"/>
    <language>en</language>
    <item>
      <title>How to Write Better Commits and Pull Requests for Clean and Scalable Projects</title>
      <dc:creator>Arick Bulakali</dc:creator>
      <pubDate>Sat, 26 Apr 2025 01:01:30 +0000</pubDate>
      <link>https://dev.to/ndekocode/how-to-write-better-commits-and-pull-requests-for-clean-and-scalable-projects-3b1n</link>
      <guid>https://dev.to/ndekocode/how-to-write-better-commits-and-pull-requests-for-clean-and-scalable-projects-3b1n</guid>
      <description>&lt;p&gt;When a team’s Git history is chaotic, collaboration becomes painful, code reviews get slower, and releases are harder to manage.&lt;br&gt;&lt;br&gt;
On the other hand, clear commits and well-structured pull requests &lt;strong&gt;build trust, speed up teamwork, and prepare your project for real scalability&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This article explains how to write better commits and pull requests — with &lt;strong&gt;concrete examples&lt;/strong&gt;, &lt;strong&gt;professional practices&lt;/strong&gt;, and &lt;strong&gt;real reasoning behind every rule&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you want your projects to be clean, scalable, and contributor-friendly, this guide is for you.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why It Matters: Beyond “Just Following Rules”
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Understandable history&lt;/strong&gt;: Good commits act as a living documentation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Efficient teamwork&lt;/strong&gt;: Pull requests are easier to review and merge.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reliable automation&lt;/strong&gt;: Changelogs, releases, and CI/CD pipelines depend on well-structured commits and PRs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Professional image&lt;/strong&gt;: Whether you work in open-source, freelancing, startups, or corporations, a clean workflow reflects your engineering standards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Good commits and pull requests are not bureaucracy.&lt;br&gt;&lt;br&gt;
They are an investment in the long-term quality and speed of your project.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  1. How to Write Effective Commit Messages
&lt;/h2&gt;
&lt;h3&gt;
  
  
  The Structure You Should Use
&lt;/h3&gt;

&lt;p&gt;Follow the &lt;strong&gt;Conventional Commits&lt;/strong&gt; format:&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;type&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;scope&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;module] short description
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;type&lt;/code&gt;: The type of change (&lt;code&gt;feat&lt;/code&gt;, &lt;code&gt;fix&lt;/code&gt;, &lt;code&gt;docs&lt;/code&gt;, etc.).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;(scope)&lt;/code&gt;: The part of the project (optional but recommended) like &lt;code&gt;api&lt;/code&gt;, &lt;code&gt;web&lt;/code&gt;, &lt;code&gt;auth&lt;/code&gt;, &lt;code&gt;dashboard&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;[module]&lt;/code&gt;: The feature or topic touched by the change.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;short description&lt;/code&gt;: A simple, imperative sentence starting with a verb ("add", "fix", "improve", "refactor", …) — no period at the end.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Good Examples:&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;feat&lt;span class="o"&gt;(&lt;/span&gt;web&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;authentication] add login form validation
fix&lt;span class="o"&gt;(&lt;/span&gt;api&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;user-service] resolve user timezone conversion
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Bad Examples (too vague and useless for your future self or teammates):&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;update code
fix
working on something
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Standard Types You Should Use
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;feat&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Adding a new feature&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;fix&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Fixing a bug&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;docs&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Documentation changes only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;style&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Formatting changes (no logic change)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;refactor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Code restructuring without behavior change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;test&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Adding or updating tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;chore&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Maintenance tasks (builds, tooling)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ci&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Changes to CI/CD pipelines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;build&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Build system or dependency changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;perf&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Code changes that improve performance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;revert&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Revert a previous commit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;deps&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Updating dependencies&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These types make your Git history &lt;strong&gt;easier to filter, automate, and understand&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Other Examples of Good Commit Messages
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;➔ Adding a feature&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;feat&lt;span class="o"&gt;(&lt;/span&gt;web&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;authentication] add login route
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Fixing a bug&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;fix&lt;span class="o"&gt;(&lt;/span&gt;api&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;posts] resolve post creation issue
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Updating documentation&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;docs&lt;span class="o"&gt;(&lt;/span&gt;mobile&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;readme] update installation instructions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Changing code style&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;style&lt;span class="o"&gt;(&lt;/span&gt;web&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;fonts] adjust font formatting
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Refactoring code&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;refactor&lt;span class="o"&gt;(&lt;/span&gt;api&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;performance] optimize database queries
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Updating tests&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;test&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;web&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;authentication] add tests &lt;span class="k"&gt;for &lt;/span&gt;login functionality
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Maintenance / Chore&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;chore&lt;span class="o"&gt;(&lt;/span&gt;mobile&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;dependencies] update third-party libraries
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Updating build system&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;build&lt;span class="o"&gt;(&lt;/span&gt;web&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;webpack] upgrade to version 5.0.0
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ CI/CD configuration change&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;ci: &lt;span class="o"&gt;[&lt;/span&gt;github-actions] update workflow configuration
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Improving performance&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;perf&lt;span class="o"&gt;(&lt;/span&gt;api&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;caching] implement result caching
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Reverting a previous commit&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;revert&lt;span class="o"&gt;(&lt;/span&gt;web&lt;span class="o"&gt;)&lt;/span&gt;: revert &lt;span class="s2"&gt;"feat(authentication): add login route"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;➔ Updating dependencies&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;deps: &lt;span class="o"&gt;[&lt;/span&gt;all] update to latest version of dependencies
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Practical Commit Writing Tips
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with a verb&lt;/strong&gt;: “add”, “fix”, “improve”, “refactor”, “remove”, “update”.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Make each commit focused&lt;/strong&gt;: One change = One commit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No WIP commits&lt;/strong&gt; in main branches (&lt;code&gt;main&lt;/code&gt;, &lt;code&gt;develop&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Explain why if necessary&lt;/strong&gt;: Small clarification in the body of the commit is okay.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use clear, neutral English&lt;/strong&gt; — avoid slang or jokes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example with a body:&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;refactor&lt;span class="o"&gt;(&lt;/span&gt;api&lt;span class="o"&gt;)&lt;/span&gt;: &lt;span class="o"&gt;[&lt;/span&gt;user-service] simplify timezone handling

Remove duplicated timezone conversion logic.  
Use built-in Date API instead of manual parsing.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
While this guide provides a clean and widely-accepted structure, some companies or projects may use their own commit formats adapted to specific CI/CD tools or internal policies (for example, &lt;code&gt;[FIX] module: message&lt;/code&gt;, &lt;code&gt;[ENH]&lt;/code&gt; style).&lt;br&gt;&lt;br&gt;
Always check and follow the contribution guidelines of the project you are working on when necessary.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  2. How to Write Effective Pull Requests
&lt;/h2&gt;

&lt;p&gt;A pull request is &lt;strong&gt;not just code&lt;/strong&gt;. It is a conversation and a story.&lt;/p&gt;

&lt;p&gt;Treat it seriously, and you will speed up reviews, avoid misunderstandings, and improve team velocity.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pull Request Title Structure
&lt;/h3&gt;

&lt;p&gt;Follow this format:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[Type]-APP-#Issue short description
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;[Type]&lt;/code&gt;: Type of change (capitalized) &lt;code&gt;[Feat]&lt;/code&gt;, &lt;code&gt;[Fix]&lt;/code&gt;, &lt;code&gt;[Docs]&lt;/code&gt;, etc.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;APP&lt;/code&gt;: Major part of the project: &lt;code&gt;WEB&lt;/code&gt;, &lt;code&gt;API&lt;/code&gt;, &lt;code&gt;MOBILE&lt;/code&gt;, &lt;code&gt;DESKTOP&lt;/code&gt;, etc.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;#Issue&lt;/code&gt;: The issue number related to this PR.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;short description&lt;/code&gt;: Simple, clear, action-driven sentence.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Examples:&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;[Feat]-WEB-#1234 add user profile editing page
[Fix]-API-#1250 fix incorrect password reset tokens
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Pull Request Description Template
&lt;/h3&gt;

&lt;p&gt;Always fill your PR description properly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;### What was done&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Implemented user profile editing page
&lt;span class="p"&gt;-&lt;/span&gt; Added form validation and error handling

&lt;span class="gu"&gt;### Related issue&lt;/span&gt;
Closes #1234

&lt;span class="gu"&gt;### How to test&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Go to &lt;span class="sb"&gt;`/profile/edit`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Try updating your name and profile picture
&lt;span class="p"&gt;-&lt;/span&gt; Submit invalid data to see validation errors

&lt;span class="gu"&gt;### Additional notes&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; No database migrations needed
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  3. Best Practices for Commits and PRs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Small, Focused Commits
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Each commit should represent one logical change.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Split your work if necessary. This makes reviewing, reverting, or debugging much easier.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Small and Clear Pull Requests
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Ideal pull request size: ~300–500 lines changed.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Big PRs are harder to review and more prone to bugs.&lt;/p&gt;

&lt;p&gt;If your PR is getting too big:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Split into smaller PRs.&lt;/li&gt;
&lt;li&gt;Clearly explain why if you must keep it big.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Link Related Issues
&lt;/h3&gt;

&lt;p&gt;Always link your PR to its related issues using keywords like &lt;code&gt;Closes #1234&lt;/code&gt; or &lt;code&gt;Fixes #1250&lt;/code&gt;.&lt;br&gt;&lt;br&gt;
This keeps tracking automatic in GitHub, GitLab, Bitbucket, etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Keep Descriptions Professional and Practical
&lt;/h3&gt;

&lt;p&gt;No jokes or vague comments in commit or PR descriptions.&lt;/p&gt;

&lt;p&gt;Assume that someone you don’t know — your future teammates or even future you — will read these commits and PRs.&lt;br&gt;&lt;br&gt;
Stay clear, neutral, and professional.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Use Tools That Enforce Good Practices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Commitlint&lt;/strong&gt; + &lt;strong&gt;Husky&lt;/strong&gt;: Force commit message conventions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conventional Commits&lt;/strong&gt;: Standardize commit types.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Release&lt;/strong&gt;: Automate versioning based on commits.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prettier&lt;/strong&gt;, &lt;strong&gt;ESLint&lt;/strong&gt;: Keep code clean before even pushing it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Good tools make good practices automatic.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Discipline = Speed + Quality
&lt;/h2&gt;

&lt;p&gt;Writing good commits and pull requests is not a waste of time —&lt;br&gt;&lt;br&gt;
&lt;strong&gt;it’s what makes professional software development faster, safer, and more scalable.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you want to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Be a developer people enjoy working with&lt;/li&gt;
&lt;li&gt;Maintain clean codebases without fear&lt;/li&gt;
&lt;li&gt;Ship faster with fewer bugs&lt;/li&gt;
&lt;li&gt;Contribute easily to serious open-source projects&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Start today: Write every commit and pull request as if you were reviewing it 6 months from now.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  References and Further Reading
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.conventionalcommits.org/" rel="noopener noreferrer"&gt;Conventional Commits Specification&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.goodreads.com/book/show/3735293-clean-code" rel="noopener noreferrer"&gt;Clean Code by Robert C. Martin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://cbea.ms/git-commit/" rel="noopener noreferrer"&gt;How to Make a Git Commit Message Good&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue" rel="noopener noreferrer"&gt;GitHub Documentation on Closing Issues via PRs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  If you found this helpful, share it with your team.
&lt;/h2&gt;

&lt;p&gt;Clean projects build better futures.&lt;/p&gt;

</description>
      <category>git</category>
      <category>bestpractices</category>
      <category>softwaredevelopment</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
