<?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: Harsh Vardhan Pandey</title>
    <description>The latest articles on DEV Community by Harsh Vardhan Pandey (@harsh_vardhanpandey_08fc).</description>
    <link>https://dev.to/harsh_vardhanpandey_08fc</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%2F3971583%2Ff7f5efc5-3dd1-4424-9c79-9bb2effb128b.png</url>
      <title>DEV Community: Harsh Vardhan Pandey</title>
      <link>https://dev.to/harsh_vardhanpandey_08fc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/harsh_vardhanpandey_08fc"/>
    <language>en</language>
    <item>
      <title>"DevLog: An AI Git Workflow That Keeps Your Code Local"</title>
      <dc:creator>Harsh Vardhan Pandey</dc:creator>
      <pubDate>Sun, 04 Oct 2026 08:29:40 +0000</pubDate>
      <link>https://dev.to/harsh_vardhanpandey_08fc/devlog-an-ai-git-workflow-that-keeps-your-code-local-2f30</link>
      <guid>https://dev.to/harsh_vardhanpandey_08fc/devlog-an-ai-git-workflow-that-keeps-your-code-local-2f30</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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;DevLog&lt;/strong&gt;, a local-first AI Git workflow for my developer friend who wanted AI assistance for everyday Git work without sending private source code and Git diffs to a cloud AI provider.&lt;/p&gt;

&lt;p&gt;Developers commit frequently, but writing clear commit messages and pull-request descriptions can become repetitive and interrupt the development flow.&lt;/p&gt;

&lt;p&gt;The obvious solution is to send the Git diff to an AI API.&lt;/p&gt;

&lt;p&gt;But that raises a question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Do I really need to send my source code to a cloud service just to generate a commit message?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;DevLog takes a different approach.&lt;/p&gt;

&lt;p&gt;It runs AI locally using &lt;strong&gt;Ollama and an open-weight model&lt;/strong&gt;, reads the staged Git diff on the developer's machine, generates a commit message or PR description locally, lets the developer review the result, and then optionally publishes the changes to GitHub.&lt;/p&gt;

&lt;p&gt;The AI generation itself does not require a cloud AI API.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Core Idea
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Git Repository
      │
      ▼
Staged Git Diff
      │
      ▼
DevLog
      │
      ▼
Local Ollama
      │
      ▼
Open-Weight LLM
      │
      ├──► Commit Message
      │
      └──► PR Description
      │
      ▼
Developer Reviews
      │
      ▼
Commit / Push / Create PR
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI assistance without giving up control of the code being analyzed.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;🌐 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://devlog-fawn-omega.vercel.app/" rel="noopener noreferrer"&gt;https://devlog-fawn-omega.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The live deployment lets you explore the DevLog interface and understand the workflow.&lt;/p&gt;

&lt;p&gt;The complete local AI workflow is designed to run on the developer's own machine with Ollama.&lt;/p&gt;

&lt;h3&gt;
  
  
  What DevLog Can Do
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;View repository status&lt;/li&gt;
&lt;li&gt;Inspect staged Git diffs&lt;/li&gt;
&lt;li&gt;Generate AI-powered commit messages&lt;/li&gt;
&lt;li&gt;Generate AI-powered PR descriptions&lt;/li&gt;
&lt;li&gt;Review and edit generated content&lt;/li&gt;
&lt;li&gt;Commit staged changes&lt;/li&gt;
&lt;li&gt;Push branches&lt;/li&gt;
&lt;li&gt;Create GitHub pull requests&lt;/li&gt;
&lt;li&gt;View repository activity and statistics&lt;/li&gt;
&lt;li&gt;Run AI inference locally&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Local AI Demo
&lt;/h3&gt;

&lt;p&gt;For the actual AI inference, DevLog connects to Ollama running locally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Developer Machine

Git Repository
      │
      ▼
   DevLog
      │
      ▼
   Ollama
      │
      ▼
 Local LLM
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once the model is downloaded, AI generation can work without an internet connection.&lt;/p&gt;

&lt;p&gt;GitHub operations still require internet access when the developer explicitly chooses to push code or create a pull request.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt; &lt;a href="https://github.com/Harsh63870/Devlog" rel="noopener noreferrer"&gt;https://github.com/Harsh63870/Devlog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React frontend&lt;/li&gt;
&lt;li&gt;FastAPI backend&lt;/li&gt;
&lt;li&gt;Ollama integration&lt;/li&gt;
&lt;li&gt;Git operations&lt;/li&gt;
&lt;li&gt;GitHub integration&lt;/li&gt;
&lt;li&gt;Docker Compose setup&lt;/li&gt;
&lt;li&gt;Local configuration&lt;/li&gt;
&lt;li&gt;API endpoints&lt;/li&gt;
&lt;li&gt;Deployment documentation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The project is released under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;

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

&lt;p&gt;DevLog is split into a frontend, backend, local AI layer, Git integration, and optional GitHub integration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Frontend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React 19&lt;/li&gt;
&lt;li&gt;TypeScript&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;TanStack Query&lt;/li&gt;
&lt;li&gt;Zustand&lt;/li&gt;
&lt;li&gt;Three.js / React Three Fiber&lt;/li&gt;
&lt;li&gt;Framer Motion&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Backend&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Python 3.12+&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;Pydantic&lt;/li&gt;
&lt;li&gt;Uvicorn&lt;/li&gt;
&lt;li&gt;Ollama SDK&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;AI&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;li&gt;Open-weight local LLM&lt;/li&gt;
&lt;li&gt;Mistral as the current model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Infrastructure&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Docker Compose&lt;/li&gt;
&lt;li&gt;Nginx&lt;/li&gt;
&lt;li&gt;Kubernetes-ready deployment configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Developer Tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;li&gt;GitHub REST API&lt;/li&gt;
&lt;li&gt;Conventional Commits&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The AI Workflow
&lt;/h3&gt;

&lt;p&gt;The workflow starts with a normal Git operation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add src/features/new-feature.ts
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;DevLog then reads the staged diff locally.&lt;/p&gt;

&lt;p&gt;The backend passes the diff to the locally running Ollama model.&lt;/p&gt;

&lt;p&gt;The model generates a commit message or PR description.&lt;/p&gt;

&lt;p&gt;The developer reviews the output before anything is committed or published.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Git Diff
   │
   ▼
FastAPI
   │
   ▼
Ollama
   │
   ▼
Mistral
   │
   ▼
feat: add user authentication module
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The generated output is only a suggestion. The developer remains in control and can edit it before committing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Commit Generation
&lt;/h3&gt;

&lt;p&gt;The developer can open the &lt;strong&gt;Commit&lt;/strong&gt; workflow and ask DevLog to generate a conventional commit message based on the staged changes.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;feat: add user authentication module
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  PR Generation
&lt;/h3&gt;

&lt;p&gt;The same staged changes can be used to generate a pull-request title and description.&lt;/p&gt;

&lt;p&gt;The developer can review the generated content and then choose whether to publish the branch and create the PR on GitHub.&lt;/p&gt;

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

&lt;p&gt;This is the central design decision behind DevLog.&lt;/p&gt;

&lt;p&gt;I could have built the same product around a closed AI API.&lt;/p&gt;

&lt;p&gt;That would have been straightforward.&lt;/p&gt;

&lt;p&gt;But doing so would mean sending source code and Git diffs to an external AI inference service.&lt;/p&gt;

&lt;p&gt;For developers working with private repositories, proprietary software, client code, or unreleased features, that can be an important privacy consideration.&lt;/p&gt;

&lt;p&gt;DevLog instead uses an &lt;strong&gt;open-weight model running locally through Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒 Privacy
&lt;/h3&gt;

&lt;p&gt;The staged Git diff used for AI generation stays on the developer's machine.&lt;/p&gt;

&lt;p&gt;The application does not need to send the source code to OpenAI, Anthropic, or another cloud LLM provider to generate the commit message or PR description.&lt;/p&gt;

&lt;p&gt;This reduces the amount of sensitive development data that needs to leave the developer's environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌐 Offline AI
&lt;/h3&gt;

&lt;p&gt;Once Ollama and the selected model are installed, AI generation can work without an internet connection.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Internet OFF

Git Diff
   ↓
DevLog
   ↓
Ollama
   ↓
Local Model
   ↓
Generated Commit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GitHub operations are different: pushing code and creating pull requests naturally require network access.&lt;/p&gt;

&lt;h3&gt;
  
  
  💰 No Per-Request AI API Cost
&lt;/h3&gt;

&lt;p&gt;DevLog does not depend on a paid cloud LLM API for its AI generation.&lt;/p&gt;

&lt;p&gt;The model runs on the user's own hardware.&lt;/p&gt;

&lt;p&gt;That means there is no recurring per-request inference charge from an external AI provider.&lt;/p&gt;

&lt;p&gt;The trade-off is that the user provides the CPU/GPU, memory, storage, and electricity required for local inference.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔧 Model Freedom
&lt;/h3&gt;

&lt;p&gt;The AI layer is not fundamentally tied to one proprietary provider.&lt;/p&gt;

&lt;p&gt;Ollama allows users to run different supported local models.&lt;/p&gt;

&lt;p&gt;This makes the AI layer replaceable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             DevLog
                │
                ▼
             Ollama
                │
       ┌────────┼────────┐
       ▼        ▼        ▼
    Mistral    Llama    Other
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application can evolve as local models improve without requiring the entire product to be redesigned around a single cloud provider.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 More Control
&lt;/h3&gt;

&lt;p&gt;Open-weight models give developers more control over where inference happens and which model powers their workflow.&lt;/p&gt;

&lt;p&gt;For DevLog, this matters because the AI is working directly with developer data.&lt;/p&gt;

&lt;p&gt;The model isn't simply a remote service hidden behind an API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It can become part of the developer's own environment.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building for a Friend
&lt;/h2&gt;

&lt;p&gt;I wanted DevLog to solve a real developer workflow problem rather than become another generic AI chatbot.&lt;/p&gt;

&lt;p&gt;I built it for &lt;strong&gt;Ritik Ahirwar&lt;/strong&gt;, who wanted AI assistance for Git workflows but had concerns about sending private code and diffs to external AI services.&lt;/p&gt;

&lt;p&gt;The problem is small, but it occurs repeatedly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Write Code
   ↓
Make Changes
   ↓
Stage Changes
   ↓
Need Commit Message
   ↓
Need PR Description
   ↓
More Repetitive Work
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;DevLog turns that into:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Write Code
   ↓
Stage Changes
   ↓
DevLog
   ↓
Local AI Understands Diff
   ↓
Commit / PR Generated
   ↓
Review
   ↓
Publish
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal isn't to replace the developer.&lt;/p&gt;

&lt;p&gt;It's to remove repetitive Git-writing work while keeping the developer in control of the final result.&lt;/p&gt;

&lt;h3&gt;
  
  
  What I Wanted My Friend to Get
&lt;/h3&gt;

&lt;p&gt;The project was designed around three simple requirements:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;AI assistance&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Keep source code local&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Avoid unnecessary cloud AI costs&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That combination is what led to the local-first architecture.&lt;/p&gt;

&lt;h3&gt;
  
  
  Friend Feedback
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;His feedback helped me understand which parts of the workflow were genuinely useful and which parts could be improved.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For example, you could describe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What they tried&lt;/li&gt;
&lt;li&gt;What part they found useful&lt;/li&gt;
&lt;li&gt;What confused them&lt;/li&gt;
&lt;li&gt;What they wanted changed&lt;/li&gt;
&lt;li&gt;Whether they would actually use it in their workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I prefer documenting the real reaction rather than inventing a polished success story.&lt;/p&gt;

&lt;h2&gt;
  
  
  Security &amp;amp; Privacy
&lt;/h2&gt;

&lt;p&gt;DevLog follows a local-first architecture for AI processing.&lt;/p&gt;

&lt;h3&gt;
  
  
  What Stays Local
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Git diffs used for AI generation&lt;/li&gt;
&lt;li&gt;Local repository information&lt;/li&gt;
&lt;li&gt;AI inference&lt;/li&gt;
&lt;li&gt;Ollama model&lt;/li&gt;
&lt;li&gt;Local DevLog configuration&lt;/li&gt;
&lt;li&gt;GitHub token storage&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  What Touches GitHub
&lt;/h3&gt;

&lt;p&gt;GitHub is only involved when the developer explicitly performs publishing operations such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Push a branch&lt;/li&gt;
&lt;li&gt;Create a pull request&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI generation step does not require sending the Git diff to a cloud LLM.&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub Token
&lt;/h3&gt;

&lt;p&gt;DevLog supports fine-grained GitHub personal access tokens.&lt;/p&gt;

&lt;p&gt;The token is stored locally and should be restricted to the repositories and permissions actually required.&lt;/p&gt;

&lt;p&gt;Developers should also avoid committing &lt;code&gt;.env&lt;/code&gt; files or local configuration containing credentials.&lt;/p&gt;

&lt;h3&gt;
  
  
  Important Security Boundary
&lt;/h3&gt;

&lt;p&gt;Running AI locally does not automatically make an application secure.&lt;/p&gt;

&lt;p&gt;DevLog therefore treats the local machine as the primary trust boundary and avoids sending the source code used for AI generation to a third-party LLM API.&lt;/p&gt;

&lt;p&gt;If Ollama itself is exposed over a network, that network configuration should also be secured appropriately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Architecture
&lt;/h2&gt;

&lt;p&gt;The complete architecture looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;pre data-lang="mermaid"&gt;&lt;code&gt;flowchart TD
    A[Developer] --&amp;gt; B[DevLog React UI]

    B --&amp;gt; C[FastAPI Backend]

    C --&amp;gt; D[Local Git Repository]
    D --&amp;gt; E[Staged Git Diff]

    E --&amp;gt; C

    C --&amp;gt; F[Ollama]
    F --&amp;gt; G[Local Open-Weight LLM]

    G --&amp;gt; H[Generated Commit Message]
    G --&amp;gt; I[Generated PR Description]

    H --&amp;gt; B
    I --&amp;gt; B

    B --&amp;gt; J{Developer Review}

    J --&amp;gt;|Commit| K[Local Git Commit]

    J --&amp;gt;|Push / Create PR| L[GitHub API]

    K --&amp;gt; M[Local Repository]
    L --&amp;gt; N[GitHub Repository]

    G -. AI inference stays local .-&amp;gt; O[No Cloud LLM]&lt;/code&gt;&lt;/pre&gt;



&lt;h3&gt;
  
  
  Architecture Principles
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Local-first AI
&lt;/h4&gt;

&lt;p&gt;The AI inference path is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Git Diff
   ↓
FastAPI
   ↓
Ollama
   ↓
Local Model
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There is no requirement for a cloud LLM API in this path.&lt;/p&gt;

&lt;h4&gt;
  
  
  Optional Cloud Interaction
&lt;/h4&gt;

&lt;p&gt;The external network boundary is primarily for GitHub publishing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Local DevLog
     │
     ├── Local AI → No cloud LLM
     │
     └── GitHub API → Only when publishing
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  No Vendor Lock-in
&lt;/h4&gt;

&lt;p&gt;The application communicates with the local Ollama runtime rather than depending on a proprietary AI API as its core inference layer.&lt;/p&gt;

&lt;h4&gt;
  
  
  Self-hostable
&lt;/h4&gt;

&lt;p&gt;DevLog can be run directly on a development machine or through Docker Compose.&lt;/p&gt;

&lt;p&gt;The repository also contains Kubernetes deployment guidance for users who want to experiment with containerized deployments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Offline Workflow
&lt;/h2&gt;

&lt;p&gt;One of the things I specifically wanted to demonstrate was that AI-powered developer tooling doesn't necessarily have to mean cloud-dependent developer tooling.&lt;/p&gt;

&lt;p&gt;After installing Ollama and downloading the model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Internet
   OFF
    │
    ▼
┌───────────────────────┐
│      DevLog           │
│                       │
│  Git → FastAPI        │
│          ↓            │
│       Ollama          │
│          ↓            │
│      Local LLM        │
└───────────────────────┘
    │
    ▼
Commit / PR content
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The AI generation portion can continue to work locally.&lt;/p&gt;

&lt;p&gt;The developer can review and commit locally.&lt;/p&gt;

&lt;p&gt;Only actions involving GitHub require network connectivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Developer Experience
&lt;/h2&gt;

&lt;p&gt;I wanted the workflow to feel like a developer tool rather than a separate AI chatbot.&lt;/p&gt;

&lt;p&gt;The intended flow is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Modify code
       ↓
2. git add
       ↓
3. Open DevLog
       ↓
4. Inspect diff
       ↓
5. Generate commit
       ↓
6. Review / edit
       ↓
7. Commit
       ↓
8. Generate PR
       ↓
9. Push &amp;amp; create PR
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This keeps the AI close to the existing Git workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;The most interesting part of building DevLog was realizing that &lt;strong&gt;local AI changes more than just where the model runs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;With a cloud AI API, the architecture naturally becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application
     ↓
Cloud API
     ↓
AI Provider
     ↓
Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;With local AI, the architecture becomes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Application
     ↓
User's Machine
     ↓
Local Model
     ↓
Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That changes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Privacy boundaries&lt;/li&gt;
&lt;li&gt;Deployment&lt;/li&gt;
&lt;li&gt;Cost structure&lt;/li&gt;
&lt;li&gt;Offline capabilities&lt;/li&gt;
&lt;li&gt;Model selection&lt;/li&gt;
&lt;li&gt;Data ownership&lt;/li&gt;
&lt;li&gt;Infrastructure requirements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also made me think more carefully about the difference between:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"AI-powered"&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;and&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;"AI that is actually part of the user's environment."&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What's Next?
&lt;/h2&gt;

&lt;p&gt;There are several areas I want to explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better model switching from the UI&lt;/li&gt;
&lt;li&gt;Support for more Ollama models&lt;/li&gt;
&lt;li&gt;Prompt customization&lt;/li&gt;
&lt;li&gt;Commit history analysis&lt;/li&gt;
&lt;li&gt;Markdown development-log export&lt;/li&gt;
&lt;li&gt;Multiple repository support&lt;/li&gt;
&lt;li&gt;Better automated test coverage&lt;/li&gt;
&lt;li&gt;More efficient inference for lower-end machines&lt;/li&gt;
&lt;li&gt;More granular privacy controls&lt;/li&gt;
&lt;li&gt;Better handling of very large Git diffs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The long-term idea is to turn DevLog into a &lt;strong&gt;local AI layer for everyday Git workflows&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Optional&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you use DevRelay for this project, you can embed the session here so the judges can see the development process.&lt;/p&gt;

&lt;p&gt;I used DevRelay to document the development process behind DevLog, including the implementation, debugging, and iteration of the local AI workflow.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open Source / Open Innovation&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;DevLog started from a small developer workflow problem.&lt;/p&gt;

&lt;p&gt;Writing commit messages and PR descriptions is repetitive.&lt;/p&gt;

&lt;p&gt;The obvious answer was to connect the application to a cloud AI API.&lt;/p&gt;

&lt;p&gt;Instead, I asked a different question:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Why send the code anywhere at all?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Using an open-weight model locally through Ollama made it possible to keep the AI workflow close to the developer's machine.&lt;/p&gt;

&lt;p&gt;That gives DevLog a different set of priorities:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Your code.&lt;br&gt;
Your machine.&lt;br&gt;
Your model.&lt;br&gt;
Your decision about what gets published.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For this project, that's why open innovation mattered.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
    <item>
      <title>i m here....</title>
      <dc:creator>Harsh Vardhan Pandey</dc:creator>
      <pubDate>Sun, 04 Oct 2026 07:46:33 +0000</pubDate>
      <link>https://dev.to/harsh_vardhanpandey_08fc/i-m-here-3ck5</link>
      <guid>https://dev.to/harsh_vardhanpandey_08fc/i-m-here-3ck5</guid>
      <description></description>
    </item>
  </channel>
</rss>
