<?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: Aman Jain</title>
    <description>The latest articles on DEV Community by Aman Jain (@mrcyberlord).</description>
    <link>https://dev.to/mrcyberlord</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%2F4161324%2F631363f0-21fd-4dba-9fa9-c1407ad2cd57.jpg</url>
      <title>DEV Community: Aman Jain</title>
      <link>https://dev.to/mrcyberlord</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mrcyberlord"/>
    <language>en</language>
    <item>
      <title>RivalIQ: Giving Small Online Sellers Their Own AI-Powered Competitor Intelligence</title>
      <dc:creator>Aman Jain</dc:creator>
      <pubDate>Mon, 19 Oct 2026 06:56:09 +0000</pubDate>
      <link>https://dev.to/mrcyberlord/rivaliq-giving-small-online-sellers-their-own-ai-powered-competitor-intelligence-kbf</link>
      <guid>https://dev.to/mrcyberlord/rivaliq-giving-small-online-sellers-their-own-ai-powered-competitor-intelligence-kbf</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;Imagine you're a small online seller.&lt;/p&gt;

&lt;p&gt;You list a stainless steel water bottle for ₹799. But how do you know whether that price is competitive?&lt;/p&gt;

&lt;p&gt;You could manually search shopping platforms, compare dozens of listings, inspect product specifications and calculate price differences. Or you could pay for an expensive analytics platform.&lt;/p&gt;

&lt;p&gt;I wanted to explore a third option.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meet RivalIQ — an open-source, AI-powered competitor intelligence tool built for independent e-commerce sellers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;RivalIQ takes a product name, selling price and optional cost, then helps sellers understand the competitive landscape.&lt;/p&gt;

&lt;p&gt;It can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Discover real shopping listings using SerpApi.&lt;/li&gt;
&lt;li&gt;Identify potentially comparable products using attribute matching.&lt;/li&gt;
&lt;li&gt;Calculate price differences and benchmarks from eligible listings.&lt;/li&gt;
&lt;li&gt;Generate evidence-linked insights using Google's open-weight Gemma model.&lt;/li&gt;
&lt;li&gt;Recommend actions focused on the seller's own product.&lt;/li&gt;
&lt;li&gt;Save reports to MongoDB Atlas for later review.&lt;/li&gt;
&lt;li&gt;Run a guided analysis workflow using the open-source Mastra framework.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The distinction that matters most to me is &lt;strong&gt;evidence versus assumptions&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A 500 ml plastic bottle shouldn't automatically be treated as equivalent to a 1 litre stainless steel bottle just because both appear in shopping results.&lt;/p&gt;

&lt;p&gt;RivalIQ attempts to separate genuine comparisons from broader market observations. When there isn't enough reliable data, it says so.&lt;/p&gt;

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

&lt;p&gt;My target customers are independent online sellers, small e-commerce businesses and marketplace merchants who need competitive intelligence but cannot justify expensive enterprise tools.&lt;/p&gt;

&lt;p&gt;A potential business model would be a subscription offering recurring competitor monitoring, saved reports and pricing alerts.&lt;/p&gt;

&lt;p&gt;That's the side hustle opportunity: turning an open-source prototype into an affordable intelligence service for smaller merchants.&lt;/p&gt;

&lt;p&gt;It's still a prototype, not a commercial product with paying customers.&lt;/p&gt;

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

&lt;p&gt;Here's a walkthrough of RivalIQ, including its competitor discovery, AI analysis and guided workflow.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.loom.com/share/d5f63f2f44804543b60132a2d5304d76" rel="noopener noreferrer"&gt;Watch the RivalIQ demo on Loom&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The demo uses a sample Milton stainless steel water bottle with a selling price of ₹799 and cost of ₹500.&lt;/p&gt;

&lt;p&gt;The analysis demonstrates how RivalIQ turns retrieved listings into a structured report and seller-focused guidance.&lt;/p&gt;

&lt;p&gt;The application currently runs locally with Ollama. A public hosted deployment is not required to watch the demonstration.&lt;/p&gt;

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

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

&lt;p&gt;The project is publicly available under the MIT license.&lt;/p&gt;

&lt;p&gt;It includes the React frontend, FastAPI backend, Mastra orchestration service, tests, setup instructions and architecture documentation.&lt;/p&gt;

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

&lt;p&gt;I used several technologies, but each has a specific responsibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;React + TypeScript + Vite&lt;/strong&gt; powers the user interface where sellers enter product details, inspect competitor evidence and reopen saved reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python + FastAPI&lt;/strong&gt; handles the core intelligence pipeline: input validation, shopping discovery, attribute matching, pricing calculations, AI integration and persistence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SerpApi&lt;/strong&gt; retrieves real Google Shopping listings. RivalIQ preserves source references so sellers can inspect the underlying evidence rather than relying on unexplained AI conclusions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gemma 3 4B through Ollama&lt;/strong&gt; is the AI engine. It helps formulate a broader discovery query and generates structured market insights. The model runs locally, without requiring a hosted LLM API for inference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mastra&lt;/strong&gt; powers an optional guided workflow with four stages: validate seller inputs, generate the report, inspect evidence quality and assemble a seller action brief.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MongoDB Atlas&lt;/strong&gt; stores completed reports so users can reopen previous analyses without rerunning AI inference or consuming search credits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sentry&lt;/strong&gt; provides backend tracing and performance visibility, with privacy-conscious telemetry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TabPFN&lt;/strong&gt;, through the official hosted client, is integrated as an experimental option for predictive pricing. It requires sufficient independent comparable-product observations and explicit consent before cloud processing. I haven't presented it as a working prediction where the necessary data isn't available.&lt;/p&gt;

&lt;h3&gt;
  
  
  A lesson I learned: AI shouldn't be the final authority
&lt;/h3&gt;

&lt;p&gt;One of the most interesting problems emerged during testing.&lt;/p&gt;

&lt;p&gt;An AI-generated recommendation could suggest reducing the price of a competitor's listing rather than advising the seller about their own product.&lt;/p&gt;

&lt;p&gt;That sounds small, but it makes the advice practically useless.&lt;/p&gt;

&lt;p&gt;So I added a validation layer in FastAPI that checks recommendations for seller direction, source citations, unsupported numerical price targets and exaggerated outcome claims.&lt;/p&gt;

&lt;p&gt;Invalid recommendations receive clearly identified deterministic replacements. The system also changes its guidance based on how many comparable offers are available.&lt;/p&gt;

&lt;p&gt;The architecture follows a simple principle:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let AI interpret evidence, but let deterministic code enforce the rules.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The resulting workflow combines the flexibility of a language model with conventional software validation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Testing and performance
&lt;/h3&gt;

&lt;p&gt;The project passed 256 backend tests and 22 orchestration/frontend tests during the Milestone 5.1 verification, alongside TypeScript checks and production builds.&lt;/p&gt;

&lt;p&gt;A previous live guided workflow completed in approximately 83 seconds on local hardware. Local model generation accounts for a substantial part of the processing time.&lt;/p&gt;

&lt;p&gt;That is an important limitation and an obvious area for future optimization.&lt;/p&gt;

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

&lt;p&gt;I wanted to build something useful without making access to an expensive proprietary AI service a prerequisite.&lt;/p&gt;

&lt;p&gt;Gemma's open weights made it possible to experiment with local inference, inspect how the model behaved and adjust the surrounding validation logic.&lt;/p&gt;

&lt;p&gt;Mastra provided an open-source orchestration framework without requiring a hosted Mastra account.&lt;/p&gt;

&lt;p&gt;Together with FastAPI, React and the rest of the ecosystem, these tools made it possible to build a complete application that I can study, modify and extend.&lt;/p&gt;

&lt;p&gt;Open innovation doesn't eliminate every external dependency. RivalIQ still uses SerpApi for shopping data and optionally integrates hosted services for storage, monitoring and prediction.&lt;/p&gt;

&lt;p&gt;But it gives me control over a crucial part of the product: &lt;strong&gt;the intelligence pipeline itself&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;For a solo developer exploring a side hustle, that flexibility matters.&lt;/p&gt;

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

&lt;p&gt;I'm submitting RivalIQ for consideration in the applicable open-source AI and partner categories, particularly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — Local Gemma-powered market analysis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mastra&lt;/strong&gt; — Guided workflow orchestration with validated steps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MongoDB Atlas&lt;/strong&gt; — Persistent intelligence reports and history.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sentry&lt;/strong&gt; — Backend performance tracing and observability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TabPFN&lt;/strong&gt; — Experimental, consent-based predictive pricing integration, with data sufficiency safeguards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have not deployed RivalIQ on Render, so I'm not claiming a Render deployment.&lt;/p&gt;

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

&lt;p&gt;RivalIQ is a working prototype, but there is plenty of room to grow.&lt;/p&gt;

&lt;p&gt;I'd like to explore scheduled competitor monitoring, improved product matching, faster inference and better pricing intelligence as more real observations become available.&lt;/p&gt;

&lt;p&gt;The long-term goal is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make useful competitor intelligence accessible to sellers who don't have enterprise-sized budgets.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This Hacktoberfest challenge gave me an opportunity to turn that idea into something tangible.&lt;/p&gt;

&lt;p&gt;Thanks for reading! I'd love to hear what you'd improve or which feature would be most useful to a small online seller.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Runningo: Less Scrolling, More Running - Powered by Gemma</title>
      <dc:creator>Aman Jain</dc:creator>
      <pubDate>Mon, 12 Oct 2026 06:56:34 +0000</pubDate>
      <link>https://dev.to/mrcyberlord/runningo-less-scrolling-more-running-powered-by-gemma-3d1f</link>
      <guid>https://dev.to/mrcyberlord/runningo-less-scrolling-more-running-powered-by-gemma-3d1f</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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;Sometimes the barrier to getting outside is a small decision: &lt;strong&gt;where should I go with the time I have?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;Runningo&lt;/strong&gt;, a mobile-friendly walking and jogging route planner. Choose your starting point, available time and preferred stops, then get a real pedestrian route back.&lt;/p&gt;

&lt;p&gt;You can also describe your outing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“A 30-minute jog with greenery and a 5-minute stop.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gemma interprets the request. Runningo reserves five minutes for the pause and plans around the remaining moving time.&lt;/p&gt;

&lt;p&gt;The map highlights parks, gardens, scenic viewpoints, fruit shops and drinking-water points where OpenStreetMap has relevant data. Suggested routed stops are distinguished from nearby markers, with warnings when preferences cannot be met.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The goal: less time deciding, more time outside.&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://www.loom.com/share/8fc70a0f0af94df8aaebe746bf87e362" rel="noopener noreferrer"&gt;Watch the Runningo demo on Loom&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is a &lt;strong&gt;local demo&lt;/strong&gt; using Gemma through Ollama. There is no public deployment yet.&lt;/p&gt;

&lt;p&gt;I manually tested time changes, walking versus jogging and pause-time budgeting in the browser. Jogging produced a longer route for the same time; adding a pause reduced the route distance.&lt;/p&gt;

&lt;p&gt;One verified local request returned a &lt;strong&gt;3.221 km pedestrian round trip&lt;/strong&gt;, with &lt;strong&gt;24.15 moving minutes + 5 pause minutes = 29.15 minutes total&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;I have not field-tested the route outdoors.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://github.com/MrCyberlord/RunningApp" rel="noopener noreferrer"&gt;Runningo source code and setup instructions&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Runningo uses &lt;strong&gt;React, TypeScript and Leaflet&lt;/strong&gt; for the interface, &lt;strong&gt;FastAPI and Pydantic&lt;/strong&gt; for the backend and &lt;strong&gt;Gemma 3 4B through Ollama&lt;/strong&gt; for local natural-language interpretation.&lt;/p&gt;

&lt;p&gt;The responsibilities are deliberately separated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gemma&lt;/strong&gt; extracts activity, available time, place preferences and pause time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pydantic&lt;/strong&gt; validates the structured response.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FOSSGIS OSRM foot&lt;/strong&gt; supplies real pedestrian geometry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Overpass&lt;/strong&gt; retrieves OpenStreetMap places.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Code&lt;/strong&gt; calculates time from routed distance and the selected pace.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Gemma never invents route geometry or calculates distance.&lt;/p&gt;

&lt;h3&gt;
  
  
  A smaller model was not automatically the better choice
&lt;/h3&gt;

&lt;p&gt;I compared three Gemma sizes using the same seven fixed requests, prompt and expected results:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Correct interpretations&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 3 270M&lt;/td&gt;
&lt;td&gt;1/7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 3 1B&lt;/td&gt;
&lt;td&gt;3/7&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemma 3 4B&lt;/td&gt;
&lt;td&gt;7/7&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The cases included negated preferences, preserving defaults and stop-time allocation. These are results from a &lt;strong&gt;small development evaluation&lt;/strong&gt;, not a claim of general accuracy.&lt;/p&gt;

&lt;p&gt;The smaller models sometimes returned structurally valid JSON with incorrect preferences. That taught me to test meaning as well as format. Gemma 4B handled all seven cases correctly, with a warm mean response time of approximately 5.75 seconds on my computer.&lt;/p&gt;

&lt;p&gt;Malformed or unavailable model responses trigger an explicitly labelled form fallback.&lt;/p&gt;

&lt;h3&gt;
  
  
  Handling imperfect external services
&lt;/h3&gt;

&lt;p&gt;Place lookup can time out. I added bounded requests, an alternative endpoint and caching, with separate messages for unavailable data and successful empty results.&lt;/p&gt;

&lt;p&gt;Testing also exposed a bug: a failed place lookup could drop the requested pause from the time budget. I fixed it so pause time remains included even without an assigned mapped stop.&lt;/p&gt;

&lt;p&gt;The backend has &lt;strong&gt;57 passing tests&lt;/strong&gt;. TypeScript checking and the production build also pass.&lt;/p&gt;

&lt;p&gt;I used Codex to help build and debug the project, then tested the main browser experience myself.&lt;/p&gt;

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

&lt;p&gt;Gemma’s open weights let me run inference locally, compare model sizes and inspect failures without a hosted inference subscription or per-request API charges.&lt;/p&gt;

&lt;p&gt;Natural-language interpretation stays on my computer. The mapping portion still needs internet access and sends coordinates to routing and place providers, so Runningo is not an entirely offline app.&lt;/p&gt;

&lt;p&gt;OpenStreetMap provides inspectable place data. Rather than treating an AI-generated location as fact, Runningo uses mapped sources and reports missing information.&lt;/p&gt;

&lt;p&gt;Together, these pieces let me build a reproducible local AI application with clear boundaries between model interpretation, geographic data and calculations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations and Next Steps
&lt;/h2&gt;

&lt;p&gt;The current planner tries at most three route candidates and includes at most one preferred mapped place. Routes may retrace paths or undershoot the time budget.&lt;/p&gt;

&lt;p&gt;Walking and jogging estimates use fixed speeds. Mapped centres are not verified entrances, and nearby markers do not imply visits. Opening hours, access, road suitability, fruit availability and drinking-water quality remain unverified.&lt;/p&gt;

&lt;p&gt;Next, I want to improve route selection, verify park entrances and deploy a public version. Longer term, I’d like people to invite friends for scheduled walks and runs.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;Best Use of Gemma&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Gemma 3 4B powers natural-language preference extraction, with documented comparisons against smaller Gemma models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Attribution
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.openstreetmap.org/copyright" rel="noopener noreferrer"&gt;OpenStreetMap contributors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://routing.openstreetmap.de/about.html" rel="noopener noreferrer"&gt;FOSSGIS pedestrian routing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://overpass-api.de/" rel="noopener noreferrer"&gt;Overpass&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://ollama.com/library/gemma3" rel="noopener noreferrer"&gt;Gemma through Ollama&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
    </item>
    <item>
      <title>Papa Explain</title>
      <dc:creator>Aman Jain</dc:creator>
      <pubDate>Mon, 05 Oct 2026 07:03:28 +0000</pubDate>
      <link>https://dev.to/mrcyberlord/papa-explain-1aah</link>
      <guid>https://dev.to/mrcyberlord/papa-explain-1aah</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;
  
  
  PapaExplain: Making AI Actually Personal
&lt;/h1&gt;

&lt;p&gt;We talk a lot about &lt;strong&gt;personal AI assistants&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;But I kept thinking: what actually makes them &lt;em&gt;personal&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;Maybe the future isn't just one giant AI assistant trying to do everything for everyone. Maybe it's also small AI tools built around the everyday problems of individual people.&lt;/p&gt;

&lt;p&gt;So for this challenge, I decided to build one for my father.&lt;/p&gt;

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

&lt;p&gt;My father, like many people who aren't deeply technical, sometimes comes across messages where the actual information is simple, but the language isn't.&lt;/p&gt;

&lt;p&gt;Banking notices. Bills. Account updates. Service notifications. Formal English with a paragraph of information when what you really want to know is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“What does this mean, and what am I supposed to do?”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's the problem behind &lt;strong&gt;PapaExplain 🧠&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Paste a confusing message, choose &lt;strong&gt;Simple English, Hindi or Hinglish&lt;/strong&gt; and PapaExplain gives you two things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a simpler explanation of what the message means&lt;/li&gt;
&lt;li&gt;a clear &lt;strong&gt;“What should I do?”&lt;/strong&gt; section&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it.&lt;/p&gt;

&lt;p&gt;I deliberately didn't build another general-purpose chatbot. PapaExplain has one job and I wanted it to do that job simply.&lt;/p&gt;

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

&lt;p&gt;PapaExplain runs locally on my laptop, so instead of deploying the actual AI pipeline to a cloud service, I recorded the real application running with local inference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Video demo:&lt;/strong&gt;  &lt;/p&gt;


&lt;div&gt;
  &lt;iframe src="https://loom.com/embed/9f79da47c0544b04b3f6ab37aba65dfc" width="100%" height="400"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MrCyberlord/ExplainBot" rel="noopener noreferrer"&gt;https://github.com/MrCyberlord/ExplainBot&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;localhost&lt;/code&gt; URL in the demo is intentional. The message is processed by an AI model running on my machine rather than being sent to a hosted LLM API.&lt;/p&gt;
&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;The stack is deliberately small:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Streamlit&lt;/strong&gt; for the interface&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; for local inference&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gemma 3 270M&lt;/strong&gt; as the open-weight model&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The architecture is basically:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Message
   ↓
Streamlit
   ↓
Ollama (local)
   ↓
Gemma 3 270M
   ↓
Simple explanation + required action
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The prompt asks the model to do more than translate. It should simplify the message while preserving important information such as &lt;strong&gt;amounts, dates, deadlines and warnings&lt;/strong&gt;, then separately explain what action the person needs to take.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why such a tiny model?
&lt;/h3&gt;

&lt;p&gt;This became one of my favourite parts of the project.&lt;/p&gt;

&lt;p&gt;I could have reached for a much larger model, but PapaExplain has a narrow job.&lt;/p&gt;

&lt;p&gt;That made me curious:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;How small can a useful private AI assistant be?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gemma 3 270M is tiny compared with the models we normally associate with AI assistants.&lt;/p&gt;

&lt;p&gt;That's exactly why I wanted to try it.&lt;/p&gt;

&lt;p&gt;Instead of using the biggest model available, I kept both the problem and the prompt constrained. For a lightweight tool designed to understand relatively short everyday messages, I wanted to see how far a small local model could go.&lt;/p&gt;

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

&lt;p&gt;Privacy wasn't something I wanted to add later. It influenced the architecture from the beginning.&lt;/p&gt;

&lt;p&gt;Think about the messages someone might want PapaExplain to explain: a bank notice, a bill, an account message or some other personal communication.&lt;/p&gt;

&lt;p&gt;Those are exactly the kinds of things I don't want the application to &lt;em&gt;require&lt;/em&gt; sending to a third-party AI service.&lt;/p&gt;

&lt;p&gt;With &lt;strong&gt;Ollama + Gemma&lt;/strong&gt;, the model inference happens locally.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;PapaExplain&lt;/th&gt;
&lt;th&gt;Hosted AI API&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Inference&lt;/td&gt;
&lt;td&gt;Local machine&lt;/td&gt;
&lt;td&gt;Remote server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM API key&lt;/td&gt;
&lt;td&gt;Not required&lt;/td&gt;
&lt;td&gt;Usually required&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Per-request LLM cost&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;May have usage cost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model choice&lt;/td&gt;
&lt;td&gt;Can swap local models&lt;/td&gt;
&lt;td&gt;Provider dependent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internet for inference&lt;/td&gt;
&lt;td&gt;Not required after setup&lt;/td&gt;
&lt;td&gt;Required&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Message sent to hosted LLM&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A closed API could certainly give me access to a much more powerful model.&lt;/p&gt;

&lt;p&gt;But raw model capability wasn't my only requirement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Privacy, local control and simplicity mattered too.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that's where using an open-weight model made the project possible in the way I wanted to build it.&lt;/p&gt;

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

&lt;p&gt;The most interesting lesson was that &lt;strong&gt;small models become much more useful when the problem becomes more specific&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Gemma 3 270M obviously isn't going to compete with a frontier model on general reasoning, and it can still misunderstand complicated text or occasionally generate something that wasn't present in the original message.&lt;/p&gt;

&lt;p&gt;That matters.&lt;/p&gt;

&lt;p&gt;For something like PapaExplain, a future version should have stronger safeguards around hallucinations, especially for dates, amounts, URLs and required actions. High-stakes financial, legal or medical messages shouldn't be blindly trusted to a small language model.&lt;/p&gt;

&lt;p&gt;Building the prototype made something clear to me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Getting an AI model to answer is easy. Knowing when its answer should be trusted is the more interesting engineering problem.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How I'd Improve It
&lt;/h2&gt;

&lt;p&gt;PapaExplain is intentionally small, but building it made the next steps pretty clear.&lt;br&gt;
The first thing I'd improve is reliability. A small model can occasionally introduce a detail that wasn't present in the original message, so I'd add structured extraction and validation for things like dates, amounts, deadlines, URLs and required actions before showing them to the user.&lt;br&gt;
After that, I'd explore:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Image input, so my father could simply upload a screenshot instead of copying the text.&lt;/li&gt;
&lt;li&gt;Confidence and uncertainty indicators, so the app can say “I'm not sure” instead of confidently guessing.&lt;/li&gt;
&lt;li&gt;Model comparison, to test whether slightly larger local Gemma models provide enough improvement to justify the additional resources.&lt;/li&gt;
&lt;li&gt;An even simpler one-click interface designed for someone who doesn't care which model, framework or prompt is running underneath.
And eventually, I'd love for the interaction to become as simple as:
Take a screenshot → give it to PapaExplain → understand what it means.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But I also don't want to lose the reason I built it in the first place.&lt;br&gt;
It should remain a small tool that makes one everyday problem easier.&lt;/p&gt;

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

&lt;p&gt;The complete source code and setup instructions are available here:&lt;/p&gt;

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

&lt;p&gt;I also documented the local setup so the project can be run with Ollama and Gemma rather than requiring access to my machine or an external AI API.&lt;/p&gt;

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

&lt;p&gt;There's one more fun part to how PapaExplain was built.&lt;/p&gt;

&lt;p&gt;I used &lt;strong&gt;OpenAI Codex&lt;/strong&gt; as my coding agent during the build.&lt;/p&gt;

&lt;p&gt;It helped me turn the idea into the Streamlit application, structure the project, test it, integrate the local model and create the documentation.&lt;/p&gt;

&lt;p&gt;So there is something slightly recursive about this project:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I used AI to help me build a personal AI for my father. 😄&lt;/strong&gt;&lt;/p&gt;

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

&lt;h3&gt;
  
  
  Best Use of Gemma
&lt;/h3&gt;

&lt;p&gt;PapaExplain uses &lt;strong&gt;Gemma 3 270M&lt;/strong&gt; for its core functionality, running locally through Ollama.&lt;/p&gt;

&lt;p&gt;I didn't choose the smallest Gemma model simply to say that the project uses Gemma.&lt;/p&gt;

&lt;p&gt;It became part of the experiment itself:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Can a tiny Gemma model be useful enough to solve one focused, everyday problem completely locally?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;PapaExplain is my attempt to find out.&lt;/p&gt;




&lt;p&gt;I started this challenge thinking about something useful I could build quickly for one person.&lt;/p&gt;

&lt;p&gt;I ended it thinking a little differently about the phrase &lt;strong&gt;“personal AI.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Maybe personal AI doesn't always need to mean one enormously capable assistant that knows everything about us.&lt;/p&gt;

&lt;p&gt;Sometimes it can simply mean building the right little tool for the right person.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One person. One recurring problem. One button.&lt;/strong&gt;&lt;/p&gt;

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