<?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: Ahmed Hdeawy</title>
    <description>The latest articles on DEV Community by Ahmed Hdeawy (@ahmedhdeawy).</description>
    <link>https://dev.to/ahmedhdeawy</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%2F605872%2F008c931d-3ff6-4727-9299-bc7c60c23cf4.jpeg</url>
      <title>DEV Community: Ahmed Hdeawy</title>
      <link>https://dev.to/ahmedhdeawy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ahmedhdeawy"/>
    <language>en</language>
    <item>
      <title>🚀 Laravel API Starter Kit: Build APIs Faster with Modern Tools</title>
      <dc:creator>Ahmed Hdeawy</dc:creator>
      <pubDate>Wed, 30 Apr 2025 09:48:49 +0000</pubDate>
      <link>https://dev.to/ahmedhdeawy/laravel-api-starter-kit-build-apis-faster-with-modern-tools-21ce</link>
      <guid>https://dev.to/ahmedhdeawy/laravel-api-starter-kit-build-apis-faster-with-modern-tools-21ce</guid>
      <description>&lt;h2&gt;
  
  
  Building robust APIs with Laravel just got easier. Introducing the &lt;a href="https://github.com/hdeawy/api-starter-kit" rel="noopener noreferrer"&gt;Laravel API Starter Kit&lt;/a&gt;—a modern, Dockerized foundation designed to accelerate your backend development.
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Idea Brief
&lt;/h2&gt;

&lt;p&gt;The Laravel API Starter Kit is a comprehensive boilerplate designed specifically for backend developers who need to quickly scaffold RESTful APIs using Laravel. Unlike general-purpose starter kits, this one focuses exclusively on API development, implementing industry best practices like Service and Repository patterns to ensure clean, maintainable, and testable code.&lt;br&gt;
This starter kit aims to solve common challenges in API development by providing a standardized structure, consistent response formats, and allowing developers to focus on business logic rather than repetitive boilerplate code.&lt;/p&gt;
&lt;h2&gt;
  
  
  Core Features
&lt;/h2&gt;

&lt;p&gt;The API Starter Kit includes the following core features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Service Class Pattern&lt;/li&gt;
&lt;li&gt;Repository Pattern&lt;/li&gt;
&lt;li&gt;Standardized API Response Structure&lt;/li&gt;
&lt;li&gt;API Versioning&lt;/li&gt;
&lt;li&gt;Query Builder (Dynamic filtering, sorting, and pagination using Spatie Query Builder)&lt;/li&gt;
&lt;li&gt;Authentication using JWT&lt;/li&gt;
&lt;li&gt;Request Validation&lt;/li&gt;
&lt;li&gt;Resource Transformers&lt;/li&gt;
&lt;li&gt;API Documentation&lt;/li&gt;
&lt;li&gt;Telescope for Development &amp;amp; Debugging.&lt;/li&gt;
&lt;li&gt;Code Quality Tools (Pint, Larastan, IDE Helper)&lt;/li&gt;
&lt;li&gt;Pest for Testing (already configured and ready to use, see current tests).&lt;/li&gt;
&lt;li&gt;Docker Configuration&lt;/li&gt;
&lt;li&gt;Git Hooks (pre-commit and pre-push to automatically run Pint, Larastan, and test suites)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;PHP 8.2+&lt;/li&gt;
&lt;li&gt;Composer&lt;/li&gt;
&lt;li&gt;MySQL 8.0+ / PostgreSQL 12+ / SQLite 3&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;
&lt;h4&gt;
  
  
  Using Laravel Installer
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;laravel new my-app &lt;span class="nt"&gt;--using&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;hdeawy/api-starter-kit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  Using Composer
&lt;/h4&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer create-project hdeawy/api-starter-kit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  Using Docker
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Install starter using Docker
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-it&lt;/span&gt; &lt;span class="nt"&gt;--rm&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-v&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;:/app &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-w&lt;/span&gt; /app &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nv"&gt;COMPOSER_ALLOW_SUPERUSER&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1 &lt;span class="se"&gt;\&lt;/span&gt;
    composer:2.5 &lt;span class="se"&gt;\&lt;/span&gt;
    create-project hdeawy/api-starter-kit &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Update the &lt;code&gt;.env&lt;/code&gt; file with your database credentials
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;DB_CONNECTION&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;mysql
&lt;span class="nv"&gt;DB_HOST&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;mysql
&lt;span class="nv"&gt;DB_PORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;3306
&lt;span class="nv"&gt;DB_DATABASE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;laravel_api
&lt;span class="nv"&gt;DB_USERNAME&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;root
&lt;span class="nv"&gt;DB_PASSWORD&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;password
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;🔥 Start the Docker containers
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sail up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Finally, run the migrations and generate the JWT secret
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sail artisan migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;sail artisan jwt:secret
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4&gt;
  
  
  Manually
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Clone the repository
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone git@github.com:hdeawy/api-starter-kit.git
&lt;span class="nb"&gt;cd &lt;/span&gt;api-starter-kit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Install dependencies
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Copy the &lt;code&gt;.env.example&lt;/code&gt; file to &lt;code&gt;.env&lt;/code&gt; and set your environment variables
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; .env.example .env
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;Final setup
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan key:generate
php artisan jwt:secret
php artisan migrate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h3&gt;
  
  
  Testing
&lt;/h3&gt;

&lt;p&gt;Run the tests with Pest:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;php artisan &lt;span class="nb"&gt;test&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/hdeawy/api-starter-kit" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fhdeawy-public-storage.s3.us-east-1.amazonaws.com%2Ftests.png" alt="API Starter Kit" width="585" height="123"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Laravel Pint
&lt;/h3&gt;

&lt;p&gt;Code style fixer for minimalists&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer pint
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/hdeawy/api-starter-kit" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fhdeawy-public-storage.s3.us-east-1.amazonaws.com%2Fpint.png" alt="API Starter Kit" width="515" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Larastan
&lt;/h3&gt;

&lt;p&gt;Finding errors in your code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer stan
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/hdeawy/api-starter-kit" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fhdeawy-public-storage.s3.us-east-1.amazonaws.com%2Fstan.png" alt="API Starter Kit" width="800" height="184"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Empower your API development journey with the Laravel API Starter Kit—a modern, efficient, and scalable foundation tailored for today’s web applications.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>php</category>
      <category>starter</category>
      <category>github</category>
    </item>
    <item>
      <title>Boosting Coding Productivity with Github Copilot: My Journey and Insights</title>
      <dc:creator>Ahmed Hdeawy</dc:creator>
      <pubDate>Sun, 10 Dec 2023 14:22:42 +0000</pubDate>
      <link>https://dev.to/ahmedhdeawy/boosting-coding-productivity-with-github-copilot-my-journey-and-insights-d95</link>
      <guid>https://dev.to/ahmedhdeawy/boosting-coding-productivity-with-github-copilot-my-journey-and-insights-d95</guid>
      <description>&lt;p&gt;Hello fellow developers and tech enthusiasts,&lt;/p&gt;

&lt;p&gt;As a developer, finding tools that improve our workflow is crucial. I want to share my experience with a tool that has significantly changed my coding routine: Github Copilot. This AI-powered helper has not only made my coding more efficient but also more enjoyable. In this post, I'll talk about how Copilot has enhanced my productivity and the specific features that make it a standout tool in my daily coding life.&lt;/p&gt;

&lt;p&gt;Github Copilot is the most important artificial intelligence tool that has actually increased my productivity by at least 30% daily in coding and problem-solving, and I also learn from them at times.&lt;/p&gt;

&lt;p&gt;For a very long time, I used &lt;strong&gt;Tabnine&lt;/strong&gt; because it was free. It worked well for me and helped, but its problem was in accuracy or that its suggestions were generally not consistent with the project I was working on.&lt;/p&gt;

&lt;p&gt;But after using Github Copilot for more than a month, I can say the difference between them is vast.&lt;/p&gt;

&lt;p&gt;Here, I will highlight some of the features and drawbacks I noticed in Github Copilot that helped me a lot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Accuracy in suggestions&lt;/strong&gt;: The accuracy of its results is often not less than 90%, and of course, it reaches 100% many times, and if less, it’s not below 80% mostly.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Suggestions are consistent with the project&lt;/strong&gt;: It doesn’t just suggest any code. It's consistent with the nature of the project you are working on, whether in the programming language, file type, or even the class you're working within.&lt;/li&gt;
&lt;/ul&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Based on the above&lt;/strong&gt;, you can easily write a simple comment explaining the function you want to create, and it will do it easily.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qULYe6jJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebwgoqfjfai7lacea8uq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qULYe6jJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ebwgoqfjfai7lacea8uq.png" alt="Image description" width="633" height="203"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Or even just write the function name, and it will complete it&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5swnFk8t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cgg67j5vmrj7wc6tipc3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5swnFk8t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cgg67j5vmrj7wc6tipc3.png" alt="Image description" width="727" height="133"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;It easily distinguishes the function of the class you are working in and suggests code within the function well.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--y5XpjQ2F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q7a1gxxd71oeawc6wq0h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--y5XpjQ2F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q7a1gxxd71oeawc6wq0h.png" alt="Image description" width="595" height="188"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;Also, without writing any instructions, just by going down a line or two, it suggests functions not present in your class, but might be useful or needed by you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MH88unYI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y9swqzzn6yyofc3exn01.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MH88unYI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y9swqzzn6yyofc3exn01.png" alt="Image description" width="443" height="133"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It really understands the context of the project&lt;/strong&gt;: For example, in the next image, I was actually using TS, and it wrote the function based on it. I already have an interface Email defined with a property named address, so it used it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T_-g3TwM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/46psyutmm4n2x85ea8yv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T_-g3TwM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/46psyutmm4n2x85ea8yv.png" alt="Image description" width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;It works with you normally in complex situations&lt;/strong&gt;: If your function has many conditions or DB Queries - as shown in the next image, also based on the data of your project.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--epZEuAaJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dp3nmyvzjo4wz8rnet8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--epZEuAaJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dp3nmyvzjo4wz8rnet8o.png" alt="Image description" width="800" height="316"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;It can create the basic properties and functions for the entire class just by defining the class name.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w56UliM2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/krl4e3kydhcn2xe2kpm4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w56UliM2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/krl4e3kydhcn2xe2kpm4.png" alt="Image description" width="765" height="541"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Translation, which really saved me a lot of time&lt;/strong&gt; - it can translate correctly based on the file name or file path.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--h9qjhZZX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q5xx7buwtgnt2l1jk3wn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--h9qjhZZX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q5xx7buwtgnt2l1jk3wn.png" alt="Image description" width="514" height="93"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Not only does it translate&lt;/strong&gt;, but it can also write the key and its translation according to your project's method.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kktwPg2---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fi4o3nglur939gygq0yx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kktwPg2---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fi4o3nglur939gygq0yx.png" alt="Image description" width="563" height="98"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;This great feature is that it doesn't make you go to Google Translate&lt;/strong&gt; or others and translates the same key in different files based on the file path - in the next image, which translates into German without even telling it to. But it is understood that this file is located in the language folder in the de folder.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--26fgxE5F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qm8wrlqkjdn4rl5ayz86.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--26fgxE5F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qm8wrlqkjdn4rl5ayz86.png" alt="Image description" width="415" height="176"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Its add-on has a complete chat where you can talk to it and replace GPT chat and live your life with it without going to GPT&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lTCQzRlp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tuqjxa5hsed5y16zvkyt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lTCQzRlp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tuqjxa5hsed5y16zvkyt.png" alt="Image description" width="573" height="282"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;The add-on has some ready-made commands that might help you while working&lt;/strong&gt;, like if you want to fix a specific code or function. Or want to write a Test Case for a specific function. Or want to write something in the terminal and you don't know it, like a specific command from Git commands.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JqKswrIu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oxx7bfojrd201reqffga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JqKswrIu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oxx7bfojrd201reqffga.png" alt="Image description" width="683" height="380"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;If you have an error or even a warning, easily among the suggestions, you will find solutions to fix it or even understand it through copilot.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Bx2etzuq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ea3h6ma3rd92a538666a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Bx2etzuq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ea3h6ma3rd92a538666a.png" alt="Image description" width="327" height="158"&gt;&lt;/a&gt;&lt;/p&gt;



&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Another important thing is that it really cares about the efficiency of the suggested code. I once tried to ask GPT, and then wrote a comment in the code about the function's purpose. And I discovered that its code efficiency is much better than GPT by stages.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Enjoy and Have a nice coding!
&lt;/h3&gt;

</description>
      <category>githubcopilot</category>
      <category>ai</category>
      <category>coding</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
