{"id":41782,"date":"2025-12-12T08:49:18","date_gmt":"2025-12-12T07:49:18","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/?p=41782"},"modified":"2025-12-12T08:49:21","modified_gmt":"2025-12-12T07:49:21","slug":"how-effective-is-ai-on-a-development-project","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/","title":{"rendered":"How effective is AI on a development project?"},"content":{"rendered":"\n<p>In this article, I will try to evaluate the benefits of AI on a development project and what concrete changes it makes to our development practices.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-the-test-case-and-the-approach\"><strong>The test case and the approach<\/strong><\/h2>\n\n\n\n<p>I chose a familiar environment for my comparison: a new <a href=\"https:\/\/nestjs.com\/\">NestJS<\/a> project from scratch.<\/p>\n\n\n\n<p>For my project, I want to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use a .env file for configuration<\/li>\n\n\n\n<li>Connect to a PostgreSQL database<\/li>\n\n\n\n<li>Store users in a database table<\/li>\n\n\n\n<li>Create a CRUD API to manage my users<\/li>\n\n\n\n<li>Manage JWT authentication based on my user list<\/li>\n\n\n\n<li>Secure CRUD routes for authenticated users using a guard<\/li>\n<\/ul>\n\n\n\n<p>To help me, I&#8217;m going to use the <a href=\"https:\/\/github.com\/features\/copilot\">GitHub Copilot<\/a> agent with the GTP5-mini model. I&#8217;ll ask it to generate code on my behalf, as much as possible. However, I&#8217;ll continue to follow NestJS best practices by using the documentation recommendations and initializing the project myself. I will focus on prompting, initializing the context and reviewing the code generated by the AI.<\/p>\n\n\n\n<p>For better results, I will develop the application step by step and control the generated code at each step.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-intialize-the-project\"><strong>Intialize the project<\/strong><\/h2>\n\n\n\n<p>At first, I initialize a new NestJS project using the CLI, as mentioned in the documentation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm i -g @nestjs\/cli\nnest new nestjs-project<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-first-contact-with-the-ai-agent\"><strong>First contact with the AI agent<\/strong><\/h2>\n\n\n\n<p>I start by opening the project in VSCode and I open a new chat with the AI agent. I&#8217;m trying to give it some general instructions for the rest of the tasks:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Remember:\n- You are a full-stack TypeScript developer.\n- You follow best practices in development and security.\n- You will be working on this NestJS project.<\/code><\/pre>\n\n\n\n<p>The AI agent discovers the project:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"574\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-1024x574.png\" alt=\"\" class=\"wp-image-41962\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-1024x574.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-300x168.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-768x430.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-1536x861.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-2048x1148.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-first-task-add-application-configuration\"><strong>First Task, add application configuration<\/strong><\/h2>\n\n\n\n<p>I followed the documentation to add <a href=\"https:\/\/docs.nestjs.com\/techniques\/configuration\">configuration<\/a> support using .env files<\/p>\n\n\n\n<p>I&#8217;ve manually added the required package:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm i --save @nestjs\/config<\/code><\/pre>\n\n\n\n<p>And asked the AI to generate the code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@nestjs\/config is installed. Add support for .env in the application. The config file must contain the credentials to access to the database (host, database name, user, password).<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-second-task-connect-to-the-database-and-create-the-users-table\"><strong>Second Task, connect to the database and create the users table<\/strong><\/h2>\n\n\n\n<p>I want to use <a href=\"https:\/\/docs.nestjs.com\/techniques\/database\">TypeORM<\/a> to manage my database connections and migrations.<\/p>\n\n\n\n<p>First, I install the required packages:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install --save @nestjs\/typeorm typeorm pg<\/code><\/pre>\n\n\n\n<p>And then ask the AI agent to generate the code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>I will use typeorm and postgres. Connect the application to the database.\nSave the credentials in the .env file.\nUse the credentials:\n- host: localhost\n- name: nestjs, \n- user: nest-user \n- password XXX<\/code><\/pre>\n\n\n\n<p><strong>Note<\/strong> : Be careful when you send credentials to AI<\/p>\n\n\n\n<p>Next request to the AI agent: create a migration to initialize the database schema:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Add a migration to create a \"users\" table with the following fields: id (primary key), username (string), email (string), password (string), is_admin (boolean), disabled (boolean), created_at (timestamp), updated_at (timestamp).<\/code><\/pre>\n\n\n\n<p>In addition, in my package.json, the agent adds the migration command to npm in the project:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>  \"typeorm:migration:run\": \"ts-node -r tsconfig-paths\/register .\/node_modules\/typeorm\/cli.js migration:run -d .\/data-source.ts\",<\/code><\/pre>\n\n\n\n<p>To simplify the process, I asked the AI agent to generate a default user for my application:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>In the migration, add a default admin user with the following values:\n    username: \"admin\"\n    email: \"admin@example.com\"\n    password: \"Admin@123\" (hash the password using bcrypt)\n    is_admin: true\n    disabled: false<\/code><\/pre>\n\n\n\n<p>After the completion by the AI agent, I run the migration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-first-module-service-and-controller-for-users-with-crud-endpoints\"><strong>First module, service and controller for users with CRUD endpoints<\/strong><\/h2>\n\n\n\n<p>Now, I ask the agent to create the users module with detailed endpoints:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Add a module, service, and controller for \"users\" with the following endpoints:\n- GET \/users: Retrieve a list of all users.\n- GET \/users\/:id: Retrieve a user by ID.\n- POST \/users: Create a new user.\n- PUT \/users\/:id: Update a user by ID.\n- DELETE \/users\/:id: Delete a user by ID.<\/code><\/pre>\n\n\n\n<p>This step is very quick, and the code is generated in 4min only !<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-add-swagger-documentation\"><strong>Add Swagger documentation<\/strong><\/h2>\n\n\n\n<p>To test the first REST module, I ask the AI to add <a href=\"https:\/\/docs.nestjs.com\/openapi\/introduction\">Swagger UI<\/a> to the project.<\/p>\n\n\n\n<p>As with the other steps, I add the packages myself:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install --save @nestjs\/swagger<\/code><\/pre>\n\n\n\n<p><strong>Note:<\/strong> This step is very tricky for the AI, if you don&#8217;t specify the already installed package, it will try to install an outdated version.<\/p>\n\n\n\n<p>Then, I ask the AI agent to generate the code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@nestjs\/swagger is installed\nAdd swagger to the application. \nDocument the users endpoints.<\/code><\/pre>\n\n\n\n<p>In few minutes, we have the API documentation:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-UI-1024x610.png\" alt=\"\" class=\"wp-image-41785\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-UI-1024x610.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-UI-300x179.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-UI-768x457.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-UI-1536x915.png 1536w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-UI.png 1560w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>During API testing, I noticed that the password hash was returned in the user list. However, initially, I had instructed the AI \u200b\u200bto follow security best practices&#8230;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"580\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Password-Hash-1024x580.png\" alt=\"\" class=\"wp-image-41786\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Password-Hash-1024x580.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Password-Hash-300x170.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Password-Hash-768x435.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Password-Hash.png 1523w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>I asked the AI agent to fix this issue:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>The users password field must be excluded from the responses.<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-last-task-add-jwt-authentication\">Last task, add JWT authentication<\/h2>\n\n\n\n<p>As authentication mechanism, I use <a href=\"https:\/\/docs.nestjs.com\/recipes\/passport#jwt-functionality\">JWT<\/a> tokens provided by <a href=\"https:\/\/www.passportjs.org\/\">passport<\/a> library.<\/p>\n\n\n\n<p>I install the required packages:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install --save @nestjs\/passport\nnpm install --save @nestjs\/jwt passport-jwt\nnpm install --save-dev @types\/passport-jwt<\/code><\/pre>\n\n\n\n<p>Then, I ask the AI agent to generate the code:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Implement the JWT authentication strategy, @nestjs\/jwt passport-jwt and @types\/passport-jwt are installed.\nAdd a login endpoint that returns a JWT token when provided with valid user credentials (username and password from the users table).<\/code><\/pre>\n\n\n\n<p>And I instruct the AI to use .env file for the JWT secret and expiration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Add the JWT secrets and expiration into the .env file, Fix the typescript errors, Improve the swagger documentation for login endpoint (message definition)<\/code><\/pre>\n\n\n\n<p>Now, I want to secure the users endpoints to allow only authenticated users and ask the agent the following:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Add a guard on the users endpoints to allow only connected users<\/code><\/pre>\n\n\n\n<p>Last point, I want to be able to authenticate on the Swagger interface, so I ask it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Add the ability to authenticate on the Swagger interface with a bearer token.<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"570\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-Auth-1024x570.png\" alt=\"\" class=\"wp-image-41787\" srcset=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-Auth-1024x570.png 1024w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-Auth-300x167.png 300w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-Auth-768x428.png 768w, https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/Swagger-Auth.png 1506w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclusion\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>All of this took me around <strong>1h30<\/strong> to complete, including prompting and reviewing the steps.<\/p>\n\n\n\n<p>Reading the documentation, understanding the technologies, adding the dependancies remained the same.<\/p>\n\n\n\n<p>The initial estimate, without AI, was between 2 and 4 hours to complete the project :<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Task<\/th><th>Estimated Time<\/th><th>AI Coding \/ prompting<\/th><th>Review<\/th><\/tr><tr><td>.env<\/td><td>15\u201330 min<\/td><td>6 min<\/td><td>5 min<\/td><\/tr><tr><td>Connexion PostgreSQL<\/td><td>20\u201340 min<\/td><td>4 min<\/td><td>2 min<\/td><\/tr><tr><td>Table User + migration<\/td><td>15\u201325 min<\/td><td>7 min<\/td><td>2 min<\/td><\/tr><tr><td>CRUD Users<\/td><td>30\u201345 min<\/td><td>5 min<\/td><td>10 min<\/td><\/tr><tr><td>Swagger UI<\/td><td>15\u201330 min<\/td><td>6 min<\/td><td>6 min<\/td><\/tr><tr><td>Auth JWT<\/td><td>30\u201360 min<\/td><td>12 min<\/td><td>15 min<\/td><\/tr><tr><td>Guards<\/td><td>15\u201330 min<\/td><td>5 min<\/td><td>5 min<\/td><\/tr><tr><td><strong>TOTAL<\/strong><\/td><td>2h20 \u2013 4h20<\/td><td>45min<\/td><td>45 min<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>During development, AI makes certain errors or inaccuracies like TypeScripts compilation errors, password or security issues such as returning the password hash in the user list. However, the time spent to review and correct these issues is largely compensated by the speed of code generation.<\/p>\n\n\n\n<p>At the end, coding with AI is very fast, the generated code with a well documented technology (NestJS) is good.<\/p>\n\n\n\n<p>Even if formulating a clear request requires careful consideration and wording, coding is comfortable. However, the job is no longer the same; it now requires good code planning and architecture and the ability to review the generated code. Coding with AI can be effective, but only if you have a clear idea of what you want from the very beginning, use clear instructions and leave no room for interpretation by the AI.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, I will try to evaluate the benefits of AI on a development project and what concrete changes it makes to our development practices. The test case and the approach I chose a familiar environment for my comparison: a new NestJS project from scratch. For my project, I want to: To help me, [&hellip;]<\/p>\n","protected":false},"author":72,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[368,3029],"tags":[3753,3257],"type_dbi":[],"class_list":["post-41782","post","type-post","status-publish","format-standard","hentry","category-development-performance","category-web","tag-nestjs","tag-typescript"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How effective is AI on a development project? - dbi Blog<\/title>\n<meta name=\"description\" content=\"How AI can improve development speed ? With GitHub Copilot, I test the development of a NestJS project with CRUD API and JWT authentication.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How effective is AI on a development project?\" \/>\n<meta property=\"og:description\" content=\"How AI can improve development speed ? With GitHub Copilot, I test the development of a NestJS project with CRUD API and JWT authentication.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-12T07:49:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-12T07:49:21+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-scaled.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1435\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nicolas Meunier\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nicolas Meunier\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/\"},\"author\":{\"name\":\"Nicolas Meunier\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe\"},\"headline\":\"How effective is AI on a development project?\",\"datePublished\":\"2025-12-12T07:49:18+00:00\",\"dateModified\":\"2025-12-12T07:49:21+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/\"},\"wordCount\":841,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-1024x574.png\",\"keywords\":[\"NestJS\",\"TypeScript\"],\"articleSection\":[\"Development &amp; Performance\",\"Web\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/\",\"name\":\"How effective is AI on a development project? - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-1024x574.png\",\"datePublished\":\"2025-12-12T07:49:18+00:00\",\"dateModified\":\"2025-12-12T07:49:21+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe\"},\"description\":\"How AI can improve development speed ? With GitHub Copilot, I test the development of a NestJS project with CRUD API and JWT authentication.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-scaled.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-scaled.png\",\"width\":2560,\"height\":1435},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How effective is AI on a development project?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe\",\"name\":\"Nicolas Meunier\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g\",\"caption\":\"Nicolas Meunier\"},\"description\":\"Nicolas Meunier has more than 20 years of experience in IT web technologies as well as in development. He is specialized in Cloud solutions such as CI\/CD. His expertise also includes Kubernetes, Docker, Jenkins-X and Azure Devops. Florence Porret (FP is IT Consultant in Cloud solutions. Prior to joining dbi services, Nicolas Meunier was developer and maintainer of a CI\/CD pipelines at CEGID in Paris. He also worked as Lead Developer at KPMG. Florence Porret (FP holds a superior technical diploma in IT development. His branch-related experience covers software and cloud platform architecture.\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/nicolasmeunier\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How effective is AI on a development project? - dbi Blog","description":"How AI can improve development speed ? With GitHub Copilot, I test the development of a NestJS project with CRUD API and JWT authentication.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/","og_locale":"en_US","og_type":"article","og_title":"How effective is AI on a development project?","og_description":"How AI can improve development speed ? With GitHub Copilot, I test the development of a NestJS project with CRUD API and JWT authentication.","og_url":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/","og_site_name":"dbi Blog","article_published_time":"2025-12-12T07:49:18+00:00","article_modified_time":"2025-12-12T07:49:21+00:00","og_image":[{"width":2560,"height":1435,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-scaled.png","type":"image\/png"}],"author":"Nicolas Meunier","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Nicolas Meunier","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/"},"author":{"name":"Nicolas Meunier","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe"},"headline":"How effective is AI on a development project?","datePublished":"2025-12-12T07:49:18+00:00","dateModified":"2025-12-12T07:49:21+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/"},"wordCount":841,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-1024x574.png","keywords":["NestJS","TypeScript"],"articleSection":["Development &amp; Performance","Web"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/","url":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/","name":"How effective is AI on a development project? - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-1024x574.png","datePublished":"2025-12-12T07:49:18+00:00","dateModified":"2025-12-12T07:49:21+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe"},"description":"How AI can improve development speed ? With GitHub Copilot, I test the development of a NestJS project with CRUD API and JWT authentication.","breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-scaled.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2025\/12\/VsCode-scaled.png","width":2560,"height":1435},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/how-effective-is-ai-on-a-development-project\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How effective is AI on a development project?"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/2e08c09a2f083004587b54128684fefe","name":"Nicolas Meunier","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cc2139acc6c64bddf3827e2faaaa70f227faafc288457fc351a4a836813112a8?s=96&d=mm&r=g","caption":"Nicolas Meunier"},"description":"Nicolas Meunier has more than 20 years of experience in IT web technologies as well as in development. He is specialized in Cloud solutions such as CI\/CD. His expertise also includes Kubernetes, Docker, Jenkins-X and Azure Devops. Florence Porret (FP is IT Consultant in Cloud solutions. Prior to joining dbi services, Nicolas Meunier was developer and maintainer of a CI\/CD pipelines at CEGID in Paris. He also worked as Lead Developer at KPMG. Florence Porret (FP holds a superior technical diploma in IT development. His branch-related experience covers software and cloud platform architecture.","url":"https:\/\/www.dbi-services.com\/blog\/author\/nicolasmeunier\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/41782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/72"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=41782"}],"version-history":[{"count":11,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/41782\/revisions"}],"predecessor-version":[{"id":41964,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/41782\/revisions\/41964"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=41782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=41782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=41782"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=41782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}