<?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: Shikhar Ahirwar</title>
    <description>The latest articles on DEV Community by Shikhar Ahirwar (@shikhar_ahirwar_60abbcba4).</description>
    <link>https://dev.to/shikhar_ahirwar_60abbcba4</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%2F4163690%2Fa3588993-d621-47c1-bf89-bbd5bbd39757.png</url>
      <title>DEV Community: Shikhar Ahirwar</title>
      <link>https://dev.to/shikhar_ahirwar_60abbcba4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shikhar_ahirwar_60abbcba4"/>
    <language>en</language>
    <item>
      <title>🚀 Soft Start — A Local AI Tool to Turn Overwhelming Tasks into Tiny First Steps</title>
      <dc:creator>Shikhar Ahirwar</dc:creator>
      <pubDate>Tue, 20 Oct 2026 05:52:14 +0000</pubDate>
      <link>https://dev.to/shikhar_ahirwar_60abbcba4/soft-start-a-local-ai-tool-to-turn-overwhelming-tasks-into-tiny-first-steps-152n</link>
      <guid>https://dev.to/shikhar_ahirwar_60abbcba4/soft-start-a-local-ai-tool-to-turn-overwhelming-tasks-into-tiny-first-steps-152n</guid>
      <description>&lt;h2&gt;
  
  
  💡 What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;Soft Start&lt;/strong&gt; 🌱 — a privacy-first local AI tool designed to help people start tasks they have been putting off.&lt;/p&gt;

&lt;p&gt;Instead of generating a huge and overwhelming plan, Soft Start turns a task into &lt;strong&gt;one tiny first step&lt;/strong&gt; 👣 and up to three optional next steps.&lt;/p&gt;

&lt;p&gt;It also adapts the plan to your current energy level ⚡:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔋 Low energy&lt;/li&gt;
&lt;li&gt;⚡ Some energy&lt;/li&gt;
&lt;li&gt;🚀 Plenty of energy&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The AI runs locally using &lt;strong&gt;Ollama + an open-weight model&lt;/strong&gt; 🤖, so your task stays on your device instead of being sent to a cloud AI service.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;🌱 &lt;strong&gt;Make starting easier — not make the task more complicated.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  ⚙️ How It Works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;📝 Enter a task you have been avoiding.&lt;/li&gt;
&lt;li&gt;⚡ Select your current energy level.&lt;/li&gt;
&lt;li&gt;🤖 Soft Start sends the task to your local Ollama model.&lt;/li&gt;
&lt;li&gt;💡 The model creates one small first step and optional next steps.&lt;/li&gt;
&lt;li&gt;👀 Review the suggested plan.&lt;/li&gt;
&lt;li&gt;🚶 Start with the first step.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;🔒 The AI only provides suggestions. It cannot execute the task or access your filesystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Why I Built It
&lt;/h2&gt;

&lt;p&gt;Sometimes the hardest part of a task is simply &lt;strong&gt;getting started&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I wanted to experiment with open-source AI 🤖 in a way that was actually useful without making AI responsible for completing everything.&lt;/p&gt;

&lt;p&gt;Soft Start focuses on &lt;strong&gt;reducing the starting barrier&lt;/strong&gt; 🧩 while keeping the final decision and action with the user.&lt;/p&gt;

&lt;p&gt;I also wanted to explore how &lt;strong&gt;local AI&lt;/strong&gt; 🖥️ can provide a more private alternative for simple personal workflows.&lt;/p&gt;

&lt;p&gt;🌱 &lt;strong&gt;One small step can be enough to get moving.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  🔒 Privacy
&lt;/h2&gt;

&lt;p&gt;Privacy was an important part of the design.&lt;/p&gt;

&lt;p&gt;🏠 AI inference runs locally through Ollama.&lt;/p&gt;

&lt;p&gt;🚫 No cloud AI API is required.&lt;/p&gt;

&lt;p&gt;📊 No analytics.&lt;/p&gt;

&lt;p&gt;🍪 No cookies.&lt;/p&gt;

&lt;p&gt;💾 No database for task storage.&lt;/p&gt;

&lt;p&gt;🌐 The Node.js server binds to &lt;code&gt;127.0.0.1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;💻 Code &lt;br&gt;
🚀 &lt;a href="https://github.com/shikharahirwar489-ui/soft-start-local-ai.git" rel="noopener noreferrer"&gt;https://github.com/shikharahirwar489-ui/soft-start-local-ai.git&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/shikharahirwar489-ui/soft-start-local-ai.git" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your task stays on your device. 🔐&lt;/p&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%2Fc48rde7kpwwtd7b9x8gx.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%2Fc48rde7kpwwtd7b9x8gx.png" alt=" " width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Quote Forge</title>
      <dc:creator>Shikhar Ahirwar</dc:creator>
      <pubDate>Wed, 14 Oct 2026 16:32:02 +0000</pubDate>
      <link>https://dev.to/shikhar_ahirwar_60abbcba4/quote-forge-5bgc</link>
      <guid>https://dev.to/shikhar_ahirwar_60abbcba4/quote-forge-5bgc</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&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;QuoteForge Local&lt;/strong&gt;, a private, local-first AI proposal and quote builder designed for freelancers.&lt;/p&gt;

&lt;p&gt;A freelancer can enter:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A client's project brief&lt;/li&gt;
&lt;li&gt;Service or project type&lt;/li&gt;
&lt;li&gt;Hourly rate&lt;/li&gt;
&lt;li&gt;Estimated hours&lt;/li&gt;
&lt;li&gt;Additional expenses&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;QuoteForge then generates a professional proposal draft using the open-weight &lt;strong&gt;Llama 3.2&lt;/strong&gt; model running locally through &lt;strong&gt;Ollama&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The important part is that AI does &lt;strong&gt;not&lt;/strong&gt; control the price.&lt;/p&gt;

&lt;p&gt;The quote is calculated separately by application code:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hourly Rate × Estimated Hours + Additional Expenses&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This keeps the financial calculation deterministic while AI is used only for proposal wording.&lt;/p&gt;

&lt;h3&gt;
  
  
  Who would pay for it?
&lt;/h3&gt;

&lt;p&gt;The target users are freelancers, independent developers, designers, marketers, consultants, and other solo service providers who regularly create client proposals.&lt;/p&gt;

&lt;p&gt;The value proposition is simple: &lt;strong&gt;spend less time writing repetitive proposals while keeping sensitive client information local.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  What problem does it solve?
&lt;/h3&gt;

&lt;p&gt;Freelancers often have to repeatedly turn a short client brief into a structured proposal. Existing AI tools can help with the writing, but they often require sending client information to a hosted AI service.&lt;/p&gt;

&lt;p&gt;QuoteForge explores a different approach:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Can AI help create useful freelance proposals without requiring the client's project brief to leave the freelancer's machine?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/shikharahirwar489-ui/quoteforge-local" rel="noopener noreferrer"&gt;https://github.com/shikharahirwar489-ui/quoteforge-local&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The application currently runs locally with Docker Compose.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;--build&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first launch downloads the Ollama runtime/model. Later launches reuse the local model volume.&lt;/p&gt;

&lt;p&gt;There is currently no hosted demo because the project is intentionally designed around local inference.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/shikharahirwar489-ui/quoteforge-local" rel="noopener noreferrer"&gt;https://github.com/shikharahirwar489-ui/quoteforge-local&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the complete application, Docker configuration, frontend, backend, prompts, and setup instructions.&lt;/p&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;QuoteForge is built around &lt;strong&gt;open-weight AI running locally&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Llama 3.2&lt;/strong&gt; — open-weight language model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; — local model runtime&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model is responsible for generating the proposal wording from the freelancer's project information.&lt;/p&gt;

&lt;p&gt;I deliberately kept the AI's responsibility narrow.&lt;/p&gt;

&lt;p&gt;The model is instructed to avoid inventing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Credentials&lt;/li&gt;
&lt;li&gt;Previous clients&lt;/li&gt;
&lt;li&gt;Deliverables&lt;/li&gt;
&lt;li&gt;Deadlines&lt;/li&gt;
&lt;li&gt;Guarantees&lt;/li&gt;
&lt;li&gt;Other unsupported claims&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If important information is missing, the proposal should flag it for the freelancer to confirm instead of making it up.&lt;/p&gt;

&lt;h3&gt;
  
  
  Application
&lt;/h3&gt;

&lt;p&gt;The application&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>javascript</category>
      <category>python</category>
    </item>
    <item>
      <title>Quote Forge</title>
      <dc:creator>Shikhar Ahirwar</dc:creator>
      <pubDate>Wed, 14 Oct 2026 16:26:31 +0000</pubDate>
      <link>https://dev.to/shikhar_ahirwar_60abbcba4/quote-forge-28lj</link>
      <guid>https://dev.to/shikhar_ahirwar_60abbcba4/quote-forge-28lj</guid>
      <description>&lt;h1&gt;
  
  
  QuoteForge Local
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;A private, local-first AI proposal and quote builder for freelancers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;QuoteForge Local helps freelancers turn a client project brief into a professional proposal draft while keeping the client's information and AI processing on their own machine.&lt;/p&gt;

&lt;p&gt;Describe the project, enter your hourly rate, estimated hours, and additional expenses. QuoteForge then calculates the project estimate using ordinary application code and uses the open-weight &lt;strong&gt;Llama 3.2&lt;/strong&gt; model through &lt;strong&gt;Ollama&lt;/strong&gt; to draft the proposal.&lt;/p&gt;

&lt;p&gt;Built for the &lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 2: Side Hustle&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ What It Does
&lt;/h2&gt;

&lt;p&gt;QuoteForge Local combines deterministic pricing with local AI assistance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📝 &lt;strong&gt;AI Proposal Drafting&lt;/strong&gt; — Generate a proposal from a project brief.&lt;/li&gt;
&lt;li&gt;💰 &lt;strong&gt;Deterministic Quote Calculation&lt;/strong&gt; — Calculates:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Hourly Rate × Estimated Hours + Additional Expenses&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔒 &lt;strong&gt;Local-First AI&lt;/strong&gt; — The project brief is processed through a local Ollama service instead of a hosted AI API.&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;Open-Weight AI&lt;/strong&gt; — Uses Llama 3.2 through Ollama.&lt;/li&gt;
&lt;li&gt;🚫 &lt;strong&gt;No API Keys Required&lt;/strong&gt; — No OpenAI, Anthropic, or other hosted AI account is required.&lt;/li&gt;
&lt;li&gt;📋 &lt;strong&gt;Copy-Ready Output&lt;/strong&gt; — Review and copy the generated proposal directly from the browser.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Controlled AI Scope&lt;/strong&gt; — The model is instructed not to invent credentials, deliverables, deadlines, guarantees, or other unsupported claims.&lt;/li&gt;
&lt;li&gt;💾 &lt;strong&gt;No Database&lt;/strong&gt; — Generated content stays in the browser until the user chooses to copy it.&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;No Analytics&lt;/strong&gt; — No tracking or third-party analytics are included.&lt;/li&gt;
&lt;li&gt;📤 &lt;strong&gt;No Automatic Sending&lt;/strong&gt; — QuoteForge does not send proposals directly to clients.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔐 Why Local-First?
&lt;/h2&gt;

&lt;p&gt;Client briefs can contain sensitive business information.&lt;/p&gt;

&lt;p&gt;Instead of sending that information to a third-party AI API, QuoteForge keeps the AI workflow local:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser → Local Python API → Local Ollama → Llama 3.2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application is designed so that the project brief is sent only to the locally running Ollama service.&lt;/p&gt;

&lt;p&gt;The first Docker Compose startup requires internet access to download the Docker runtime components and the selected Ollama model. After the model has been downloaded, the model is reused from the local Docker volume.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧮 AI Does Not Control the Price
&lt;/h2&gt;

&lt;p&gt;One important design decision is separating &lt;strong&gt;language generation&lt;/strong&gt; from &lt;strong&gt;financial calculation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The AI is responsible for wording the proposal.&lt;/p&gt;

&lt;p&gt;The application code is responsible for calculating the quote.&lt;/p&gt;

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

&lt;p&gt;&lt;code&gt;₹1,000/hour × 20 hours + ₹2,000 expenses = ₹22,000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The model cannot modify this arithmetic because the calculation happens independently in ordinary application code.&lt;/p&gt;

&lt;p&gt;This makes the system more predictable and prevents an AI-generated response from accidentally changing the quoted amount.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤖 Responsible AI Design
&lt;/h2&gt;

&lt;p&gt;QuoteForge deliberately gives the language model a narrow responsibility.&lt;/p&gt;

&lt;p&gt;The model generates proposal wording, but it does &lt;strong&gt;not&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decide whether a project is profitable&lt;/li&gt;
&lt;li&gt;Determine the freelancer's pricing&lt;/li&gt;
&lt;li&gt;Create binding contract terms&lt;/li&gt;
&lt;li&gt;Invent previous client experience&lt;/li&gt;
&lt;li&gt;Invent qualifications or credentials&lt;/li&gt;
&lt;li&gt;Promise unsupported results&lt;/li&gt;
&lt;li&gt;Automatically send proposals to clients&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Missing information should be identified for the freelancer to confirm rather than being fabricated.&lt;/p&gt;

&lt;p&gt;AI-generated content should still be reviewed by the freelancer before being shared with a client.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.12&lt;/strong&gt; — Standard library&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML / CSS / JavaScript&lt;/strong&gt; — Frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; — Local AI runtime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Llama 3.2&lt;/strong&gt; — Open-weight language model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker Compose&lt;/strong&gt; — Local deployment&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MIT License&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Python backend intentionally uses the standard library, including modules such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;http.server&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;urllib&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps the project lightweight and reduces unnecessary dependencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Run Locally
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;p&gt;You need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker Desktop&lt;/li&gt;
&lt;li&gt;Docker Compose&lt;/li&gt;
&lt;li&gt;Sufficient disk space for the Ollama image and model&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Start QuoteForge
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;--build&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first startup downloads the required Ollama model.&lt;/p&gt;

&lt;p&gt;Once the services are ready, open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Stop the application with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ctrl+C
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Later launches can reuse the locally stored model through the Docker volume.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ Changing the AI Model
&lt;/h2&gt;

&lt;p&gt;The default setup uses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;llama3.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;OLLAMA_MODEL&lt;/code&gt; configuration can be changed to another model available through Ollama, provided the machine has enough resources to run it.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                ┌──────────────────┐
                │     Browser      │
                │  HTML/CSS/JS     │
                └────────┬─────────┘
                         │
                         ▼
                ┌──────────────────┐
                │   Python API     │
                │  Local Adapter   │
                └───────┬──────────┘
                        │
              ┌─────────┴─────────┐
              │                   │
              ▼                   ▼
      ┌──────────────┐    ┌──────────────┐
      │ Quote Logic  │    │   Ollama     │
      │ Rate × Hours │    │  Llama 3.2   │
      │ + Expenses   │    │ Local Model  │
      └──────────────┘    └──────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The quote calculation and AI generation remain separate by design.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 The Problem
&lt;/h2&gt;

&lt;p&gt;Freelancers often need to create proposals quickly after receiving a client inquiry.&lt;/p&gt;

&lt;p&gt;That process can involve:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding the client's brief&lt;/li&gt;
&lt;li&gt;Structuring the proposed work&lt;/li&gt;
&lt;li&gt;Writing professional proposal language&lt;/li&gt;
&lt;li&gt;Calculating the estimated price&lt;/li&gt;
&lt;li&gt;Reviewing the proposal for unsupported claims&lt;/li&gt;
&lt;li&gt;Sending it to the client&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Many AI proposal tools require sending client information to a hosted AI service.&lt;/p&gt;

&lt;p&gt;QuoteForge explores a different approach:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Can AI help freelancers write proposals without requiring their client data to leave their machine?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  💡 The Solution
&lt;/h2&gt;

&lt;p&gt;QuoteForge Local combines a simple deterministic quote calculator with a locally running open-weight language model.&lt;/p&gt;

&lt;p&gt;The result is a small, transparent workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client Brief → Local AI Draft → Deterministic Quote → Human Review → Copy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The freelancer remains in control of the final proposal.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌱 Why This Fits "Side Hustle"
&lt;/h2&gt;

&lt;p&gt;QuoteForge is designed around a practical freelancer workflow rather than AI for AI's sake.&lt;/p&gt;

&lt;p&gt;A freelancer can use it to quickly turn an initial project description into a structured proposal while maintaining control over:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pricing&lt;/li&gt;
&lt;li&gt;Scope&lt;/li&gt;
&lt;li&gt;Client information&lt;/li&gt;
&lt;li&gt;Final wording&lt;/li&gt;
&lt;li&gt;When and where the proposal is sent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to replace the freelancer.&lt;/p&gt;

&lt;p&gt;The goal is to remove repetitive proposal-writing work while keeping important decisions under human control.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚠️ Limitations
&lt;/h2&gt;

&lt;p&gt;QuoteForge is intentionally small and focused.&lt;/p&gt;

&lt;p&gt;It currently does not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store client accounts&lt;/li&gt;
&lt;li&gt;Provide a CRM&lt;/li&gt;
&lt;li&gt;Send emails&lt;/li&gt;
&lt;li&gt;Sign contracts&lt;/li&gt;
&lt;li&gt;Process payments&lt;/li&gt;
&lt;li&gt;Determine whether a project is financially profitable&lt;/li&gt;
&lt;li&gt;Guarantee the accuracy of AI-generated text&lt;/li&gt;
&lt;li&gt;Provide legal or financial advice&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The generated proposal should always be reviewed before being shared with a client.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔮 Future Ideas
&lt;/h2&gt;

&lt;p&gt;Possible future improvements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple proposal templates&lt;/li&gt;
&lt;li&gt;Export to PDF&lt;/li&gt;
&lt;li&gt;Proposal version history stored locally&lt;/li&gt;
&lt;li&gt;More detailed project breakdowns&lt;/li&gt;
&lt;li&gt;Local proposal history&lt;/li&gt;
&lt;li&gt;Additional Ollama model presets&lt;/li&gt;
&lt;li&gt;Custom freelancer profiles stored locally&lt;/li&gt;
&lt;li&gt;Optional local document import&lt;/li&gt;
&lt;li&gt;Improved accessibility&lt;/li&gt;
&lt;li&gt;Automated proposal quality checks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These features would be considered carefully to preserve the project's local-first philosophy.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Privacy Philosophy
&lt;/h2&gt;

&lt;p&gt;QuoteForge follows a simple principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Your client data should not need to become someone else's AI training input just to help you write a proposal.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are no third-party fonts, analytics services, hosted AI APIs, or accounts required by the application itself.&lt;/p&gt;

&lt;p&gt;The initial Docker setup does require network access to obtain the container image and Ollama model. Once running locally, proposal generation uses the local Ollama service.&lt;/p&gt;

&lt;h2&gt;
  
  
  📜 License
&lt;/h2&gt;

&lt;p&gt;QuoteForge Local is released under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://dev.toLICENSE"&gt;&lt;code&gt;LICENSE&lt;/code&gt;&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏆 Hacktoberfest
&lt;/h2&gt;

&lt;p&gt;Built as a submission for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 2: Side Hustle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;QuoteForge demonstrates how open-weight AI can be integrated into a realistic freelance workflow while keeping pricing deterministic and AI processing local.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;code&gt;shikharahirwar489-ui/quoteforge-local&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; QuoteForge Local&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focus:&lt;/strong&gt; Local AI • Freelancing • Privacy • Open-Weight Models • Responsible AI&lt;/p&gt;

</description>
      <category>hf26challenge</category>
      <category>python</category>
      <category>html</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Quote Forge</title>
      <dc:creator>Shikhar Ahirwar</dc:creator>
      <pubDate>Wed, 14 Oct 2026 16:16:54 +0000</pubDate>
      <link>https://dev.to/shikhar_ahirwar_60abbcba4/quote-forge-57p4</link>
      <guid>https://dev.to/shikhar_ahirwar_60abbcba4/quote-forge-57p4</guid>
      <description>&lt;h1&gt;
  
  
  QuoteForge Local
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;A private, local-first AI proposal and quote builder for freelancers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;QuoteForge Local helps freelancers turn a client project brief into a professional proposal draft while keeping the client's information and AI processing on their own machine.&lt;/p&gt;

&lt;p&gt;Describe the project, enter your hourly rate, estimated hours, and additional expenses. QuoteForge then calculates the project estimate using ordinary application code and uses the open-weight &lt;strong&gt;Llama 3.2&lt;/strong&gt; model through &lt;strong&gt;Ollama&lt;/strong&gt; to draft the proposal.&lt;/p&gt;

&lt;p&gt;Built for the &lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 2: Side Hustle&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ What It Does
&lt;/h2&gt;

&lt;p&gt;QuoteForge Local combines deterministic pricing with local AI assistance:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;📝 &lt;strong&gt;AI Proposal Drafting&lt;/strong&gt; — Generate a proposal from a project brief.&lt;/li&gt;
&lt;li&gt;💰 &lt;strong&gt;Deterministic Quote Calculation&lt;/strong&gt; — Calculates:&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;Hourly Rate × Estimated Hours + Additional Expenses&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔒 &lt;strong&gt;Local-First AI&lt;/strong&gt; — The project brief is processed through a local Ollama service instead of a hosted AI API.&lt;/li&gt;
&lt;li&gt;🤖 &lt;strong&gt;Open-Weight AI&lt;/strong&gt; — Uses Llama 3.2 through Ollama.&lt;/li&gt;
&lt;li&gt;🚫 &lt;strong&gt;No API Keys Required&lt;/strong&gt; — No OpenAI, Anthropic, or other hosted AI account is required.&lt;/li&gt;
&lt;li&gt;📋 &lt;strong&gt;Copy-Ready Output&lt;/strong&gt; — Review and copy the generated proposal directly from the browser.&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;Controlled AI Scope&lt;/strong&gt; — The model is instructed not to invent credentials, deliverables, deadlines, guarantees, or other unsupported claims.&lt;/li&gt;
&lt;li&gt;💾 &lt;strong&gt;No Database&lt;/strong&gt; — Generated content stays in the browser until the user chooses to copy it.&lt;/li&gt;
&lt;li&gt;📊 &lt;strong&gt;No Analytics&lt;/strong&gt; — No tracking or third-party analytics are included.&lt;/li&gt;
&lt;li&gt;📤 &lt;strong&gt;No Automatic Sending&lt;/strong&gt; — QuoteForge does not send proposals directly to clients.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🔐 Why Local-First?
&lt;/h2&gt;

&lt;p&gt;Client briefs can contain sensitive business information.&lt;/p&gt;

&lt;p&gt;Instead of sending that information to a third-party AI API, QuoteForge keeps the AI workflow local:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser → Local Python API → Local Ollama → Llama 3.2&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The application is designed so that the project brief is sent only to the locally running Ollama service.&lt;/p&gt;

&lt;p&gt;The first Docker Compose startup requires internet access to download the Docker runtime components and the selected Ollama model. After the model has been downloaded, the model is reused from the local Docker volume.&lt;/p&gt;

&lt;h2&gt;
  
  
  🧮 AI Does Not Control the Price
&lt;/h2&gt;

&lt;p&gt;One important design decision is separating &lt;strong&gt;language generation&lt;/strong&gt; from &lt;strong&gt;financial calculation&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The AI is responsible for wording the proposal.&lt;/p&gt;

&lt;p&gt;The application code is responsible for calculating the quote.&lt;/p&gt;

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

&lt;p&gt;&lt;code&gt;₹1,000/hour × 20 hours + ₹2,000 expenses = ₹22,000&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The model cannot modify this arithmetic because the calculation happens independently in ordinary application code.&lt;/p&gt;

&lt;p&gt;This makes the system more predictable and prevents an AI-generated response from accidentally changing the quoted amount.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤖 Responsible AI Design
&lt;/h2&gt;

&lt;p&gt;QuoteForge deliberately gives the language model a narrow responsibility.&lt;/p&gt;

&lt;p&gt;The model generates proposal wording, but it does &lt;strong&gt;not&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decide whether a project is profitable&lt;/li&gt;
&lt;li&gt;Determine the freelancer's pricing&lt;/li&gt;
&lt;li&gt;Create binding contract terms&lt;/li&gt;
&lt;li&gt;Invent previous client experience&lt;/li&gt;
&lt;li&gt;Invent qualifications or credentials&lt;/li&gt;
&lt;li&gt;Promise unsupported results&lt;/li&gt;
&lt;li&gt;Automatically send proposals to clients&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Missing information should be identified for the freelancer to confirm rather than being fabricated.&lt;/p&gt;

&lt;p&gt;AI-generated content should still be reviewed by the freelancer before being shared with a client.&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.12&lt;/strong&gt; — Standard library&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML / CSS / JavaScript&lt;/strong&gt; — Frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; — Local AI runtime&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Llama 3.2&lt;/strong&gt; — Open-weight language model&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docker Compose&lt;/strong&gt; — Local deployment&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MIT License&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Python backend intentionally uses the standard library, including modules such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;http.server&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;urllib&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps the project lightweight and reduces unnecessary dependencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Run Locally
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Requirements
&lt;/h3&gt;

&lt;p&gt;You need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker Desktop&lt;/li&gt;
&lt;li&gt;Docker Compose&lt;/li&gt;
&lt;li&gt;Sufficient disk space for the Ollama image and model&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Start QuoteForge
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;--build&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first startup downloads the required Ollama model.&lt;/p&gt;

&lt;p&gt;Once the services are ready, open:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://127.0.0.1:8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Stop the application with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Ctrl+C
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Later launches can reuse the locally stored model through the Docker volume.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚙️ Changing the AI Model
&lt;/h2&gt;

&lt;p&gt;The default setup uses:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;llama3.2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;OLLAMA_MODEL&lt;/code&gt; configuration can be changed to another model available through Ollama, provided the machine has enough resources to run it.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏗️ Architecture
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                ┌──────────────────┐
                │     Browser      │
                │  HTML/CSS/JS     │
                └────────┬─────────┘
                         │
                         ▼
                ┌──────────────────┐
                │   Python API     │
                │  Local Adapter   │
                └───────┬──────────┘
                        │
              ┌─────────┴─────────┐
              │                   │
              ▼                   ▼
      ┌──────────────┐    ┌──────────────┐
      │ Quote Logic  │    │   Ollama     │
      │ Rate × Hours │    │  Llama 3.2   │
      │ + Expenses   │    │ Local Model  │
      └──────────────┘    └──────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The quote calculation and AI generation remain separate by design.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 The Problem
&lt;/h2&gt;

&lt;p&gt;Freelancers often need to create proposals quickly after receiving a client inquiry.&lt;/p&gt;

&lt;p&gt;That process can involve:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Understanding the client's brief&lt;/li&gt;
&lt;li&gt;Structuring the proposed work&lt;/li&gt;
&lt;li&gt;Writing professional proposal language&lt;/li&gt;
&lt;li&gt;Calculating the estimated price&lt;/li&gt;
&lt;li&gt;Reviewing the proposal for unsupported claims&lt;/li&gt;
&lt;li&gt;Sending it to the client&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Many AI proposal tools require sending client information to a hosted AI service.&lt;/p&gt;

&lt;p&gt;QuoteForge explores a different approach:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Can AI help freelancers write proposals without requiring their client data to leave their machine?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  💡 The Solution
&lt;/h2&gt;

&lt;p&gt;QuoteForge Local combines a simple deterministic quote calculator with a locally running open-weight language model.&lt;/p&gt;

&lt;p&gt;The result is a small, transparent workflow:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Client Brief → Local AI Draft → Deterministic Quote → Human Review → Copy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The freelancer remains in control of the final proposal.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌱 Why This Fits "Side Hustle"
&lt;/h2&gt;

&lt;p&gt;QuoteForge is designed around a practical freelancer workflow rather than AI for AI's sake.&lt;/p&gt;

&lt;p&gt;A freelancer can use it to quickly turn an initial project description into a structured proposal while maintaining control over:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pricing&lt;/li&gt;
&lt;li&gt;Scope&lt;/li&gt;
&lt;li&gt;Client information&lt;/li&gt;
&lt;li&gt;Final wording&lt;/li&gt;
&lt;li&gt;When and where the proposal is sent&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to replace the freelancer.&lt;/p&gt;

&lt;p&gt;The goal is to remove repetitive proposal-writing work while keeping important decisions under human control.&lt;/p&gt;

&lt;h2&gt;
  
  
  ⚠️ Limitations
&lt;/h2&gt;

&lt;p&gt;QuoteForge is intentionally small and focused.&lt;/p&gt;

&lt;p&gt;It currently does not:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store client accounts&lt;/li&gt;
&lt;li&gt;Provide a CRM&lt;/li&gt;
&lt;li&gt;Send emails&lt;/li&gt;
&lt;li&gt;Sign contracts&lt;/li&gt;
&lt;li&gt;Process payments&lt;/li&gt;
&lt;li&gt;Determine whether a project is financially profitable&lt;/li&gt;
&lt;li&gt;Guarantee the accuracy of AI-generated text&lt;/li&gt;
&lt;li&gt;Provide legal or financial advice&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The generated proposal should always be reviewed before being shared with a client.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔮 Future Ideas
&lt;/h2&gt;

&lt;p&gt;Possible future improvements include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiple proposal templates&lt;/li&gt;
&lt;li&gt;Export to PDF&lt;/li&gt;
&lt;li&gt;Proposal version history stored locally&lt;/li&gt;
&lt;li&gt;More detailed project breakdowns&lt;/li&gt;
&lt;li&gt;Local proposal history&lt;/li&gt;
&lt;li&gt;Additional Ollama model presets&lt;/li&gt;
&lt;li&gt;Custom freelancer profiles stored locally&lt;/li&gt;
&lt;li&gt;Optional local document import&lt;/li&gt;
&lt;li&gt;Improved accessibility&lt;/li&gt;
&lt;li&gt;Automated proposal quality checks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These features would be considered carefully to preserve the project's local-first philosophy.&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Privacy Philosophy
&lt;/h2&gt;

&lt;p&gt;QuoteForge follows a simple principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Your client data should not need to become someone else's AI training input just to help you write a proposal.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;There are no third-party fonts, analytics services, hosted AI APIs, or accounts required by the application itself.&lt;/p&gt;

&lt;p&gt;The initial Docker setup does require network access to obtain the container image and Ollama model. Once running locally, proposal generation uses the local Ollama service.&lt;/p&gt;

&lt;h2&gt;
  
  
  📜 License
&lt;/h2&gt;

&lt;p&gt;QuoteForge Local is released under the &lt;strong&gt;MIT License&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;See &lt;a href="https://dev.toLICENSE"&gt;&lt;code&gt;LICENSE&lt;/code&gt;&lt;/a&gt; for details.&lt;/p&gt;

&lt;h2&gt;
  
  
  🏆 Hacktoberfest
&lt;/h2&gt;

&lt;p&gt;Built as a submission for:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 2: Side Hustle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;QuoteForge demonstrates how open-weight AI can be integrated into a realistic freelance workflow while keeping pricing deterministic and AI processing local.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Repository:&lt;/strong&gt; &lt;code&gt;shikharahirwar489-ui/quoteforge-local&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; QuoteForge Local&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Focus:&lt;/strong&gt; Local AI • Freelancing • Privacy • Open-Weight Models • Responsible AI&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>python</category>
      <category>html</category>
    </item>
    <item>
      <title>QuoteForge: Local AI proposals with prices you can trust</title>
      <dc:creator>Shikhar Ahirwar</dc:creator>
      <pubDate>Wed, 14 Oct 2026 15:51:19 +0000</pubDate>
      <link>https://dev.to/shikhar_ahirwar_60abbcba4/quoteforge-local-ai-proposals-with-prices-you-can-trust-17a3</link>
      <guid>https://dev.to/shikhar_ahirwar_60abbcba4/quoteforge-local-ai-proposals-with-prices-you-can-trust-17a3</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week2-2026-10-12"&gt;Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;QuoteForge helps an independent freelancer turn a client brief into a clear proposal. Enter the service, brief, hourly rate, estimated hours, and expenses; the app calculates the quote and asks a local open-weight model to draft the words around it.&lt;/p&gt;

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

&lt;p&gt;The demo runs locally. Clone the repository, then run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker compose up &lt;span class="nt"&gt;--build&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After the first-run download of the Ollama runtime and &lt;code&gt;llama3.2&lt;/code&gt; model completes, open &lt;a href="http://127.0.0.1:8000" rel="noopener noreferrer"&gt;http://127.0.0.1:8000&lt;/a&gt;. The first download needs disk space and can take a while. There is no hosted demo yet.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/shikharahirwar489-ui/quoteforge-local" rel="noopener noreferrer"&gt;QuoteForge on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;The app uses a small Python standard-library HTTP server, a plain HTML/CSS/JavaScript interface, Docker Compose, and Ollama running the open-weight &lt;code&gt;llama3.2&lt;/code&gt; model. The model drafts the proposal; ordinary code calculates &lt;code&gt;rate × hours + expenses&lt;/code&gt;, so generated text cannot alter the estimate.&lt;/p&gt;

&lt;p&gt;The prompt asks the model not to invent experience, deliverables, dates, or guarantees. Missing details are marked for the freelancer to confirm. The draft stays in the browser until copied; the app has no account, database, analytics, or send-to-client feature.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open innovation matters
&lt;/h2&gt;

&lt;p&gt;A client brief can include private business details. Running the model locally keeps that brief on the freelancer’s machine and avoids sending it to a hosted AI API. The model can also be changed through the &lt;code&gt;OLLAMA_MODEL&lt;/code&gt; setting. The trade-off is that the user supplies local compute and manages the initial model download.&lt;/p&gt;

&lt;p&gt;I kept the first version deliberately narrow: it drafts wording, while the freelancer reviews the scope and decides whether the price is right. That matches practical guidance from &lt;a href="https://dev.to/shawn_m35/lessons-i-learned-building-ai-features-that-real-users-depend-on-4jag"&gt;Shawn M. on reliability and narrow AI workflows&lt;/a&gt; and &lt;a href="https://dev.to/bestbee/evaluate-an-open-source-ai-tool-without-inventing-social-proof-3583"&gt;bestbee on gathering verifiable evidence when evaluating open-source AI tools&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations
&lt;/h2&gt;

&lt;p&gt;QuoteForge has not been tested with a real client workflow yet. Model output can still be wrong, so review it before sharing. The current demo is local-only and requires Docker plus enough disk space for the model.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>opensource</category>
      <category>webdev</category>
    </item>
    <item>
      <title>GO. — AI for Leaving the Screen</title>
      <dc:creator>Shikhar Ahirwar</dc:creator>
      <pubDate>Thu, 08 Oct 2026 14:26:23 +0000</pubDate>
      <link>https://dev.to/shikhar_ahirwar_60abbcba4/go-ai-for-leaving-the-screen-4c5i</link>
      <guid>https://dev.to/shikhar_ahirwar_60abbcba4/go-ai-for-leaving-the-screen-4c5i</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-&lt;br&gt;%0A![%20](https://dev-to-uploads.s3.us-east-2.amazonaws.com/uploads/articles/hxbb2ymyvt2bm3ooppwa.png)2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  I Built an AI That Wants You to Put Your Phone Away 🌱
&lt;/h1&gt;

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

&lt;p&gt;&lt;strong&gt;GO. — AI for Leaving the Screen&lt;/strong&gt; is a small web app built around a simple idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Ask AI. Then leave.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most AI tools are designed to keep us on screens longer. GO. tries to do the opposite.&lt;/p&gt;

&lt;p&gt;The user chooses a &lt;strong&gt;vibe, duration, company, and place&lt;/strong&gt;, and GO. generates a small offline mission designed to get them away from their device and into the real world.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Take a short walk and notice five things you normally ignore.&lt;/li&gt;
&lt;li&gt;Explore a nearby area you've never paid attention to.&lt;/li&gt;
&lt;li&gt;Do a small creative activity without using your phone.&lt;/li&gt;
&lt;li&gt;Talk to someone you haven't spoken to recently.&lt;/li&gt;
&lt;li&gt;Spend 20 minutes outside without checking your screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After generating a mission, GO. starts a short countdown and tells the user to &lt;strong&gt;put the phone away&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The app is designed for students, people who spend too much time online, and anyone who wants a simple reason to step outside, move, notice their surroundings, or connect with other people.&lt;/p&gt;

&lt;p&gt;The goal isn't to replace real life with AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal is to use AI for a few seconds so you can leave it behind.&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;br&gt;
&lt;a href="https://shikharahirwar489-ui.github.io/-GO.-AI-for-Leaving-the-Screen/" rel="noopener noreferrer"&gt;https://shikharahirwar489-ui.github.io/-GO.-AI-for-Leaving-the-Screen/&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/shikharahirwar489-ui/-GO.-AI-for-Leaving-the-Screen.git" rel="noopener noreferrer"&gt;https://github.com/shikharahirwar489-ui/-GO.-AI-for-Leaving-the-Screen.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is built with a simple frontend so that it is easy for other developers to understand, modify, and contribute to.&lt;/p&gt;

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

&lt;p&gt;GO. is built with &lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt; on the frontend.&lt;/p&gt;

&lt;p&gt;The project is designed around local/open AI rather than depending on a proprietary AI API.&lt;/p&gt;

&lt;p&gt;The planned architecture is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser → Local Backend → Ollama → Open-Weight Model → Offline Mission&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The AI receives structured information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;selected activity/vibe&lt;/li&gt;
&lt;li&gt;available time&lt;/li&gt;
&lt;li&gt;whether the user is alone or with others&lt;/li&gt;
&lt;li&gt;preferred location&lt;/li&gt;
&lt;li&gt;optional constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It then generates a short, practical mission that encourages the user to stop using their device.&lt;/p&gt;

&lt;p&gt;The frontend also includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;responsive UI&lt;/li&gt;
&lt;li&gt;mission generation&lt;/li&gt;
&lt;li&gt;multiple activity categories&lt;/li&gt;
&lt;li&gt;countdown before leaving the screen&lt;/li&gt;
&lt;li&gt;mission completion&lt;/li&gt;
&lt;li&gt;local mission history&lt;/li&gt;
&lt;li&gt;localStorage&lt;/li&gt;
&lt;li&gt;safety guidance&lt;/li&gt;
&lt;li&gt;no account requirement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important design decision is that &lt;strong&gt;AI is only the starting point&lt;/strong&gt;. The experience intentionally ends by encouraging the user to stop interacting with the application.&lt;/p&gt;

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

&lt;p&gt;Open innovation makes an idea like GO. much more interesting because the AI doesn't have to live inside a closed ecosystem.&lt;/p&gt;

&lt;p&gt;With open-weight models and local inference, the mission-generation system can potentially run directly on the user's own computer.&lt;/p&gt;

&lt;p&gt;That means developers can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;inspect how the AI is being used&lt;/li&gt;
&lt;li&gt;experiment with different models&lt;/li&gt;
&lt;li&gt;modify the prompts&lt;/li&gt;
&lt;li&gt;run inference locally&lt;/li&gt;
&lt;li&gt;build new mission-generation strategies&lt;/li&gt;
&lt;li&gt;contribute improvements without depending entirely on a proprietary API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also fits the philosophy of the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The AI should be a tool, not another platform trying to capture the user's attention.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open AI ecosystems make it possible to experiment with that idea while keeping the project transparent and hackable.&lt;/p&gt;

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

&lt;p&gt;I used AI-assisted development while building GO. to help design the application structure, frontend logic, UI, mission-generation system, and project documentation.&lt;/p&gt;

&lt;p&gt;I have not included a DevRelay agent session link because I don't want to claim a session that isn't actually available.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project is primarily entering the &lt;strong&gt;Touch Grass&lt;/strong&gt; challenge category.&lt;/p&gt;

&lt;p&gt;The project focuses directly on the challenge's idea of using open-source/open-weight AI to encourage people to spend less time on screens and more time in the physical world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;We keep asking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What can AI help us do online?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GO. asks a different question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What can AI help us do offline?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ask AI.&lt;/p&gt;

&lt;p&gt;Get your mission.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Put the phone away.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🌱&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>🌱 GO. — An AI That Wants You to Stop Using It | Touch Grass Challenge</title>
      <dc:creator>Shikhar Ahirwar</dc:creator>
      <pubDate>Wed, 07 Oct 2026 05:41:46 +0000</pubDate>
      <link>https://dev.to/shikhar_ahirwar_60abbcba4/go-an-ai-that-wants-you-to-stop-using-it-touch-grass-challenge-5e7g</link>
      <guid>https://dev.to/shikhar_ahirwar_60abbcba4/go-an-ai-that-wants-you-to-stop-using-it-touch-grass-challenge-5e7g</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week1-2026-10-05"&gt;Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  I Built an AI That Wants You to Put Your Phone Away 🌱
&lt;/h1&gt;

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

&lt;p&gt;&lt;strong&gt;GO. — AI for Leaving the Screen&lt;/strong&gt; is a small web app built around a simple idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Ask AI. Then leave.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most AI tools are designed to keep us on screens longer. GO. tries to do the opposite.&lt;/p&gt;

&lt;p&gt;The user chooses a &lt;strong&gt;vibe, duration, company, and place&lt;/strong&gt;, and GO. generates a small offline mission designed to get them away from their device and into the real world.&lt;/p&gt;

&lt;p&gt;Examples include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Take a short walk and notice five things you normally ignore.&lt;/li&gt;
&lt;li&gt;Explore a nearby area you've never paid attention to.&lt;/li&gt;
&lt;li&gt;Do a small creative activity without using your phone.&lt;/li&gt;
&lt;li&gt;Talk to someone you haven't spoken to recently.&lt;/li&gt;
&lt;li&gt;Spend 20 minutes outside without checking your screen.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After generating a mission, GO. starts a short countdown and tells the user to &lt;strong&gt;put the phone away&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The app is designed for students, people who spend too much time online, and anyone who wants a simple reason to step outside, move, notice their surroundings, or connect with other people.&lt;/p&gt;

&lt;p&gt;The goal isn't to replace real life with AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal is to use AI for a few seconds so you can leave it behind.&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;br&gt;
&lt;a href="https://shikharahirwar489-ui.github.io/-GO.-AI-for-Leaving-the-Screen/" rel="noopener noreferrer"&gt;https://shikharahirwar489-ui.github.io/-GO.-AI-for-Leaving-the-Screen/&lt;/a&gt;&lt;br&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%2Fyzvc4d2shlmwtjbdzm6i.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%2Fyzvc4d2shlmwtjbdzm6i.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;💻 &lt;strong&gt;GitHub Repository:&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/shikharahirwar489-ui/-GO.-AI-for-Leaving-the-Screen.git" rel="noopener noreferrer"&gt;https://github.com/shikharahirwar489-ui/-GO.-AI-for-Leaving-the-Screen.git&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is built with a simple frontend so that it is easy for other developers to understand, modify, and contribute to.&lt;/p&gt;

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

&lt;p&gt;GO. is built with &lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt; on the frontend.&lt;/p&gt;

&lt;p&gt;The project is designed around local/open AI rather than depending on a proprietary AI API.&lt;/p&gt;

&lt;p&gt;The planned architecture is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Browser → Local Backend → Ollama → Open-Weight Model → Offline Mission&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The AI receives structured information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;selected activity/vibe&lt;/li&gt;
&lt;li&gt;available time&lt;/li&gt;
&lt;li&gt;whether the user is alone or with others&lt;/li&gt;
&lt;li&gt;preferred location&lt;/li&gt;
&lt;li&gt;optional constraints&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It then generates a short, practical mission that encourages the user to stop using their device.&lt;/p&gt;

&lt;p&gt;The frontend also includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;responsive UI&lt;/li&gt;
&lt;li&gt;mission generation&lt;/li&gt;
&lt;li&gt;multiple activity categories&lt;/li&gt;
&lt;li&gt;countdown before leaving the screen&lt;/li&gt;
&lt;li&gt;mission completion&lt;/li&gt;
&lt;li&gt;local mission history&lt;/li&gt;
&lt;li&gt;localStorage&lt;/li&gt;
&lt;li&gt;safety guidance&lt;/li&gt;
&lt;li&gt;no account requirement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The important design decision is that &lt;strong&gt;AI is only the starting point&lt;/strong&gt;. The experience intentionally ends by encouraging the user to stop interacting with the application.&lt;/p&gt;

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

&lt;p&gt;Open innovation makes an idea like GO. much more interesting because the AI doesn't have to live inside a closed ecosystem.&lt;/p&gt;

&lt;p&gt;With open-weight models and local inference, the mission-generation system can potentially run directly on the user's own computer.&lt;/p&gt;

&lt;p&gt;That means developers can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;inspect how the AI is being used&lt;/li&gt;
&lt;li&gt;experiment with different models&lt;/li&gt;
&lt;li&gt;modify the prompts&lt;/li&gt;
&lt;li&gt;run inference locally&lt;/li&gt;
&lt;li&gt;build new mission-generation strategies&lt;/li&gt;
&lt;li&gt;contribute improvements without depending entirely on a proprietary API&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also fits the philosophy of the project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The AI should be a tool, not another platform trying to capture the user's attention.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open AI ecosystems make it possible to experiment with that idea while keeping the project transparent and hackable.&lt;/p&gt;

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

&lt;p&gt;I used AI-assisted development while building GO. to help design the application structure, frontend logic, UI, mission-generation system, and project documentation.&lt;/p&gt;

&lt;p&gt;I have not included a DevRelay agent session link because I don't want to claim a session that isn't actually available.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Hacktoberfest Open-Source AI Challenge — Week 1: Touch Grass&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This project is primarily entering the &lt;strong&gt;Touch Grass&lt;/strong&gt; challenge category.&lt;/p&gt;

&lt;p&gt;The project focuses directly on the challenge's idea of using open-source/open-weight AI to encourage people to spend less time on screens and more time in the physical world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thought
&lt;/h2&gt;

&lt;p&gt;We keep asking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What can AI help us do online?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GO. asks a different question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"What can AI help us do offline?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ask AI.&lt;/p&gt;

&lt;p&gt;Get your mission.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Put the phone away.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🌱&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
