<?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: Akshra Jain</title>
    <description>The latest articles on DEV Community by Akshra Jain (@aksharajain).</description>
    <link>https://dev.to/aksharajain</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F99mvlsfu5tfj9m7ku25d.png</url>
      <title>DEV Community: Akshra Jain</title>
      <link>https://dev.to/aksharajain</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aksharajain"/>
    <language>en</language>
    <item>
      <title>SlothDigest — A Local-First AI Agent for Your Morning WhatsApp Digest</title>
      <dc:creator>Akshra Jain</dc:creator>
      <pubDate>Sun, 25 Oct 2026 07:45:38 +0000</pubDate>
      <link>https://dev.to/aksharajain/slothdigest-a-local-first-ai-agent-for-your-morning-whatsapp-digest-1d82</link>
      <guid>https://dev.to/aksharajain/slothdigest-a-local-first-ai-agent-for-your-morning-whatsapp-digest-1d82</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Every morning, most of us wake up to 500+ unread WhatsApp messages across family groups, college groups, project teams, and neighborhood associations. Scrolling through them is exhausting. What if you could just get a calm, two-paragraph summary of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What actually happened&lt;/li&gt;
&lt;li&gt;What needs &lt;em&gt;you&lt;/em&gt; specifically (bills, tasks, direct questions)&lt;/li&gt;
&lt;li&gt;Upcoming deadlines and events&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built &lt;strong&gt;SlothDigest&lt;/strong&gt; — a local-first CLI agent that does exactly that. Drop your WhatsApp .txt exports into an &lt;code&gt;inbox/&lt;/code&gt; folder, run one command, and get a clean digest in Markdown, HTML, or even an &lt;code&gt;.ics&lt;/code&gt; calendar file.&lt;/p&gt;

&lt;p&gt;It runs &lt;strong&gt;100% locally&lt;/strong&gt; using open-weight models via Ollama. No data ever leaves your machine. Privacy-first by design.&lt;/p&gt;

&lt;p&gt;And because mornings should be lazy, it has &lt;strong&gt;Sloth Mode&lt;/strong&gt; — if your laptop is on battery or the CPU is busy, it defers processing until you're plugged in and relaxed. 🦥&lt;/p&gt;




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

&lt;p&gt;The tool runs from your terminal, but there's also a &lt;strong&gt;Flask web UI&lt;/strong&gt; for those who prefer a browser:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# One-time setup
slothdigest init --name "Raha" --model qwen2.5:7b-instruct

# Run the digest
slothdigest run

# Or use the web UI
python run_webui.py
# Opens at http://localhost:5000
# SlothDigest — 2026-10-24

## family_group.txt
**Mom's planning Diwali dinner on Nov 1, and Dad fixed the WiFi router**

- Papa called Airtel and the WiFi will be back by evening
- Mom confirmed Diwali dinner — everyone needs to bring one dish
- Rohan scored 92% on his math test 🎉

## needs_you
### family_group.txt
- **Mom** (14:32): Raha, can you pick up sweets from Bikanervala on the way home?
- **Dad** (15:10): Beta, send me the Airtel bill number, I need to follow up

## deadlines
- **Diwali dinner** (event) — 2026-11-01
- **Airtel bill payment** (payment) — 2026-10-25
- **Rohan's PTM** (event) — 2026-10-28 at 10:00
git clone https://github.com/akshrakothari/SlothDigest.git
cd SlothDigest
pip install -e .
slothdigest init --name "Your Name"
# Drop WhatsApp exports into inbox/
slothdigest run
inbox/              ← Drop WhatsApp .txt exports here
src/slothdigest/
├── cli.py          ← Typer CLI (init/run/schedule/wipe)
├── config.py       ← JSON config in ~/.config/slothdigest/
├── parser.py       ← Android &amp;amp; iOS chat export parser with Hinglish date support
├── noise_filter.py ← Drops system messages, spam, forwards
├── chunker.py      ← Smart message chunking that preserves conversation threads
├── summarizer.py   ← Map-reduce summarization pipeline
├── ollama_client.py← Ollama local LLM client
├── deadlines.py    ← Deadline extraction with relative date resolution ("kal", "parso")
├── needs_you.py    ← "Needs you" detection (mentions, questions, tasks)
├── renderer.py     ← Outputs MD + HTML + ICS
├── sloth_mode.py   ← Defers when on battery or high CPU
├── privacy.py      ← Network guard, data wipe
├── scheduler.py    ← Windows schtasks / cron installer
├── state.py        ← Incremental processing via state files
├── pipeline.py     ← Orchestrates everything
└── webui.py        ← Flask web UI (optional)
tests/              ← Pytest test suite
How I Built It
The open-source AI stack
Ollama — The backbone. Every LLM call goes to a local Ollama instance. I tested with:

Qwen 2.5 7B (default — great balance of speed + quality)
Llama 3.1 8B
Gemma 2 9B
Mistral 7B
The model handles four specific tasks, each with a carefully crafted prompt:

Chunk summarization — "Summarize these messages in 3-5 bullet points"
Reduce step — "Combine chunk summaries into a 2-line overall summary + 3 highlights"
Deadline extraction — "Extract deadlines, tasks, events, and payment obligations"
Needs-you detection — "Which messages need this person's attention?"
Temperature 0.1 keeps the model grounded and factual. Every prompt asks for structured JSON output, with robust fallback parsing if the model hallucinates the format.

How the pipeline works
┌──────────┐   ┌───────────┐   ┌────────────┐   ┌──────────┐
│ WhatsApp  │   │   Parser  │   │ Noise      │   │  Chunker │
│ .txt file │──▶│ (Android/ │──▶│ Filter     │──▶│ (smart   │
│           │   │  iOS)     │   │            │   │  windows)│
└──────────┘   └───────────┘   └────────────┘   └──────────┘
                                                      │
                                                      ▼
┌──────────┐   ┌───────────┐   ┌───────────────────────┐
│ Renderer │◀──│  Reducer  │◀──│  Chunk Summarizer     │
│ MD+HTML  │   │  (final   │   │  (Ollama map step)    │
│ + ICS    │   │  digest)  │   └───────────────────────┘
└──────────┘   └───────────┘

The agent that built itself
Here's the wild part: most of this code was written by an AI coding agent. I described the architecture, and the agent wrote the 16+ source files, 10 test files, and the deploy infrastructure — all in a single continuous session.

This is the future of open-source contribution: describe what you want, and let AI handle the implementation while you focus on design, privacy, and architecture decisions.

Why Does Open Innovation Matter?
This project would be impossible without open innovation.

If I had built SlothDigest with a closed API like OpenAI or Claude:

Privacy nightmare — Every WhatsApp message would be sent to a US-based server. Family conversations, payment screenshots, medical discussions — all processed by a third party.
No customization — I couldn't tune the prompts for WhatsApp-specific patterns (Hinglish dates, emoji-heavy texts, voice-message references).
No offline use — No internet at your parents' village house? Too bad. No server connectivity? No digest.
Vendor lock-in — If the API changes pricing or policies, the project breaks.
No experimentation — I tested 4 different models and picked the best one. With closed APIs, you use what theygive you.
Open-weight models (Qwen, Llama, Mistral, Gemma) running locally via Ollama make this project possible. The model runs on a $0 inference budget. Your data stays on your laptop. You can audit every single prompt and response.

Open innovation means privacy-first, cost-free, customizable AI that anyone can run, modify, and trust.

My Agent Session
This project was built in a single continuous AI-agent session using Backboard's dev platform. The agent read the project requirements, created the architecture, wrote every line of source code, generated the test suite, built the deploy infrastructure, and assembled this blog post.

The session spanned:

16 source modules (parser, chunker, summarizer, renderer, etc.)
10 test files covering every module
3 output formats (Markdown, HTML, iCalendar)
Web UI with Flask (dashboard, upload, digest viewer, config)
Deploy automation (35+ file assembly from scattered source directories)
The Lazy Payoff
Here's what SlothDigest actually saves you every morning:

Without SlothDigest With SlothDigest
Scroll through 500+ messages    Read a 2-paragraph digest
15-20 minutes of doom-scrolling 30 seconds of browsing
Miss deadlines in noisy chats   Deadlines extracted to your calendar
Forget to reply to someone who asked you    "Needs you" section catches it
Read ads, forwards, "Good morning!" images  Noise filter drops them automatically
The name "SlothDigest" is a double joke — it works like a slow, thoughtful sloth (deferring work), and it saves you time so you can be the sloth.

Prize Categories
General — Complete, functional open-source AI project
Weekly Challenge: Week 3 — Slow and Steady — Sloth mode literally defers processing. The should_defer() function checks battery status and CPU load before running the pipeline. It's "slow and steady" by design — the digest waits until you're plugged in and relaxed.
-Backboard Studio
-Cursor
-Github Copilot
SlothDigest v0.1.0 — Built with 🦥 in October 2026 for Hacktoberfest.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>ai</category>
      <category>python</category>
    </item>
    <item>
      <title>SlothDigest — A Local-First AI Agent for Your Morning WhatsApp Digest</title>
      <dc:creator>Akshra Jain</dc:creator>
      <pubDate>Sat, 24 Oct 2026 09:31:15 +0000</pubDate>
      <link>https://dev.to/aksharajain/slothdigest-a-local-first-ai-agent-for-your-morning-whatsapp-digest-3m15</link>
      <guid>https://dev.to/aksharajain/slothdigest-a-local-first-ai-agent-for-your-morning-whatsapp-digest-3m15</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Every morning, most of us wake up to 500+ unread WhatsApp messages across family groups, college groups, project teams, and neighborhood associations. Scrolling through them is exhausting. What if you could just get a calm, two-paragraph summary of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What actually happened&lt;/li&gt;
&lt;li&gt;What needs &lt;em&gt;you&lt;/em&gt; specifically (bills, tasks, direct questions)&lt;/li&gt;
&lt;li&gt;Upcoming deadlines and events&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built &lt;strong&gt;SlothDigest&lt;/strong&gt; — a local-first CLI agent that does exactly that. Drop your WhatsApp .txt exports into an &lt;code&gt;inbox/&lt;/code&gt; folder, run one command, and get a clean digest in Markdown, HTML, or even an &lt;code&gt;.ics&lt;/code&gt; calendar file.&lt;/p&gt;

&lt;p&gt;It runs &lt;strong&gt;100% locally&lt;/strong&gt; using open-weight models via Ollama. No data ever leaves your machine. Privacy-first by design.&lt;/p&gt;

&lt;p&gt;And because mornings should be lazy, it has &lt;strong&gt;Sloth Mode&lt;/strong&gt; — if your laptop is on battery or the CPU is busy, it defers processing until you're plugged in and relaxed. 🦥&lt;/p&gt;




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

&lt;p&gt;The tool runs from your terminal, but there's also a &lt;strong&gt;Flask web UI&lt;/strong&gt; for those who prefer a browser:&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
# One-time setup
slothdigest init --name "Raha" --model qwen2.5:7b-instruct

# Run the digest
slothdigest run

# Or use the web UI
python run_webui.py
# Opens at http://localhost:5000
# SlothDigest — 2026-10-24

## family_group.txt
**Mom's planning Diwali dinner on Nov 1, and Dad fixed the WiFi router**

- Papa called Airtel and the WiFi will be back by evening
- Mom confirmed Diwali dinner — everyone needs to bring one dish
- Rohan scored 92% on his math test 🎉

## needs_you
### family_group.txt
- **Mom** (14:32): Raha, can you pick up sweets from Bikanervala on the way home?
- **Dad** (15:10): Beta, send me the Airtel bill number, I need to follow up

## deadlines
- **Diwali dinner** (event) — 2026-11-01
- **Airtel bill payment** (payment) — 2026-10-25
- **Rohan's PTM** (event) — 2026-10-28 at 10:00
git clone https://github.com/akshrakothari/SlothDigest.git
cd SlothDigest
pip install -e .
slothdigest init --name "Your Name"
# Drop WhatsApp exports into inbox/
slothdigest run
inbox/              ← Drop WhatsApp .txt exports here
src/slothdigest/
├── cli.py          ← Typer CLI (init/run/schedule/wipe)
├── config.py       ← JSON config in ~/.config/slothdigest/
├── parser.py       ← Android &amp;amp; iOS chat export parser with Hinglish date support
├── noise_filter.py ← Drops system messages, spam, forwards
├── chunker.py      ← Smart message chunking that preserves conversation threads
├── summarizer.py   ← Map-reduce summarization pipeline
├── ollama_client.py← Ollama local LLM client
├── deadlines.py    ← Deadline extraction with relative date resolution ("kal", "parso")
├── needs_you.py    ← "Needs you" detection (mentions, questions, tasks)
├── renderer.py     ← Outputs MD + HTML + ICS
├── sloth_mode.py   ← Defers when on battery or high CPU
├── privacy.py      ← Network guard, data wipe
├── scheduler.py    ← Windows schtasks / cron installer
├── state.py        ← Incremental processing via state files
├── pipeline.py     ← Orchestrates everything
└── webui.py        ← Flask web UI (optional)
tests/              ← Pytest test suite
How I Built It
The open-source AI stack
Ollama — The backbone. Every LLM call goes to a local Ollama instance. I tested with:

Qwen 2.5 7B (default — great balance of speed + quality)
Llama 3.1 8B
Gemma 2 9B
Mistral 7B
The model handles four specific tasks, each with a carefully crafted prompt:

Chunk summarization — "Summarize these messages in 3-5 bullet points"
Reduce step — "Combine chunk summaries into a 2-line overall summary + 3 highlights"
Deadline extraction — "Extract deadlines, tasks, events, and payment obligations"
Needs-you detection — "Which messages need this person's attention?"
Temperature 0.1 keeps the model grounded and factual. Every prompt asks for structured JSON output, with robust fallback parsing if the model hallucinates the format.

How the pipeline works
┌──────────┐   ┌───────────┐   ┌────────────┐   ┌──────────┐
│ WhatsApp  │   │   Parser  │   │ Noise      │   │  Chunker │
│ .txt file │──▶│ (Android/ │──▶│ Filter     │──▶│ (smart   │
│           │   │  iOS)     │   │            │   │  windows)│
└──────────┘   └───────────┘   └────────────┘   └──────────┘
                                                      │
                                                      ▼
┌──────────┐   ┌───────────┐   ┌───────────────────────┐
│ Renderer │◀──│  Reducer  │◀──│  Chunk Summarizer     │
│ MD+HTML  │   │  (final   │   │  (Ollama map step)    │
│ + ICS    │   │  digest)  │   └───────────────────────┘
└──────────┘   └───────────┘

The agent that built itself
Here's the wild part: most of this code was written by an AI coding agent. I described the architecture, and the agent wrote the 16+ source files, 10 test files, and the deploy infrastructure — all in a single continuous session.

This is the future of open-source contribution: describe what you want, and let AI handle the implementation while you focus on design, privacy, and architecture decisions.

Why Does Open Innovation Matter?
This project would be impossible without open innovation.

If I had built SlothDigest with a closed API like OpenAI or Claude:

Privacy nightmare — Every WhatsApp message would be sent to a US-based server. Family conversations, payment screenshots, medical discussions — all processed by a third party.
No customization — I couldn't tune the prompts for WhatsApp-specific patterns (Hinglish dates, emoji-heavy texts, voice-message references).
No offline use — No internet at your parents' village house? Too bad. No server connectivity? No digest.
Vendor lock-in — If the API changes pricing or policies, the project breaks.
No experimentation — I tested 4 different models and picked the best one. With closed APIs, you use what theygive you.
Open-weight models (Qwen, Llama, Mistral, Gemma) running locally via Ollama make this project possible. The model runs on a $0 inference budget. Your data stays on your laptop. You can audit every single prompt and response.

Open innovation means privacy-first, cost-free, customizable AI that anyone can run, modify, and trust.

My Agent Session
This project was built in a single continuous AI-agent session using Backboard's dev platform. The agent read the project requirements, created the architecture, wrote every line of source code, generated the test suite, built the deploy infrastructure, and assembled this blog post.

The session spanned:

16 source modules (parser, chunker, summarizer, renderer, etc.)
10 test files covering every module
3 output formats (Markdown, HTML, iCalendar)
Web UI with Flask (dashboard, upload, digest viewer, config)
Deploy automation (35+ file assembly from scattered source directories)
The Lazy Payoff
Here's what SlothDigest actually saves you every morning:

Without SlothDigest With SlothDigest
Scroll through 500+ messages    Read a 2-paragraph digest
15-20 minutes of doom-scrolling 30 seconds of browsing
Miss deadlines in noisy chats   Deadlines extracted to your calendar
Forget to reply to someone who asked you    "Needs you" section catches it
Read ads, forwards, "Good morning!" images  Noise filter drops them automatically
The name "SlothDigest" is a double joke — it works like a slow, thoughtful sloth (deferring work), and it saves you time so you can be the sloth.

Prize Categories
General — Complete, functional open-source AI project
Weekly Challenge: Week 3 — Slow and Steady — Sloth mode literally defers processing. The should_defer() function checks battery status and CPU load before running the pipeline. It's "slow and steady" by design — the digest waits until you're plugged in and relaxed.
-Backboard Studio
-Cursor
-Github Copilot
SlothDigest v0.1.0 — Built with 🦥 in October 2026 for Hacktoberfest.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>ai</category>
      <category>python</category>
    </item>
    <item>
      <title>SlothDigest — A Local-First AI Agent for Your Morning WhatsApp Digest</title>
      <dc:creator>Akshra Jain</dc:creator>
      <pubDate>Sat, 24 Oct 2026 07:29:54 +0000</pubDate>
      <link>https://dev.to/aksharajain/slothdigest-a-local-first-ai-agent-for-your-morning-whatsapp-digest-4ca9</link>
      <guid>https://dev.to/aksharajain/slothdigest-a-local-first-ai-agent-for-your-morning-whatsapp-digest-4ca9</guid>
      <description>&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Every morning, most of us wake up to 500+ unread WhatsApp messages across family groups, college groups, project teams, and neighborhood associations. Scrolling through them is exhausting. What if you could just get a calm, two-paragraph summary of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What actually happened&lt;/li&gt;
&lt;li&gt;What needs &lt;em&gt;you&lt;/em&gt; specifically (bills, tasks, direct questions)&lt;/li&gt;
&lt;li&gt;Upcoming deadlines and events&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I built &lt;strong&gt;SlothDigest&lt;/strong&gt; — a local-first CLI agent that does exactly that. Drop your WhatsApp .txt exports into an &lt;code&gt;inbox/&lt;/code&gt; folder, run one command, and get a clean digest in Markdown, HTML, or even an &lt;code&gt;.ics&lt;/code&gt; calendar file.&lt;/p&gt;

&lt;p&gt;It runs &lt;strong&gt;100% locally&lt;/strong&gt; using open-weight models via Ollama. No data ever leaves your machine. Privacy-first by design.&lt;/p&gt;

&lt;p&gt;And because mornings should be lazy, it has &lt;strong&gt;Sloth Mode&lt;/strong&gt; — if your laptop is on battery or the CPU is busy, it defers processing until you're plugged in and relaxed. 🦥&lt;/p&gt;




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

&lt;p&gt;The tool runs from your terminal, but there's also a &lt;strong&gt;Flask web UI&lt;/strong&gt; for those who prefer a browser:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Run the digest&lt;/span&gt;
slothdigest run

&lt;span class="c"&gt;# Or use the web UI&lt;/span&gt;
python run_webui.py
&lt;span class="c"&gt;# Opens at http://localhost:5000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Generated digest (Markdown):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# SlothDigest — 2026-10-24&lt;/span&gt;

&lt;span class="gu"&gt;## family_group.txt&lt;/span&gt;
&lt;span class="gs"&gt;**Mom's planning Diwali dinner on Nov 1, and Dad fixed the WiFi router**&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; Papa called Airtel and the WiFi will be back by evening
&lt;span class="p"&gt;-&lt;/span&gt; Mom confirmed Diwali dinner — everyone needs to bring one dish
&lt;span class="p"&gt;-&lt;/span&gt; Rohan scored 92% on his math test 🎉

&lt;span class="gu"&gt;## needs_you&lt;/span&gt;
&lt;span class="gu"&gt;### family_group.txt&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Mom**&lt;/span&gt; (14:32): Raha, can you pick up sweets from Bikaner vala on the way home?
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Dad**&lt;/span&gt; (15:10): Beta, send me the Airtel bill number, I need to follow up

&lt;span class="gu"&gt;## deadlines&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Diwali dinner**&lt;/span&gt; (event) — 2026-11-01
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Airtel bill payment**&lt;/span&gt; (payment) — 2026-10-25
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Rohan's PTM**&lt;/span&gt; (event) — 2026-10-28 at 10:00
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The same content is rendered as a beautiful 📱 phone-friendly HTML page and an &lt;code&gt;.ics&lt;/code&gt; calendar file you can import into Google Calendar or Apple Calendar.&lt;/p&gt;




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

&lt;p&gt;The entire project is open source on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 &lt;a href="https://github.com/akshrakothari/SlothDigest" rel="noopener noreferrer"&gt;github.com/akshrakothari/SlothDigest&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Quick start
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/akshrakothari/SlothDigest.git
&lt;span class="nb"&gt;cd &lt;/span&gt;SlothDigest
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
slothdigest init &lt;span class="nt"&gt;--name&lt;/span&gt; &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;
&lt;span class="c"&gt;# Drop WhatsApp exports into inbox/&lt;/span&gt;
slothdigest run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Architecture at a glance
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;inbox/              ← Drop WhatsApp .txt exports here
src/slothdigest/
├── cli.py          ← Typer CLI (init/run/schedule/wipe)
├── config.py       ← JSON config in ~/.config/slothdigest/
├── parser.py       ← Android &amp;amp; iOS chat export parser with Hinglish date support
├── noise_filter.py ← Drops system messages, spam, forwards
├── chunker.py      ← Smart message chunking that preserves conversation threads
├── summarizer.py   ← Map-reduce summarization pipeline
├── ollama_client.py← Ollama local LLM client
├── deadlines.py    ← Deadline extraction with relative date resolution ("kal", "parso")
├── needs_you.py    ← "Needs you" detection (mentions, questions, tasks)
├── renderer.py     ← Outputs MD + HTML + ICS
├── sloth_mode.py   ← Defers when on battery or high CPU
├── privacy.py      ← Network guard, data wipe
├── scheduler.py    ← Windows schtasks / cron installer
├── state.py        ← Incremental processing via state files
├── pipeline.py     ← Orchestrates everything
└── webui.py        ← Flask web UI (optional)
tests/              ← Pytest test suite
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Key design decisions
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Decision&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;100% local&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Your WhatsApp data never touches the cloud. Only allowed Ollama URLs are reachable.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Map-reduce summarization&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Handles 1000+ messages by chunking, summarizing each chunk, then reducing into a final digest.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Incremental processing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tracks last-processed timestamps — only new messages are summarized.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Quiet-night detection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;If a chat has &amp;lt;10 meaningful messages, it just says "Quiet night".&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sloth mode&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Defers processing when on battery or CPU &amp;gt; 80%.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Hinglish support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Understands "kal" (yesterday/tomorrow), "parso" (day after), "agle somwar" (next Monday).&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




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

&lt;h3&gt;
  
  
  The open-source AI stack
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Ollama&lt;/strong&gt; — The backbone. Every LLM call goes to a local Ollama instance. I tested with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Qwen 2.5 7B&lt;/strong&gt; (default — great balance of speed + quality)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Llama 3.1 8B&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gemma 2 9B&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mistral 7B&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The model handles four specific tasks, each with a carefully crafted prompt:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Chunk summarization&lt;/strong&gt; — "Summarize these messages in 3-5 bullet points"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduce step&lt;/strong&gt; — "Combine chunk summaries into a 2-line overall summary + 3 highlights"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deadline extraction&lt;/strong&gt; — "Extract deadlines, tasks, events, and payment obligations"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Needs-you detection&lt;/strong&gt; — "Which messages need this person's attention?"&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Temperature 0.1&lt;/strong&gt; keeps the model grounded and factual. Every prompt asks for &lt;strong&gt;structured JSON&lt;/strong&gt; output, with robust fallback parsing if the model hallucinates the format.&lt;/p&gt;

&lt;h3&gt;
  
  
  How the pipeline works
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;┌──────────┐   ┌───────────┐   ┌────────────┐   ┌──────────┐
│ WhatsApp  │   │   Parser  │   │ Noise      │   │  Chunker │
│ .txt file │──▶│ (Android/ │──▶│ Filter     │──▶│ (smart   │
│           │   │  iOS)     │   │            │   │  windows)│
└──────────┘   └───────────┘   └────────────┘   └──────────┘
                                                      │
                                                      ▼
┌──────────┐   ┌───────────┐   ┌───────────────────────┐
│ Renderer │◀──│  Reducer  │◀──│  Chunk Summarizer     │
│ MD+HTML  │   │  (final   │   │  (Ollama map step)    │
│ + ICS    │   │  digest)  │   └───────────────────────┘
└──────────┘   └───────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  The agent that built itself
&lt;/h3&gt;

&lt;p&gt;Here's the wild part: &lt;strong&gt;most of this code was written by an AI coding agent&lt;/strong&gt;. I described the architecture, and the agent wrote the 16+ source files, 10 test files, and the deploy infrastructure — all in a single continuous session.&lt;/p&gt;

&lt;p&gt;This is the future of open-source contribution: describe what you want, and let AI handle the implementation while you focus on design, privacy, and architecture decisions.&lt;/p&gt;




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

&lt;p&gt;This project would be &lt;strong&gt;impossible&lt;/strong&gt; without open innovation.&lt;/p&gt;

&lt;p&gt;If I had built SlothDigest with a closed API like OpenAI or Claude:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Privacy nightmare&lt;/strong&gt; — Every WhatsApp message would be sent to a US-based server. Family conversations, payment screenshots, medical discussions — all processed by a third party.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No customization&lt;/strong&gt; — I couldn't tune the prompts for WhatsApp-specific patterns (Hinglish dates, emoji-heavy texts, voice-message references).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No offline use&lt;/strong&gt; — No internet at your parents' village house? Too bad. No server connectivity? No digest.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vendor lock-in&lt;/strong&gt; — If the API changes pricing or policies, the project breaks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No experimentation&lt;/strong&gt; — I tested 4 different models and picked the best one. With closed APIs, you use what they give you.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Open-weight models (Qwen, Llama, Mistral, Gemma) running locally via Ollama make this project possible.&lt;/strong&gt; The model runs on a $0 inference budget. Your data stays on your laptop. You can audit every single prompt and response.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Open innovation means privacy-first, cost-free, customizable AI that anyone can run, modify, and trust.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




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

&lt;p&gt;This project was built in a single continuous AI-agent session using Backboard's dev platform. The agent read the project requirements, created the architecture, wrote every line of source code, generated the test suite, built the deploy infrastructure, and assembled this blog post.&lt;/p&gt;

&lt;p&gt;The session spanned:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;16 source modules&lt;/strong&gt; (parser, chunker, summarizer, renderer, etc.)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10 test files&lt;/strong&gt; covering every module&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;3 output formats&lt;/strong&gt; (Markdown, HTML, iCalendar)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Web UI&lt;/strong&gt; with Flask (dashboard, upload, digest viewer, config)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deploy automation&lt;/strong&gt; (35+ file assembly from scattered source directories)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;Here's what SlothDigest actually saves you every morning:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Without SlothDigest&lt;/th&gt;
&lt;th&gt;With SlothDigest&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Scroll through 500+ messages&lt;/td&gt;
&lt;td&gt;Read a 2-paragraph digest&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;15-20 minutes of doom-scrolling&lt;/td&gt;
&lt;td&gt;30 seconds of browsing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Miss deadlines in noisy chats&lt;/td&gt;
&lt;td&gt;Deadlines extracted to your calendar&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Forget to reply to someone who asked you&lt;/td&gt;
&lt;td&gt;"Needs you" section catches it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Read ads, forwards, "Good morning!" images&lt;/td&gt;
&lt;td&gt;Noise filter drops them automatically&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The name "SlothDigest" is a double joke — it works like a slow, thoughtful sloth (deferring work), and it saves you time so &lt;em&gt;you&lt;/em&gt; can be the sloth.&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;General&lt;/strong&gt; — Complete, functional open-source AI project
-Backboard Studio
-Cursor&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;SlothDigest v0.1.0 — Built with 🦥 in October 2026 for Hacktoberfest.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>hacktoberfest</category>
      <category>opensource</category>
      <category>python</category>
      <category>tools</category>
    </item>
    <item>
      <title>Bill Box</title>
      <dc:creator>Akshra Jain</dc:creator>
      <pubDate>Sat, 17 Oct 2026 17:00:44 +0000</pubDate>
      <link>https://dev.to/aksharajain/bill-box-51kg</link>
      <guid>https://dev.to/aksharajain/bill-box-51kg</guid>
      <description>&lt;p&gt;This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle&lt;/p&gt;

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

&lt;p&gt;BillBox is a local invoice and receipt sorter for Indian freelancers and small shop owners.&lt;/p&gt;

&lt;p&gt;Every month, someone who files GST has a pile of bills: printed tax invoices, thermal-paper receipts, phone photos, PDFs from vendors. Their CA needs all of it as a clean sheet with vendor, GSTIN, date, taxable amount, and the CGST/SGST/IGST split. Today that means hours of manual typing, or paying someone to do it.&lt;/p&gt;

&lt;p&gt;With BillBox you drag in photos or PDFs of your bills. A vision model running on your own laptop reads each one and pulls out the fields. Then the app double-checks the result with plain rules (valid GSTIN format and checksum, taxable + tax = total, duplicate bills, impossible dates). Anything that fails is flagged for a quick human review. When you're done, you export a CSV or an Excel file with a summary sheet and a detailed sheet, ready to hand to your CA.&lt;/p&gt;

&lt;p&gt;Who would pay for it: freelancers, small traders, and shopkeepers who deal with GST bills every month and don't want to upload their financial documents to someone else's server. [TODO: add your pricing idea, e.g. a monthly price or one-time license.]&lt;/p&gt;

&lt;p&gt;Demo&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%2Fpria23gwjjoq53c2rdk4.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%2Fpria23gwjjoq53c2rdk4.png" alt=" " width="799" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/akshrakothari/Bill-Box" rel="noopener noreferrer"&gt;https://github.com/akshrakothari/Bill-Box&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;The whole pipeline runs locally, and the open pieces are what make it work:&lt;/p&gt;

&lt;p&gt;Model: an open-weight vision-language model, Qwen2.5-VL 7B, served by Ollama. The model name is a config value, so it can be swapped for another open model without touching code. [TODO: update if you used a different model.]&lt;br&gt;
Backend: FastAPI + Pydantic + SQLite. PyMuPDF turns PDF pages into images, and Pillow/OpenCV cleans up photos (rotation, resizing, contrast).&lt;br&gt;
Extraction: each bill goes to the model with a strict JSON schema prompt at temperature 0. The prompt tells the model to return null instead of guessing, and to read Indian dates day-first.&lt;br&gt;
Validation layer: a rule-based checker written in plain Python catches what a language model can get wrong: GSTIN checksum, tax math, CGST = SGST, line items vs. taxable amount, duplicate invoices. This is what makes the output trustworthy enough to pay for.&lt;br&gt;
Frontend: React + Vite + Tailwind with a split review screen (original bill on the left, editable fields on the right, flagged fields highlighted).&lt;br&gt;
Learning from corrections: when the user fixes a vendor's name or category, BillBox remembers it locally and applies it next time.&lt;br&gt;
Benchmark script: a script that runs a folder of bills against a ground-truth sheet and reports per-field accuracy, exact-match rate, and seconds per document.&lt;br&gt;
Results&lt;/p&gt;

&lt;p&gt;Metric  Local model (Qwen2.5-VL 7B) Closed vision API&lt;br&gt;
Bills tested    [N] [N]&lt;br&gt;
Field-level accuracy    [X]%    [X]%&lt;br&gt;
Fully correct invoices  [X]%    [X]%&lt;br&gt;
Avg. time per bill  [X]s    [X]s&lt;br&gt;
Cost per bill   ₹0    [X]&lt;/p&gt;

&lt;p&gt;[TODO: One or two honest sentences about where it struggles, e.g. handwritten bills or faded thermal receipts.]&lt;/p&gt;

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

&lt;p&gt;Privacy is the product. Invoices contain GSTINs, customer names, and a business's real revenue. Many small business owners are uncomfortable sending that to a third-party API. Because the model runs on their own machine, the pitch is simple: your documents never leave your laptop. It even works with the internet off.&lt;/p&gt;

&lt;p&gt;The economics only work with local inference. A bookkeeping tool for small shops has to be cheap. If every page costs money through a closed vision API, the margin disappears as soon as a user uploads a few hundred bills a month. With a local open-weight model, the cost per document is zero, so I can charge a small flat price and still have a business. [TODO: add your measured API cost per bill here.]&lt;/p&gt;

&lt;p&gt;No lock-in. I'm not tied to one vendor's pricing, rate limits, or model deprecations. If a better open vision model comes out, I change one config line and re-run my benchmark.&lt;/p&gt;

&lt;p&gt;It can be tuned for a niche. Indian invoices have their own quirks: GSTINs, HSN/SAC codes, CGST/SGST/IGST splits, day-first dates, and messy thermal receipts. With open weights, this is a niche I can fine-tune for later, instead of hoping a general-purpose API gets it right.&lt;/p&gt;

&lt;p&gt;[TODO: Add one sentence on where the open approach actually beat the closed one in your own comparison, or where it didn't. Judges like honesty.]&lt;/p&gt;

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

&lt;p&gt;My First User&lt;br&gt;
&amp;lt;!-- TODO (optional, bonus points): Delete this whole section if nobody has tried it yet. Otherwise answer: --&amp;gt; &amp;lt;!-- Who were they (e.g. a relative's shop, a freelancer friend)? What bills did they run through it? How much time did it save? Did they pay, or would they? What did they ask for next? --&amp;gt;&lt;/p&gt;

&lt;p&gt;[TODO: first user story]&lt;/p&gt;

&lt;p&gt;Prize Categories&lt;br&gt;
Render&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>GreenMate AI</title>
      <dc:creator>Akshra Jain</dc:creator>
      <pubDate>Thu, 08 Oct 2026 15:55:34 +0000</pubDate>
      <link>https://dev.to/aksharajain/greenmate-ai-48ap</link>
      <guid>https://dev.to/aksharajain/greenmate-ai-48ap</guid>
      <description>&lt;h1&gt;
  
  
  🌱 GreenMate AI --- AI That Gets You Off the Screen
&lt;/h1&gt;

&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&lt;br&gt;
Week 1: Touch&lt;br&gt;
Grass&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;
&lt;h3&gt;
  
  
  🌱 GreenMate AI
&lt;/h3&gt;

&lt;p&gt;GreenMate AI is an open-source, AI-powered outdoor activity planner&lt;br&gt;
designed to help people spend &lt;strong&gt;less time on screens and more time in&lt;br&gt;
the real world&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Most AI applications encourage users to stay inside an app and interact&lt;br&gt;
with a screen. GreenMate takes the opposite approach: it uses AI to&lt;br&gt;
create a personalized outdoor mission and then encourages the user to&lt;br&gt;
&lt;strong&gt;put the phone away and go outside&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The app is designed for students, developers, remote workers, and anyone&lt;br&gt;
who wants a simple push to take a break from screens.&lt;/p&gt;
&lt;h3&gt;
  
  
  How it works
&lt;/h3&gt;

&lt;p&gt;The user chooses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  😊 Current mood&lt;/li&gt;
&lt;li&gt;  ⏱️ Available time&lt;/li&gt;
&lt;li&gt;  🚶 Preferred activity&lt;/li&gt;
&lt;li&gt;  🌱 Difficulty&lt;/li&gt;
&lt;li&gt;  📍 Outdoor environment/location&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GreenMate then uses a &lt;strong&gt;locally running open-weight AI model&lt;/strong&gt; to&lt;br&gt;
generate a personalized mission.&lt;/p&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;30-Minute Nature Reset&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🚶 Walk for 15 minutes\&lt;br&gt;
🌿 Find 3 different plants\&lt;br&gt;
🐦 Listen for birds\&lt;br&gt;
🌳 Spend 5 minutes observing your surroundings\&lt;br&gt;
📵 Avoid checking your phone for the final 10 minutes&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once the mission starts, the app encourages the user to stop interacting&lt;br&gt;
with the application:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;📵 Mission started --- put your phone away and enjoy the outside.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The goal is not to maximize app usage. The goal is to make the &lt;strong&gt;screen&lt;br&gt;
the shortest part of the experience&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Who is it for?
&lt;/h3&gt;

&lt;p&gt;GreenMate AI is especially useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  🎓 Students who spend long hours studying or coding&lt;/li&gt;
&lt;li&gt;  💻 Developers and remote workers&lt;/li&gt;
&lt;li&gt;  📱 People trying to reduce unnecessary screen time&lt;/li&gt;
&lt;li&gt;  🌳 People who want simple outdoor activity ideas&lt;/li&gt;
&lt;li&gt;  👨‍👩‍👧 Families looking for small outdoor challenges&lt;/li&gt;
&lt;li&gt;  🌱 Anyone who wants to reconnect with their surroundings&lt;/li&gt;
&lt;/ul&gt;


&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;
&lt;h3&gt;
  
  
  🌐 Live Demo
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;[Add deployed application link here]&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  🎥 Video Demo
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;[Add demo video link here]&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Suggested demo flow
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt; Open GreenMate AI.&lt;/li&gt;
&lt;li&gt; Select &lt;strong&gt;Stressed&lt;/strong&gt; as the mood.&lt;/li&gt;
&lt;li&gt; Select &lt;strong&gt;30 minutes&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Select &lt;strong&gt;Walking&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Select &lt;strong&gt;Easy&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Click &lt;strong&gt;Generate My Green Mission&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; Show the AI-generated outdoor mission.&lt;/li&gt;
&lt;li&gt; Start the mission.&lt;/li&gt;
&lt;li&gt; Show the &lt;strong&gt;"Put your phone away"&lt;/strong&gt; screen.&lt;/li&gt;
&lt;li&gt;Complete the mission and show XP/badge progress.&lt;/li&gt;
&lt;/ol&gt;


&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;
&lt;h3&gt;
  
  
  GitHub Repository
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;[Add GitHub repository link here]&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project is open source and structured so that contributors can add:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  New outdoor missions&lt;/li&gt;
&lt;li&gt;  New challenges&lt;/li&gt;
&lt;li&gt;  New open-weight AI models&lt;/li&gt;
&lt;li&gt;  Additional languages&lt;/li&gt;
&lt;li&gt;  Accessibility improvements&lt;/li&gt;
&lt;li&gt;  Weather providers&lt;/li&gt;
&lt;li&gt;  Offline features&lt;/li&gt;
&lt;li&gt;  New map/routing providers&lt;/li&gt;
&lt;li&gt;  UI improvements&lt;/li&gt;
&lt;li&gt;  Tests and documentation&lt;/li&gt;
&lt;/ul&gt;


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

&lt;p&gt;GreenMate AI is built as a full-stack application with a strong focus on&lt;br&gt;
&lt;strong&gt;open-source AI and local inference&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  Technology Stack
&lt;/h3&gt;

&lt;p&gt;Layer             Technology&lt;/p&gt;



&lt;p&gt;Frontend          React + TypeScript&lt;br&gt;
  Build Tool        Vite&lt;br&gt;
  Styling           Tailwind CSS&lt;br&gt;
  Backend           Python + FastAPI&lt;br&gt;
  AI Runtime        Ollama&lt;br&gt;
  AI Model          Configurable open-weight model&lt;br&gt;
  Database          SQLite&lt;br&gt;
  Maps              Leaflet + OpenStreetMap&lt;br&gt;
  Weather           Open-Meteo (optional)&lt;br&gt;
  Routing           Open routing solution such as OSRM&lt;br&gt;
  Version Control   Git + GitHub&lt;/p&gt;
&lt;h3&gt;
  
  
  Architecture
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;                         ┌─────────────────────┐
                         │       User          │
                         │ Mood / Time / Goal  │
                         └──────────┬──────────┘
                                    │
                                    ▼
                         ┌─────────────────────┐
                         │   React Frontend   │
                         │  Mission Interface  │
                         └──────────┬──────────┘
                                    │
                                    ▼
                         ┌─────────────────────┐
                         │    FastAPI Backend  │
                         │   REST API Layer    │
                         └──────┬───────┬──────┘
                                │       │
                  ┌─────────────┘       └──────────────┐
                  ▼                                    ▼
        ┌──────────────────┐                  ┌────────────────┐
        │      Ollama      │                  │     SQLite     │
        │  Local Inference │                  │ User Progress  │
        └────────┬─────────┘                  └────────────────┘
                 │
                 ▼
        ┌──────────────────┐
        │ Open-Weight Model│
        │ Mission Planning │
        └──────────────────┘
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

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

&lt;p&gt;The AI is not used as a generic chatbot.&lt;/p&gt;

&lt;p&gt;Instead, the application sends structured preferences to the local&lt;br&gt;
model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Mood: Stressed
Time: 30 minutes
Activity: Walking
Difficulty: Easy
Environment: Park
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The model generates structured mission information such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"30-Minute Nature Reset"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"duration_minutes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"difficulty"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Easy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"activity_type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Walking"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"steps"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Walk for 15 minutes"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Find three different plants"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Observe your surroundings for five minutes"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Complete a five-minute return walk"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"challenges"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Find something yellow"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Listen for three different sounds"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="s2"&gt;"Stay screen-free for ten minutes"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"screen_free_minutes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The structured response makes the AI output predictable and easy for the&lt;br&gt;
frontend to display.&lt;/p&gt;
&lt;h3&gt;
  
  
  Local AI
&lt;/h3&gt;

&lt;p&gt;The core AI functionality is designed around &lt;strong&gt;Ollama and an open-weight&lt;br&gt;
model&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;This means the project can run AI locally instead of requiring a&lt;br&gt;
proprietary AI API for the core mission-generation feature.&lt;/p&gt;

&lt;p&gt;The model is configurable so that users can experiment with compatible&lt;br&gt;
open-weight models.&lt;/p&gt;


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

&lt;p&gt;Open innovation is particularly important for GreenMate AI because &lt;strong&gt;the&lt;br&gt;
project is designed to work close to the user rather than keeping their&lt;br&gt;
information inside a remote AI service&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;
  
  
  🔐 1. Privacy
&lt;/h3&gt;

&lt;p&gt;GreenMate can run the core AI locally.&lt;/p&gt;

&lt;p&gt;A user's preferences do not need to be sent to a proprietary AI provider&lt;br&gt;
just to generate an outdoor activity.&lt;/p&gt;

&lt;p&gt;Location is also treated separately from the AI generation process so&lt;br&gt;
that precise location information does not need to be sent to the AI&lt;br&gt;
model.&lt;/p&gt;
&lt;h3&gt;
  
  
  🧩 2. Model Choice
&lt;/h3&gt;

&lt;p&gt;With an open-weight approach, users can choose or replace the model&lt;br&gt;
instead of being permanently tied to one proprietary provider.&lt;/p&gt;

&lt;p&gt;This makes experimentation easier for students and developers.&lt;/p&gt;
&lt;h3&gt;
  
  
  🛠️ 3. Customization
&lt;/h3&gt;

&lt;p&gt;The model and prompts can be adapted for different use cases.&lt;/p&gt;

&lt;p&gt;For example, contributors could create versions focused on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Hiking&lt;/li&gt;
&lt;li&gt;  Gardening&lt;/li&gt;
&lt;li&gt;  Bird watching&lt;/li&gt;
&lt;li&gt;  Running&lt;/li&gt;
&lt;li&gt;  Cycling&lt;/li&gt;
&lt;li&gt;  Nature photography&lt;/li&gt;
&lt;li&gt;  Family activities&lt;/li&gt;
&lt;li&gt;  Local-language outdoor missions&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  🌐 4. Community Contribution
&lt;/h3&gt;

&lt;p&gt;Because the project is open source, contributors can improve the&lt;br&gt;
application without needing access to a private AI platform.&lt;/p&gt;

&lt;p&gt;Someone could contribute a new model adapter, another person could&lt;br&gt;
improve the mission-generation prompt, and another could add&lt;br&gt;
accessibility or multilingual support.&lt;/p&gt;
&lt;h3&gt;
  
  
  💻 5. Local and Offline Possibilities
&lt;/h3&gt;

&lt;p&gt;A local model makes it possible to explore an important idea:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;What if an AI outdoor assistant could continue working even when&lt;br&gt;
internet connectivity is limited?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is especially relevant for hiking, rural areas, parks, and outdoor&lt;br&gt;
environments.&lt;/p&gt;
&lt;h3&gt;
  
  
  🔓 6. Transparency
&lt;/h3&gt;

&lt;p&gt;Using open technologies makes the architecture easier to inspect and&lt;br&gt;
understand.&lt;/p&gt;

&lt;p&gt;As a B.Tech CSE project, this also makes the system valuable from an&lt;br&gt;
educational perspective because students can learn how:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Frontend
   ↓
Backend
   ↓
Local AI Runtime
   ↓
Open-Weight Model
   ↓
Structured AI Output
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;actually works.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Touch Grass Philosophy
&lt;/h2&gt;

&lt;p&gt;GreenMate is intentionally designed around a slightly unusual product&lt;br&gt;
principle:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;The best session is the session where the user leaves the app.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Most applications optimize for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  More clicks&lt;/li&gt;
&lt;li&gt;  More sessions&lt;/li&gt;
&lt;li&gt;  More screen time&lt;/li&gt;
&lt;li&gt;  More engagement&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GreenMate optimizes for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  More outdoor time&lt;/li&gt;
&lt;li&gt;  More movement&lt;/li&gt;
&lt;li&gt;  More observation&lt;/li&gt;
&lt;li&gt;  More screen-free minutes&lt;/li&gt;
&lt;li&gt;  More connection with the real world&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application therefore has an intentional &lt;strong&gt;"exit the app" moment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;After starting a mission, the user sees:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🌱 YOUR MISSION HAS STARTED

📵 Put your phone away.

Go outside.
Complete your mission.
Enjoy the real world.

We'll be here when you return.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;p&gt;GreenMate is designed with privacy and responsible use in mind.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privacy principles
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  Local AI is preferred for the core AI functionality.&lt;/li&gt;
&lt;li&gt;  Precise location is not required for AI mission generation.&lt;/li&gt;
&lt;li&gt;  Location access requires explicit user permission.&lt;/li&gt;
&lt;li&gt;  Sensitive location information should not be unnecessarily stored.&lt;/li&gt;
&lt;li&gt;  API keys should never be committed to the repository.&lt;/li&gt;
&lt;li&gt;  Environment variables are used for configuration.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Safety principles
&lt;/h3&gt;

&lt;p&gt;GreenMate should:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Recommend realistic activities.&lt;/li&gt;
&lt;li&gt;  Avoid dangerous activities.&lt;/li&gt;
&lt;li&gt;  Avoid encouraging users to enter restricted or private areas.&lt;/li&gt;
&lt;li&gt;  Avoid medical diagnosis or medical claims.&lt;/li&gt;
&lt;li&gt;  Consider weather when weather data is available.&lt;/li&gt;
&lt;li&gt;  Encourage users to follow local safety rules.&lt;/li&gt;
&lt;li&gt;  Provide fallback suggestions when location or routing services are
unavailable.&lt;/li&gt;
&lt;/ul&gt;




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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!-- Optional. Add your DevRelay agent session here if available. --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;[Add DevRelay agent session link here]&lt;/strong&gt;&lt;/p&gt;




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



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!-- Add the applicable partner prize categories here after checking the challenge page. --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;  [ ] Partner Category 1&lt;/li&gt;
&lt;li&gt;  [ ] Partner Category 2&lt;/li&gt;
&lt;li&gt;  [ ] Partner Category 3&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Project Roadmap
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ✅ MVP
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  [x] Project concept&lt;/li&gt;
&lt;li&gt;  [x] Open-weight/local AI architecture&lt;/li&gt;
&lt;li&gt;  [x] Personalized outdoor mission generation&lt;/li&gt;
&lt;li&gt;  [x] Mood and time-based activity planning&lt;/li&gt;
&lt;li&gt;  [x] Screen-free mission concept&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🚧 In Development
&lt;/h3&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;  [ ] Structured AI responses&lt;/li&gt;
&lt;li&gt;  [ ] Leaflet/OpenStreetMap integration&lt;/li&gt;
&lt;li&gt;  [ ] SQLite progress tracking&lt;/li&gt;
&lt;li&gt;  [ ] Gamification&lt;/li&gt;
&lt;li&gt;  [ ] Offline fallback&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  🔮 Future Scope
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  📱 Android/iOS application&lt;/li&gt;
&lt;li&gt;  🎙️ Voice-based mission generation&lt;/li&gt;
&lt;li&gt;  👁️ Local vision model for plant recognition&lt;/li&gt;
&lt;li&gt;  🐦 Bird identification&lt;/li&gt;
&lt;li&gt;  ⌚ Smartwatch integration&lt;/li&gt;
&lt;li&gt;  🌐 Multilingual support&lt;/li&gt;
&lt;li&gt;  🗺️ Better offline maps&lt;/li&gt;
&lt;li&gt;  🧠 Personalized local models&lt;/li&gt;
&lt;li&gt;  👥 Community-created outdoor challenges&lt;/li&gt;
&lt;li&gt;  ♿ Improved accessibility&lt;/li&gt;
&lt;/ul&gt;




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

&lt;p&gt;Building GreenMate AI helped me explore several areas of computer&lt;br&gt;
science:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Full-stack application development&lt;/li&gt;
&lt;li&gt;  REST API design&lt;/li&gt;
&lt;li&gt;  Local AI inference&lt;/li&gt;
&lt;li&gt;  Open-weight AI models&lt;/li&gt;
&lt;li&gt;  Prompt engineering&lt;/li&gt;
&lt;li&gt;  Structured AI output&lt;/li&gt;
&lt;li&gt;  Privacy-aware application design&lt;/li&gt;
&lt;li&gt;  Maps and geolocation&lt;/li&gt;
&lt;li&gt;  Database design&lt;/li&gt;
&lt;li&gt;  Git and GitHub workflows&lt;/li&gt;
&lt;li&gt;  Open-source contribution practices&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most importantly, the project changed the way I think about AI.&lt;/p&gt;

&lt;p&gt;AI does not always have to make us spend more time with technology.&lt;/p&gt;

&lt;p&gt;Sometimes the best use of AI is to help us &lt;strong&gt;put the technology down.&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🌱 GreenMate AI
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;AI that gets you off the screen and into the real world.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;GreenMate AI combines open-weight AI, local inference, maps, and&lt;br&gt;
gamification to create a simple goal:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use AI → Start a mission → Put the phone away → Go outside.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The project is built with open technologies so that developers and&lt;br&gt;
students can inspect it, modify it, replace the AI model, and contribute&lt;br&gt;
new ideas.&lt;/p&gt;

&lt;p&gt;Because sometimes, the smartest thing an AI can tell you is:&lt;/p&gt;

&lt;h1&gt;
  
  
  📵 Put your phone away. Go touch grass. 🌱
&lt;/h1&gt;




&lt;h2&gt;
  
  
  Team
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Project:&lt;/strong&gt; GreenMate AI&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Team Members:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  [@YOUR_DEV_USERNAME] --- Developer / AI / Project Lead&lt;/li&gt;
&lt;li&gt;  [@TEAMMATE_USERNAME] --- [Role]&lt;/li&gt;
&lt;li&gt;  [@TEAMMATE_USERNAME] --- [Role]
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;!-- For a team submission, list the DEV usernames of all teammates here. --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






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

&lt;p&gt;This project is open source.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;License:&lt;/strong&gt; [Add your chosen open-source license, e.g.&amp;nbsp;MIT]&lt;/p&gt;




&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  💻 &lt;strong&gt;GitHub:&lt;/strong&gt; [&lt;a href="https://github.com/akshrakothari/GreenMate-AI.git" rel="noopener noreferrer"&gt;https://github.com/akshrakothari/GreenMate-AI.git&lt;/a&gt;]&lt;/li&gt;
&lt;li&gt;  🎥 &lt;strong&gt;Demo Video:&lt;/strong&gt; [Add link]&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>“My family doesn't need another AI chatbot. They need one place to remember the things they keep telling each other.”</title>
      <dc:creator>Akshra Jain</dc:creator>
      <pubDate>Fri, 02 Oct 2026 09:33:28 +0000</pubDate>
      <link>https://dev.to/aksharajain/my-family-doesnt-need-another-ai-chatbot-they-need-one-place-to-remember-the-things-they-keep-3a4m</link>
      <guid>https://dev.to/aksharajain/my-family-doesnt-need-another-ai-chatbot-they-need-one-place-to-remember-the-things-they-keep-3a4m</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  FamilyBoard AI 🏠
&lt;/h1&gt;

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

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

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

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

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

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

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

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Intro</title>
      <dc:creator>Akshra Jain</dc:creator>
      <pubDate>Thu, 01 Oct 2026 17:13:08 +0000</pubDate>
      <link>https://dev.to/aksharajain/intro-36eg</link>
      <guid>https://dev.to/aksharajain/intro-36eg</guid>
      <description>&lt;p&gt;Hi I am new to community&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
