<?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: SHUBHAM upadhyay</title>
    <description>The latest articles on DEV Community by SHUBHAM upadhyay (@shubhupadhyay23).</description>
    <link>https://dev.to/shubhupadhyay23</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%2F4155070%2F3d856826-e9a3-4f95-b4fb-ad750128de65.png</url>
      <title>DEV Community: SHUBHAM upadhyay</title>
      <link>https://dev.to/shubhupadhyay23</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/shubhupadhyay23"/>
    <language>en</language>
    <item>
      <title>MITRA</title>
      <dc:creator>SHUBHAM upadhyay</dc:creator>
      <pubDate>Sun, 04 Oct 2026 09:12:09 +0000</pubDate>
      <link>https://dev.to/shubhupadhyay23/mitra-152g</link>
      <guid>https://dev.to/shubhupadhyay23/mitra-152g</guid>
      <description>&lt;h1&gt;
  
  
  MITRA — Remember What Matters
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&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;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;I built &lt;strong&gt;MITRA&lt;/strong&gt;, a personal AI memory companion for a friend who kept losing important information inside scattered conversations, voice notes, screenshots, and notes.&lt;/p&gt;

&lt;p&gt;The problem wasn't that they couldn't remember.&lt;/p&gt;

&lt;p&gt;The problem was that important information was scattered everywhere.&lt;/p&gt;

&lt;p&gt;MITRA lets them tell it something naturally, such as:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I talked to Rahul today. His internship application closes Friday and I promised to review his resume tonight."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Instead of simply saving that sentence, MITRA uses &lt;strong&gt;Gemma&lt;/strong&gt; to understand it and extract structured information:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Person: Rahul&lt;/li&gt;
&lt;li&gt;Topic: Internship&lt;/li&gt;
&lt;li&gt;Deadline: Friday&lt;/li&gt;
&lt;li&gt;Action: Review resume&lt;/li&gt;
&lt;li&gt;Source: Text or voice&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The user reviews the extracted memory before saving it.&lt;/p&gt;

&lt;p&gt;Later, they can ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What did Rahul tell me about his internship?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;MITRA retrieves the relevant memory and responds:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;You told me this before.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It then shows the source memory used to support the answer.&lt;/p&gt;

&lt;p&gt;That was the experience I wanted to build: not another chatbot that talks confidently, but a system that can remember something useful and show me where that memory came from.&lt;/p&gt;

&lt;p&gt;If MITRA doesn't have a supporting memory, it refuses to invent one.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;Live Demo:&lt;/strong&gt; mitra-lilac-seven.vercel.app&lt;/p&gt;

&lt;p&gt;The public demo includes clearly labelled &lt;strong&gt;DEMO DATA&lt;/strong&gt;, so judges can experience the complete product without installing a local AI model.&lt;/p&gt;

&lt;p&gt;The main flow is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tell → Understand → Review → Remember → Ask → Retrieve → Source → Connect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Try the 60-second demo to see the complete experience.&lt;/p&gt;




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

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; [&lt;a href="https://github.com/Shubhupadhyay23/mitra-memory.git" rel="noopener noreferrer"&gt;https://github.com/Shubhupadhyay23/mitra-memory.git&lt;/a&gt;]&lt;/p&gt;

&lt;p&gt;The repository contains the Next.js frontend, FastAPI backend, memory pipeline, Gemma/Ollama integration, database layer, and documentation.&lt;/p&gt;




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

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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
text
Human thought
      ↓
   MITRA UI
      ↓
     Gemma
      ↓
Structured memory
      ↓
 Persistent storage
      ↓
   Retrieval
      ↓
Gemma grounded response
      ↓
  Source memories
### Stack

- **Next.js + TypeScript** — frontend
- **FastAPI + Python** — backend
- **SQLAlchemy + SQLite** — persistent memory
- **Ollama + Gemma** — local AI reasoning and memory extraction
- **Tailwind CSS** — interface
- **Antigravity** — agent-assisted development

Gemma isn't just an AI button sitting beside the application.

It is part of the memory pipeline.

When a user gives MITRA information, Gemma helps turn unstructured human language into structured memory. When the user asks a question later, MITRA retrieves relevant stored memories and uses that context to produce a grounded answer.

The important part is the boundary between **memory and generation**.

If there is no supporting memory, MITRA should not confidently manufacture an answer.

---

## Why Does Open Innovation Matter?

For MITRA, open-source AI changed what I could build.

A conventional closed API would make it easy to send a prompt somewhere and receive a response.

But MITRA is fundamentally about **personal memory**.

I wanted the AI responsible for interpreting those memories to be replaceable, inspectable, and capable of running locally.

Using **Gemma through Ollama** allowed me to build the core intelligence around a locally runnable model instead of making the entire product dependent on a proprietary hosted model.

That gives MITRA an important property:

**The user's memories don't have to belong to an AI provider.**

The architecture can evolve as better open models become available without rebuilding the entire application around one closed API.

Open innovation also made experimentation much easier. I could change the model, adjust the extraction process, test the retrieval behaviour, and keep the surrounding application under my control.

For a product dealing with personal memories, that control matters.

---

## What I Learned

The hardest part wasn't making an AI chatbot.

It was making the AI **not say things it doesn't know**.

Memory systems create a different problem from normal chat applications. A convincing wrong answer is worse than saying:

&amp;gt; "I don't have a memory supporting that."

That led me to build MITRA around three principles:

1. **Extract before storing**
2. **Retrieve before answering**
3. **Show the memory behind the answer**

The result is less about having a clever conversation and more about building a trustworthy memory layer.

---

## Limitations

MITRA is still a prototype.

The strongest local-AI experience currently comes from running Gemma through Ollama, while the public demo uses labelled demo data so judges can experience the application without configuring a local model.

The memory system also needs much more real-world testing. In particular, I want to measure:

- memory extraction accuracy
- retrieval accuracy
- incorrect-memory resistance
- refusal behaviour
- long-term memory usefulness

I don't want to call MITRA a solved memory system yet.

I want to make it one.

---

## What's Next?

The next version would focus on real-world use rather than adding more features.

I would like to test MITRA with actual daily memories, measure which memories are useful later, improve retrieval, and make the system increasingly reliable at distinguishing between something I actually told it and something it merely thinks might be true.

The goal is simple:

**Remember less for me. Remember the right things.**

---

## Prize Categories

**Best Use of Gemma**

Gemma is used as a core part of MITRA's memory-understanding pipeline rather than being included as a superficial chatbot feature.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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