<?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: Harshit Anand</title>
    <description>The latest articles on DEV Community by Harshit Anand (@sagebeast).</description>
    <link>https://dev.to/sagebeast</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%2F4154452%2Fcebbc685-46d3-4d17-861e-7207736dc470.png</url>
      <title>DEV Community: Harshit Anand</title>
      <link>https://dev.to/sagebeast</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sagebeast"/>
    <language>en</language>
    <item>
      <title>You Said You'd: A 100% Local AI Commitment Tracker for Forgetful Friends</title>
      <dc:creator>Harshit Anand</dc:creator>
      <pubDate>Sun, 04 Oct 2026 23:44:19 +0000</pubDate>
      <link>https://dev.to/sagebeast/you-said-youd-a-100-local-ai-commitment-tracker-for-forgetful-friends-3h3a</link>
      <guid>https://dev.to/sagebeast/you-said-youd-a-100-local-ai-commitment-tracker-for-forgetful-friends-3h3a</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;*&lt;em&gt;"You Said You'd" *&lt;/em&gt; is a local, privacy-first AI commitment tracker. &lt;/p&gt;

&lt;p&gt;I built this for a friend who is incredibly busy and constantly making casual promises in WhatsApp and Telegram groups ("I'll send you that link tomorrow", "Let's grab lunch next week", "I owe you $20 for the tickets"). Unsurprisingly, these casual commitments get lost in the noise of group chats, leading to forgotten plans and missed IOUs.&lt;/p&gt;

&lt;p&gt;To solve this, I built a brutalist, retro-themed web application where they can drop in a raw chat export (.txt or .json). The application parses the chat and uses local AI to extract every single promise, request, and IOU made by them or to them, categorizing them into a neat, searchable ledger.&lt;/p&gt;

&lt;p&gt;When I handed the app over to him and had him upload his group chat from last month, his exact reaction was: &lt;em&gt;"Wait, I completely forgot I told Shivam I'd look at his resume. This is terrifyingly useful."&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://drive.google.com/file/d/1mMjRwcm2dRD55WSBUvtPWYHmFAyOTCQw/view?usp=sharing" rel="noopener noreferrer" class="c-link"&gt;
            hacktoberfest_challenge_1.mp4 - Google Drive
          &lt;/a&gt;
        &lt;/h2&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fssl.gstatic.com%2Fdocs%2Fdoclist%2Fimages%2Fdrive_favicon_2026_32dp.png" width="32" height="32"&gt;
          drive.google.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&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/HarshitAnand1" rel="noopener noreferrer"&gt;
        HarshitAnand1
      &lt;/a&gt; / &lt;a href="https://github.com/HarshitAnand1/local-commitment-tracker" rel="noopener noreferrer"&gt;
        local-commitment-tracker
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      local, privacy-first AI commitment tracker
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;You Said You'd&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;An AI that remembers what you promised, what others promised you, and shows the exact message where it was said.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;Hacktoberfest Weekend Challenge 2026&lt;/strong&gt; · &lt;em&gt;Build for a Friend + Open-Source AI&lt;/em&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;The Problem&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;People constantly make small commitments in chats:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;"I'll send it tonight."&lt;/li&gt;
&lt;li&gt;"I'll bring the HDMI adapter."&lt;/li&gt;
&lt;li&gt;"I'll talk to the professor tomorrow."&lt;/li&gt;
&lt;li&gt;"Don't worry, I'll handle the registration."&lt;/li&gt;
&lt;li&gt;"I'll send you the deck after dinner."&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These commitments disappear into thousands of messages. &lt;strong&gt;You Said You'd&lt;/strong&gt; imports a user's own chat export and turns those vague conversational promises into a searchable, evidence-backed commitment ledger.&lt;/p&gt;
&lt;p&gt;This is &lt;strong&gt;not&lt;/strong&gt; another generic chatbot. Its job is specifically:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Remember what I said I'd do. Remember what other people said they'd do. Help me resume unfinished commitments.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Target User&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;A real person who frequently forgets small promises, has many active projects, works in groups/clubs, loses track of who owes…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/HarshitAnand1/local-commitment-tracker" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;p&gt;The entire stack is designed to run entirely locally, turning your own machine into the AI server:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Frontend:&lt;/strong&gt; Next.js (App Router) styled with vanilla CSS following a strict Hacktoberfest 26 retro-brutalist theme (no Tailwind).&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Agent Framework:&lt;/strong&gt; I used &lt;strong&gt;Mastra (@mastra/core)&lt;/strong&gt; to orchestrate the AI logic. Mastra handles the multi-step workflow of parsing the chat and enforcing structured JSON outputs.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Local Inference:&lt;/strong&gt; &lt;strong&gt;Ollama&lt;/strong&gt; running &lt;strong&gt;Gemma 3&lt;/strong&gt; natively on the machine. This acts as the brain for the Mastra Agents.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Memory &amp;amp; Retrieval (RAG):&lt;/strong&gt; Instead of dumping massive chat histories into the context window, I used &lt;strong&gt;PostgreSQL with pgvector&lt;/strong&gt;. Every commitment is embedded using the &lt;code&gt;nomic-embed-text&lt;/code&gt; model. When the user asks a question on the "Ask" page, we do a cosine similarity search to find the top 5 most relevant commitments and pass only those to the Mastra QA Agent.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;This project is built around one core philosophy: &lt;strong&gt;My friend's conversations are not AI training data. They're their private life.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A person's chat history contains personal relationships, private plans, arguments, addresses, and sensitive financial context. It is incredibly dangerous to send 5 years of WhatsApp history to a closed-source cloud LLM API just to extract some reminders. &lt;/p&gt;

&lt;p&gt;Open innovation—specifically the availability of powerful open-weights models like Gemma 3, local inference runners like Ollama, and open-source frameworks like Mastra—made this project possible. I was able to build an advanced RAG pipeline that processes sensitive data entirely on the user's local hardware. You get the power of an AI assistant while keeping your data off a server you don't control. &lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; (Ran Gemma 3 locally as the core reasoning engine for extracting commitments).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Mastra&lt;/strong&gt; (Orchestrated the extraction workflow and the QA agent using Mastra over open local models).&lt;/li&gt;
&lt;/ul&gt;

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