<?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: Gavindu achintha</title>
    <description>The latest articles on DEV Community by Gavindu achintha (@gavinduachintha).</description>
    <link>https://dev.to/gavinduachintha</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1636782%2F85203a0a-1ecc-4d37-a7cc-2ec273c13fa0.png</url>
      <title>DEV Community: Gavindu achintha</title>
      <link>https://dev.to/gavinduachintha</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gavinduachintha"/>
    <language>en</language>
    <item>
      <title>DockForge — AI-Powered Dockerfile Generator</title>
      <dc:creator>Gavindu achintha</dc:creator>
      <pubDate>Sun, 04 Oct 2026 07:01:37 +0000</pubDate>
      <link>https://dev.to/gavinduachintha/dockforge-ai-powered-dockerfile-generator-3hm1</link>
      <guid>https://dev.to/gavinduachintha/dockforge-ai-powered-dockerfile-generator-3hm1</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  What I Built
&lt;/h1&gt;

&lt;p&gt;I built &lt;strong&gt;DockForge&lt;/strong&gt;, an AI-powered Docker engineer that turns a software repository into a working Docker setup.&lt;/p&gt;

&lt;p&gt;I built it for a friend who often works on projects that &lt;em&gt;run perfectly on their machine&lt;/em&gt; but become painful to containerize.&lt;/p&gt;

&lt;p&gt;Instead of manually figuring out the runtime, dependencies, package manager, ports, build commands, system packages, and startup configuration, DockForge analyzes the repository and generates a Docker setup tailored to the project.&lt;/p&gt;

&lt;p&gt;The goal isn't just to generate a Dockerfile that &lt;em&gt;looks correct&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;DockForge is designed around a &lt;strong&gt;generate → build → verify → fix&lt;/strong&gt; workflow.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Analyze the repository structure and identify the technology stack&lt;/li&gt;
&lt;li&gt;Detect dependencies and package managers&lt;/li&gt;
&lt;li&gt;Determine likely build and start commands&lt;/li&gt;
&lt;li&gt;Generate a Dockerfile&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In other words:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Repository → Analyze → AI → Dockerfile → Build&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Demo
&lt;/h1&gt;

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


&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
      &lt;div class="c-embed__body flex items-center justify-between"&gt;
        &lt;a href="https://dockforge-chi.vercel.app/" rel="noopener noreferrer" class="c-link fw-bold flex items-center"&gt;
          &lt;span class="mr-2"&gt;dockforge-chi.vercel.app&lt;/span&gt;
          

        &lt;/a&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;The demo shows DockForge taking an existing repository and automatically producing a Docker configuration instead of requiring the developer to manually write one from scratch.&lt;/p&gt;




&lt;h1&gt;
  
  
  Code
&lt;/h1&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Gavinduachintha" rel="noopener noreferrer"&gt;
        Gavinduachintha
      &lt;/a&gt; / &lt;a href="https://github.com/Gavinduachintha/Dockforge" rel="noopener noreferrer"&gt;
        Dockforge
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      Ai powered docker file generating companion
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🐳 DockForge&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/33a0fbb7385ea6fca5fb85fd74473ce9a85fe57be2ade4a38de628ac774d00ce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446f636b466f7267652d76312e302e302d626c61636b3f7374796c653d666f722d7468652d6261646765266c6f676f3d646f636b6572"&gt;&lt;img src="https://camo.githubusercontent.com/33a0fbb7385ea6fca5fb85fd74473ce9a85fe57be2ade4a38de628ac774d00ce/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f446f636b466f7267652d76312e302e302d626c61636b3f7374796c653d666f722d7468652d6261646765266c6f676f3d646f636b6572" alt="DockForge Banner"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/54b851e11ebc5897a8066fe02fb773b2682a5e4003d35b5ad5027bf55283a0d2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31352d626c61636b3f7374796c653d666f722d7468652d6261646765266c6f676f3d6e6578742e6a73"&gt;&lt;img src="https://camo.githubusercontent.com/54b851e11ebc5897a8066fe02fb773b2682a5e4003d35b5ad5027bf55283a0d2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31352d626c61636b3f7374796c653d666f722d7468652d6261646765266c6f676f3d6e6578742e6a73" alt="Next.js"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/e68ca76fd7bc972f242e145e867b9ed75166bf9a3d5a8242b675e8e07cd91bd1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41492d506f77657265642d4646384145323f7374796c653d666f722d7468652d6261646765266c6f676f3d6f70656e6169"&gt;&lt;img src="https://camo.githubusercontent.com/e68ca76fd7bc972f242e145e867b9ed75166bf9a3d5a8242b675e8e07cd91bd1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f41492d506f77657265642d4646384145323f7374796c653d666f722d7468652d6261646765266c6f676f3d6f70656e6169" alt="AI Powered"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/aeab11b25054de160642d99db104f65cbf5306958288f6ac44b67f197ae1c4bc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d737563636573733f7374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/aeab11b25054de160642d99db104f65cbf5306958288f6ac44b67f197ae1c4bc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d737563636573733f7374796c653d666f722d7468652d6261646765" alt="License"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/50c57b723324fa657a266e0955883955609d6fa967cecb8597cc8e72b672914c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b746f626572666573742d323032342d6f72616e67653f7374796c653d666f722d7468652d6261646765"&gt;&lt;img src="https://camo.githubusercontent.com/50c57b723324fa657a266e0955883955609d6fa967cecb8597cc8e72b672914c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4861636b746f626572666573742d323032342d6f72616e67653f7374796c653d666f722d7468652d6261646765" alt="Hacktoberfest"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;AI-Powered Dockerfile Generator for Modern Applications&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Analyze any GitHub repository and get an optimized, production-ready Dockerfile in seconds.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/Gavinduachintha/Dockforge#-quick-start" rel="noopener noreferrer"&gt;🚀 Quick Start&lt;/a&gt; • &lt;a href="https://github.com/Gavinduachintha/Dockforge/SETUP_GUIDE.md" rel="noopener noreferrer"&gt;📖 Setup Guide&lt;/a&gt; • &lt;a href="https://github.com/Gavinduachintha/Dockforge#-demo" rel="noopener noreferrer"&gt;🎮 Demo&lt;/a&gt; • &lt;a href="https://github.com/Gavinduachintha/Dockforge#-features" rel="noopener noreferrer"&gt;🛠️ Features&lt;/a&gt; • &lt;a href="https://github.com/Gavinduachintha/Dockforge#-contributing" rel="noopener noreferrer"&gt;🤝 Contributing&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎯 What is DockForge?&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;DockForge is an intelligent tool that analyzes your GitHub repository and automatically generates production-ready Dockerfiles tailored to your project's specific needs. No more copy-pasting generic Dockerfiles or spending hours optimizing Docker configurations!&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;Why DockForge?&lt;/h3&gt;
&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="25%"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;⚡ Fast&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;Generate Dockerfiles in seconds, not hours&lt;/p&gt;
&lt;/td&gt;
&lt;td width="25%"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🧠 Smart&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;AI-powered analysis and optimization&lt;/p&gt;
&lt;/td&gt;
&lt;td width="25%"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;🎯 Accurate&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;Framework and dependency detection&lt;/p&gt;
&lt;/td&gt;
&lt;td width="25%"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;✨ Modern&lt;/h3&gt;

&lt;/div&gt;
&lt;p&gt;Best practices and security built-in&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🚀 Quick Start&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Get DockForge running in &lt;strong&gt;5 minutes&lt;/strong&gt;:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 1️⃣ Clone the repository&lt;/span&gt;
git clone https://github.com/yourusername/dockforge.git
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; dockforge
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 2️⃣ Install dependencies&lt;/span&gt;
npm install

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 3️⃣ Set up environment variables&lt;/span&gt;
cp .env.example .env
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; Add your OpenRouter API key to .env&lt;/span&gt;

&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; 4️⃣ Start the development server&lt;/span&gt;&lt;/pre&gt;…
&lt;/div&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Gavinduachintha/Dockforge" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;
DockForge is built as an open-source project, so the implementation can be inspected, modified, and extended by other developers.


&lt;h1&gt;
  
  
  How I Built It
&lt;/h1&gt;

&lt;p&gt;I built the whole application with Next.js and used the OpenRouter API to connect it with an LLM.&lt;/p&gt;

&lt;p&gt;For the AI side, I'm using &lt;strong&gt;Qwen3.8-27B&lt;/strong&gt; whick is free. DockForge takes the project information and asks the model to figure out what kind of Docker setup the project needs and generate the Dockerfile.&lt;/p&gt;

&lt;p&gt;I wanted to keep the idea simple: instead of spending time figuring out how to Dockerize a project manually, you can give it to DockForge and let the AI handle the first draft for you.&lt;/p&gt;

&lt;p&gt;OpenRouter also made it really easy to experiment with different models without having to change the whole application.&lt;/p&gt;

&lt;p&gt;The process is roughly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Repository
    ↓
Repository Analysis
    ↓
Project Detection
    ↓
AI Planning
    ↓
Dockerfile Generation
    ↓
Docker Build
    ↓
Build Errors / Verification
    ↓
AI Fixes
    ↓
Working Container
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI is responsible for reasoning about the project and generating the configuration, while Docker provides the real-world feedback.&lt;/p&gt;

&lt;p&gt;This distinction is important.&lt;/p&gt;

&lt;p&gt;A language model can generate a Dockerfile that &lt;em&gt;sounds right&lt;/em&gt; while still being completely broken. By actually attempting to build the image, DockForge can use Docker's output as feedback and iterate on the configuration.&lt;/p&gt;

&lt;p&gt;For the AI layer, I used &lt;strong&gt;open-weight models through OpenRouter&lt;/strong&gt;, allowing the underlying model to be replaced without redesigning the application around a single proprietary AI provider.&lt;/p&gt;

&lt;p&gt;This also means the architecture can evolve toward &lt;strong&gt;local inference and self-hosted models&lt;/strong&gt; instead of being permanently tied to one closed AI API.&lt;/p&gt;




&lt;h1&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h1&gt;

&lt;p&gt;Dockerization is one of those problems where there are many different valid solutions depending on the project.&lt;/p&gt;

&lt;p&gt;A Python application, a Node.js application, a Go service, and a project with native system dependencies all require different decisions.&lt;/p&gt;

&lt;p&gt;Open AI models make it possible to build tools around that reasoning without treating a single proprietary AI provider as the foundation of the product.&lt;/p&gt;

&lt;p&gt;For DockForge, open innovation matters in a few important ways.&lt;/p&gt;

&lt;h3&gt;
  
  
  Model freedom
&lt;/h3&gt;

&lt;p&gt;The application isn't fundamentally tied to one model.&lt;/p&gt;

&lt;p&gt;As better open-weight coding models become available, DockForge can adopt them without rebuilding the entire product around a proprietary API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Local and self-hosted possibilities
&lt;/h3&gt;

&lt;p&gt;The same architecture can evolve toward local inference and self-hosted models.&lt;/p&gt;

&lt;p&gt;That opens the door to using DockForge in environments where source code cannot or should not be sent to an external AI provider.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Build an AI email summarizer with event planning</title>
      <dc:creator>Gavindu achintha</dc:creator>
      <pubDate>Sat, 13 Sep 2025 15:56:16 +0000</pubDate>
      <link>https://dev.to/gavinduachintha/build-an-ai-email-summarizer-with-event-planning-4e1e</link>
      <guid>https://dev.to/gavinduachintha/build-an-ai-email-summarizer-with-event-planning-4e1e</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmgrl0ow86hckdzd7wvg3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmgrl0ow86hckdzd7wvg3.png" alt=" " width="799" height="382"&gt;&lt;/a&gt;&lt;br&gt;
Built a full-stack email dashboard with Gmail API integration and Google Calendar event planning using React, Node.js,OpenRouter and Kiro AI to accelerate development for the Code with Kiro hackathon.&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
