<?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: Samarth Mukhija</title>
    <description>The latest articles on DEV Community by Samarth Mukhija (@samearth17).</description>
    <link>https://dev.to/samearth17</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: Samarth Mukhija</title>
      <link>https://dev.to/samearth17</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/samearth17"/>
    <language>en</language>
    <item>
      <title>I Built SlothFlow AI: A Local-First AI Assistant That Turns Brain Dumps Into Action Plans 🦥</title>
      <dc:creator>Samarth Mukhija</dc:creator>
      <pubDate>Sun, 25 Oct 2026 13:12:31 +0000</pubDate>
      <link>https://dev.to/samearth17/i-built-slothflow-ai-a-local-first-ai-assistant-that-turns-brain-dumps-into-action-plans-2a8c</link>
      <guid>https://dev.to/samearth17/i-built-slothflow-ai-a-local-first-ai-assistant-that-turns-brain-dumps-into-action-plans-2a8c</guid>
      <description>&lt;p&gt;We all have those days.&lt;/p&gt;

&lt;p&gt;You have assignments to finish, projects to build, emails to reply to, interviews to prepare for, and about twenty other things running through your head.&lt;/p&gt;

&lt;p&gt;You know what you need to do. The hard part is figuring out where to start.&lt;/p&gt;

&lt;p&gt;I wanted to build something that could help with that problem, so for the Hacktoberfest DEV Challenge Week 3, I built SlothFlow AI — a local-first productivity assistant designed to turn overwhelming brain dumps into manageable action plans.&lt;/p&gt;

&lt;p&gt;What is SlothFlow AI?&lt;/p&gt;

&lt;p&gt;SlothFlow AI follows a simple idea:&lt;/p&gt;

&lt;p&gt;Do less. Get more done.&lt;/p&gt;

&lt;p&gt;Instead of spending time organizing every thought manually, you can write everything down in plain language and let SlothFlow turn those notes into a draft task plan.&lt;/p&gt;

&lt;p&gt;The goal isn't to create another chatbot that tells you to be productive. It's to build a practical tool that helps you take the next step.&lt;/p&gt;

&lt;p&gt;What can it do?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Turn brain dumps into action plans&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Write something like:&lt;/p&gt;

&lt;p&gt;I need to finish my project report by tomorrow, prepare for a backend interview, reply to my mentor, and organize my downloads folder.&lt;/p&gt;

&lt;p&gt;SlothFlow converts your notes into individual tasks, suggests priorities, and provides estimated completion times.&lt;/p&gt;

&lt;p&gt;You can review the results and choose which tasks to save.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Manage tasks in one place&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Once saved, tasks appear in your workspace, where you can:&lt;/p&gt;

&lt;p&gt;Track pending and completed tasks.&lt;/p&gt;

&lt;p&gt;View estimated time remaining.&lt;/p&gt;

&lt;p&gt;Mark tasks as complete.&lt;/p&gt;

&lt;p&gt;Delete tasks you no longer need.&lt;/p&gt;

&lt;p&gt;Add new tasks manually.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Start fresh with Daily Reset&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Daily Reset view summarizes your unfinished work and estimated time requirements.&lt;/p&gt;

&lt;p&gt;Rather than treating unfinished tasks as failures, the idea is to make it easier to review them and choose a realistic next step.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run AI locally&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One of the decisions I made while building SlothFlow was to support local AI inference through Ollama.&lt;/p&gt;

&lt;p&gt;When a compatible local model is available, SlothFlow uses it to generate a more contextual task plan. If Ollama isn't available, a built-in rules-based fallback can still produce a basic checklist.&lt;/p&gt;

&lt;p&gt;This means you can try the application without an API key or a paid AI service.&lt;/p&gt;

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

&lt;p&gt;The project uses a lightweight stack:&lt;/p&gt;

&lt;p&gt;Python — application logic&lt;/p&gt;

&lt;p&gt;FastAPI — REST API and backend&lt;/p&gt;

&lt;p&gt;Ollama — optional local LLM inference&lt;/p&gt;

&lt;p&gt;SQLite — local task persistence&lt;/p&gt;

&lt;p&gt;HTML, CSS and JavaScript — responsive frontend&lt;/p&gt;

&lt;p&gt;Pytest — automated testing&lt;/p&gt;

&lt;p&gt;The backend exposes endpoints for generating plans, creating and retrieving tasks, updating task status, deleting tasks, and generating the Daily Reset summary.&lt;/p&gt;

&lt;p&gt;I also added input validation and made the AI output pass through a validation step before the application uses it.&lt;/p&gt;

&lt;p&gt;Why local-first?&lt;/p&gt;

&lt;p&gt;Personal notes can contain unfinished ideas, work details, and other information people might not want to send to an external AI service.&lt;/p&gt;

&lt;p&gt;SlothFlow is designed to keep task storage on the machine running the application and to use a locally configured Ollama server for AI inference.&lt;/p&gt;

&lt;p&gt;There is no external AI API requirement.&lt;/p&gt;

&lt;p&gt;Of course, local-first doesn't automatically mean every deployment is secure. The current project is a local prototype, and a public deployment would need additional security measures.&lt;/p&gt;

&lt;p&gt;Challenges along the way&lt;/p&gt;

&lt;p&gt;One of the interesting parts of this project was making the application useful even when the AI model wasn't available.&lt;/p&gt;

&lt;p&gt;Rather than making the entire application depend on a running LLM, I implemented a fallback rules engine. This keeps the core workflow accessible while allowing users to enable local AI when they want more contextual results.&lt;/p&gt;

&lt;p&gt;I also built the task management flow around review and confirmation: generated tasks remain drafts until the user chooses to save them.&lt;/p&gt;

&lt;p&gt;That distinction matters. AI-generated suggestions shouldn't silently become someone's to-do list.&lt;/p&gt;

&lt;p&gt;What's next?&lt;/p&gt;

&lt;p&gt;SlothFlow is an MVP, and there is plenty of room to improve it.&lt;/p&gt;

&lt;p&gt;Some features I'd like to explore next include:&lt;/p&gt;

&lt;p&gt;Smarter task decomposition and dependency detection.&lt;/p&gt;

&lt;p&gt;Better scheduling based on available time.&lt;/p&gt;

&lt;p&gt;Markdown export and import.&lt;/p&gt;

&lt;p&gt;More robust testing with different local models.&lt;/p&gt;

&lt;p&gt;Optional reminders and recurring tasks.&lt;/p&gt;

&lt;p&gt;Improved evaluation of task quality and time estimates.&lt;/p&gt;

&lt;p&gt;I'd also like to measure how much time the tool actually saves compared with organizing the same notes manually, rather than assuming that automation is automatically better.&lt;/p&gt;

&lt;p&gt;Try it and contribute&lt;/p&gt;

&lt;p&gt;I'm building SlothFlow as part of the Hacktoberfest DEV Challenge, and I'd love feedback from developers working on local AI, productivity tools, and open-source applications.&lt;/p&gt;

&lt;p&gt;GitHub repository:&lt;a href="https://github.com/Samearth17/slothflow.ai" rel="noopener noreferrer"&gt;https://github.com/Samearth17/slothflow.ai&lt;/a&gt;&lt;br&gt;
Youtube Demo Video:&lt;a href="https://youtu.be/CaHC42t-EOk" rel="noopener noreferrer"&gt;https://youtu.be/CaHC42t-EOk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you try it, I'd love to hear what works, what doesn't, and which repetitive task you'd want to automate next.&lt;/p&gt;

&lt;p&gt;If you'd like to contribute, ideas around better task extraction, accessibility, testing, and local model support would be especially welcome.&lt;/p&gt;

&lt;p&gt;Final thoughts&lt;/p&gt;

&lt;p&gt;I think the most useful AI applications aren't necessarily the ones that do the most complicated things. Sometimes, they're the ones that remove a small but persistent source of friction from everyday life.&lt;/p&gt;

&lt;p&gt;That's what I wanted to explore with SlothFlow AI.&lt;/p&gt;

&lt;p&gt;Less time organizing the work.&lt;/p&gt;

&lt;p&gt;More time actually doing it.&lt;/p&gt;

&lt;p&gt;Thanks for reading! 🦥&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>ai</category>
      <category>hf26challenge</category>
      <category>opensource</category>
    </item>
    <item>
      <title>SoloSprint AI: Turning Side-Hustle Ideas Into Action With Local Open-Source AI</title>
      <dc:creator>Samarth Mukhija</dc:creator>
      <pubDate>Sun, 18 Oct 2026 08:45:13 +0000</pubDate>
      <link>https://dev.to/samearth17/solosprint-ai-turning-side-hustle-ideas-into-action-with-local-open-source-ai-525b</link>
      <guid>https://dev.to/samearth17/solosprint-ai-turning-side-hustle-ideas-into-action-with-local-open-source-ai-525b</guid>
      <description>&lt;p&gt;A lot of developers and students have skills they could turn into a side hustle. The difficult part is often deciding what to sell, how to price it, who to approach, and what the first steps should be.&lt;/p&gt;

&lt;p&gt;For Hacktoberfest's Side Hustle challenge, I built SoloSprint AI a privacy-first assistant designed to help turn an early business idea into an actionable plan.&lt;/p&gt;

&lt;p&gt;What is SoloSprint AI?&lt;/p&gt;

&lt;p&gt;SoloSprint AI helps users turn their skills and ideas into a structured starting point for a side business. It is built around local AI inference rather than requiring users to send their ideas to a hosted AI service.&lt;/p&gt;

&lt;p&gt;The goal is simple: make AI assisted planning more accessible to people who are just getting started.&lt;/p&gt;

&lt;p&gt;See it in action&lt;/p&gt;

&lt;p&gt;Demo video: &lt;a href="https://youtu.be/ESk3F5Y83bQ" rel="noopener noreferrer"&gt;https://youtu.be/ESk3F5Y83bQ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source code: &lt;a href="https://github.com/Samearth17/SoloSprint-AI" rel="noopener noreferrer"&gt;https://github.com/Samearth17/SoloSprint-AI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How it works&lt;/p&gt;

&lt;p&gt;The project uses Python and FastAPI for the application backend, with Ollama providing access to a local open-weight language model.&lt;/p&gt;

&lt;p&gt;The intended workflow is straightforward:&lt;/p&gt;

&lt;p&gt;Describe a side hustle idea and your skills.&lt;/p&gt;

&lt;p&gt;Generate a structured plan with practical next steps.&lt;/p&gt;

&lt;p&gt;Use that starting point to think through your offer, pricing, and client outreach.&lt;/p&gt;

&lt;p&gt;The application is designed to run locally, allowing users to experiment without making a third-party AI API a required part of the workflow.&lt;/p&gt;

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

&lt;p&gt;For me, open source AI is exciting because it gives developers more control over the tools they build.&lt;/p&gt;

&lt;p&gt;Running inference locally can help keep personal ideas and early client briefs on a user's own machine. Open model ecosystems also make it easier to experiment with different models and adapt a project to different hardware, budgets, and needs.&lt;/p&gt;

&lt;p&gt;That flexibility matters for students, independent developers, and freelancers who want to experiment without immediately taking on the costs or dependencies of a hosted AI service.&lt;/p&gt;

&lt;p&gt;Built with&lt;/p&gt;

&lt;p&gt;Python&lt;/p&gt;

&lt;p&gt;FastAPI&lt;/p&gt;

&lt;p&gt;Ollama&lt;/p&gt;

&lt;p&gt;HTML, CSS, and JavaScript&lt;/p&gt;

&lt;p&gt;An open-weight language model&lt;/p&gt;

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

&lt;p&gt;Building SoloSprint AI reinforced the importance of making AI useful for a specific problem rather than adding a model just for the sake of using one.&lt;/p&gt;

&lt;p&gt;I also had to work through local environment and dependency issues while getting the application running. That is part of building software too: getting from an idea to something another person can actually run.&lt;/p&gt;

&lt;p&gt;What's next?&lt;/p&gt;

&lt;p&gt;I would like to continue improving the user experience, add more flexible output formats, and make it easier for other developers to contribute.&lt;/p&gt;

&lt;p&gt;Feedback and suggestions are welcome in the GitHub repository.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>hf26challenge</category>
      <category>hacktoberfest</category>
      <category>devchallenge</category>
    </item>
    <item>
      <title>🌿 FieldLens AI: A Local AI Explorer That Gets You Outside</title>
      <dc:creator>Samarth Mukhija</dc:creator>
      <pubDate>Sun, 11 Oct 2026 15:04:24 +0000</pubDate>
      <link>https://dev.to/samearth17/fieldlens-ai-a-local-ai-explorer-that-gets-you-outside-34h0</link>
      <guid>https://dev.to/samearth17/fieldlens-ai-a-local-ai-explorer-that-gets-you-outside-34h0</guid>
      <description>&lt;p&gt;We spend so much of our time looking at screens that sometimes we forget to look at what's around us.&lt;/p&gt;

&lt;p&gt;A walk through a park can become an opportunity to observe birds, compare leaves, notice insects, and ask questions about the environment. But getting started can be surprisingly difficult when we don't know what to look for.&lt;/p&gt;

&lt;p&gt;That's the idea behind FieldLens AI — an AI-powered nature exploration project designed to turn ordinary outdoor walks into small discovery missions.&lt;/p&gt;

&lt;p&gt;I built it for the Hacktoberfest Week 1 challenge, whose theme is Touch Grass: use open-source AI to encourage people to spend less time on screens and more time in the real world.&lt;/p&gt;

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

&lt;p&gt;FieldLens AI helps users plan short nature exploration sessions based on their available time, environment, and interests.&lt;/p&gt;

&lt;p&gt;The project focuses on making outdoor discovery accessible rather than overwhelming.&lt;/p&gt;

&lt;p&gt;The main features include:&lt;/p&gt;

&lt;p&gt;Nature mission planning: Create exploration activities based on the time available and the environment.&lt;/p&gt;

&lt;p&gt;Personalized discovery: Tailor activities to interests such as plants, birds, insects, trees, and biodiversity.&lt;/p&gt;

&lt;p&gt;Field journal: Record observations and reflections for later.&lt;/p&gt;

&lt;p&gt;Screen-free mode: Keep the focus on the outdoor experience instead of prolonged phone use.&lt;/p&gt;

&lt;p&gt;Local-first architecture: Use browser-local storage for personal journal entries, avoiding the need to send them to a remote journal service.&lt;/p&gt;

&lt;p&gt;The goal is simple: use technology to help people engage with the world around them, then encourage them to put the technology away.&lt;/p&gt;

&lt;p&gt;🎬 Demo&lt;/p&gt;

&lt;p&gt;Watch FieldLens AI in action: [INSERT YOUR VIDEO LINK HERE]&lt;/p&gt;

&lt;p&gt;The demo walks through the application, from generating a nature mission to recording an observation in the field journal.&lt;/p&gt;

&lt;p&gt;💻 Source Code&lt;/p&gt;

&lt;p&gt;The project is available on GitHub:&lt;/p&gt;

&lt;p&gt;FieldLens AI — GitHub Repository&lt;/p&gt;

&lt;p&gt;You can explore the implementation, review the source code, and follow the setup instructions in the repository's README.&lt;/p&gt;

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

&lt;p&gt;The application uses Python and FastAPI for the backend, with HTML, CSS, and JavaScript for the frontend.&lt;/p&gt;

&lt;p&gt;The AI component is built around Hugging Face Transformers and a locally runnable open-weight text-generation model. The intention is to generate useful, context-aware nature missions without depending on a paid, hosted AI API.&lt;/p&gt;

&lt;p&gt;The application also supports fallback missions so that the core experience remains usable when local model inference is unavailable.&lt;/p&gt;

&lt;p&gt;An important implementation detail: local model output and fallback output must remain clearly distinguishable. A fallback response should never be presented as a result generated by the model.&lt;/p&gt;

&lt;p&gt;The field journal uses browser local storage, allowing observations to persist across page reloads without creating an account or sending journal content to a remote service.&lt;/p&gt;

&lt;p&gt;This architecture keeps the project relatively lightweight while demonstrating how open-weight AI can be integrated into an everyday application.&lt;/p&gt;

&lt;p&gt;🔓 Why Open Innovation Matters&lt;/p&gt;

&lt;p&gt;For this project, open innovation is about more than avoiding API costs.&lt;/p&gt;

&lt;p&gt;Using an open-weight model with a local inference workflow gives developers greater control over where inference happens, which model is used, and how the application behaves.&lt;/p&gt;

&lt;p&gt;It also provides an opportunity to experiment, inspect the implementation, change the model, and build on existing tools without making a paid hosted AI service the foundation of the product.&lt;/p&gt;

&lt;p&gt;There are still trade-offs. Local models require storage and computing resources, their output quality varies, and a model must be downloaded before it can be used without an internet connection.&lt;/p&gt;

&lt;p&gt;The privacy benefit also depends on how the application is implemented. Local inference does not automatically make every part of an application private, so keeping journal data local and avoiding unnecessary data collection are important design decisions.&lt;/p&gt;

&lt;p&gt;For a nature explorer, this approach makes sense: the AI should help prepare the experience, while the actual experience happens outside the screen.&lt;/p&gt;

&lt;p&gt;🌳 What I Learned&lt;/p&gt;

&lt;p&gt;Building FieldLens AI reinforced an important lesson: adding an AI model to an application is only one part of creating a useful AI product.&lt;/p&gt;

&lt;p&gt;The application still needs understandable interactions, sensible fallbacks, clear status reporting, data handling that matches its privacy claims, and a user experience that serves the underlying purpose.&lt;/p&gt;

&lt;p&gt;I also wanted the concept to encourage a healthier relationship with technology. A successful outdoor session should leave someone with something they noticed or learned, not simply more time spent interacting with an app.&lt;/p&gt;

&lt;p&gt;There is room to improve the project further, including richer observation workflows and additional ways to support nature learning without making unsupported claims about species identification.&lt;/p&gt;

&lt;p&gt;🚀 Try It&lt;/p&gt;

&lt;p&gt;Explore the source code, follow the installation instructions in the README, and try creating a short outdoor discovery mission.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Samearth17/fieldlens-ai" rel="noopener noreferrer"&gt;https://github.com/Samearth17/fieldlens-ai&lt;/a&gt;&lt;br&gt;
YouTube : &lt;a href="https://youtu.be/YfBh3Mf1YRI" rel="noopener noreferrer"&gt;https://youtu.be/YfBh3Mf1YRI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you try it on a walk, I'd love to hear what you discover.&lt;/p&gt;

&lt;p&gt;Thanks for reading, and happy Hacktoberfest! 🌿&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
      <category>ai</category>
      <category>opensource</category>
    </item>
    <item>
      <title>I Built a Private AI Scam Detector for a Friend with Local Open-Source AI</title>
      <dc:creator>Samarth Mukhija</dc:creator>
      <pubDate>Sun, 04 Oct 2026 10:44:50 +0000</pubDate>
      <link>https://dev.to/samearth17/i-built-a-private-ai-scam-detector-for-a-friend-with-local-open-source-ai-48de</link>
      <guid>https://dev.to/samearth17/i-built-a-private-ai-scam-detector-for-a-friend-with-local-open-source-ai-48de</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the Hacktoberfest Weekend Challenge: Build for a Friend.&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Have you ever received a message that made you stop and think:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Is this actually legitimate, or is this a scam?"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That was the problem I wanted to solve for a friend.&lt;/p&gt;

&lt;p&gt;Instead of building another generic AI chatbot, I built &lt;strong&gt;ScamShield Local&lt;/strong&gt; a small, privacy focused AI tool that gives you a second opinion when a message looks suspicious.&lt;/p&gt;

&lt;p&gt;You paste a suspicious SMS, WhatsApp message, email, job offer, payment request, or investment message into the application, and it analyzes the text and gives you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a risk level&lt;/li&gt;
&lt;li&gt;a risk score&lt;/li&gt;
&lt;li&gt;the warning signs it detected&lt;/li&gt;
&lt;li&gt;recommended actions&lt;/li&gt;
&lt;/ul&gt;

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

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pause before you trust.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

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

&lt;p&gt;I wanted to build something that could actually be useful to someone I know.&lt;/p&gt;

&lt;p&gt;Scam messages are becoming increasingly convincing. They often create urgency, impersonate companies or people, promise unrealistic rewards, or ask for sensitive information.&lt;/p&gt;

&lt;p&gt;The problem is not always knowing that something &lt;em&gt;feels&lt;/em&gt; suspicious.&lt;/p&gt;

&lt;p&gt;The problem is understanding &lt;strong&gt;why&lt;/strong&gt; it is suspicious.&lt;/p&gt;

&lt;p&gt;That's what ScamShield tries to help with.&lt;/p&gt;

&lt;p&gt;Instead of just saying:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"This is a scam."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;it explains the signals that made the message risky and gives the user safer next steps.&lt;/p&gt;

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

&lt;p&gt;Here is a short demonstration of ScamShield Local:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/zkFD0ySIWoI" rel="noopener noreferrer"&gt;https://youtu.be/zkFD0ySIWoI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the demo, I paste a suspicious message into the application and let the local AI analyse it.&lt;/p&gt;

&lt;p&gt;The application identifies the warning signs, produces a risk score, and recommends what the user should do next.&lt;/p&gt;

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

&lt;p&gt;The complete project is available here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Samearth17/scamshield-local" rel="noopener noreferrer"&gt;https://github.com/Samearth17/scamshield-local&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I wanted the application to be small, fast, and easy to run locally.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;FastAPI&lt;/strong&gt; for the backend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HTML, CSS, and JavaScript&lt;/strong&gt; for the frontend&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ollama&lt;/strong&gt; for local AI inference&lt;/li&gt;
&lt;li&gt;an &lt;strong&gt;open-weight model&lt;/strong&gt; running locally&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pydantic&lt;/strong&gt; for structured response validation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pytest&lt;/strong&gt; for automated testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The architecture looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Browser
   |
   | POST /analyze
   v
FastAPI
   |
   | Local request
   v
Ollama + Open-Weight Model
   |
   v
Structured JSON
   |
   v
Risk Analysis
   |
   +-- Risk Level
   +-- Risk Score
   +-- Red Flags
   +-- Recommended Actions
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The application doesn't require a hosted AI API or a database.&lt;/p&gt;

&lt;p&gt;The message is sent to the local FastAPI application, which communicates with Ollama running on the same machine.&lt;/p&gt;

&lt;p&gt;I also added validation and safeguards around the model response so that malformed output does not directly reach the user.&lt;/p&gt;

&lt;p&gt;The risk score is normalized so that the displayed score always agrees with the risk level. For example, a HIGH-risk result cannot end up displaying something contradictory like &lt;code&gt;10/100&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Local Open-Source AI?
&lt;/h2&gt;

&lt;p&gt;This is probably my favorite part of the project.&lt;/p&gt;

&lt;p&gt;A person might paste a very personal message into a scam detector. It could contain a phone number, someone's name, payment information, or part of a private conversation.&lt;/p&gt;

&lt;p&gt;I did not want the basic workflow to require sending that information to a third party AI API.&lt;/p&gt;

&lt;p&gt;With local inference, the model can run directly on the user's machine.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;the message doesn't need to be sent to a third-party AI provider&lt;/li&gt;
&lt;li&gt;the user has more control over their data&lt;/li&gt;
&lt;li&gt;there is no requirement for a hosted AI API key&lt;/li&gt;
&lt;li&gt;the underlying model can be changed for another compatible open-weight model&lt;/li&gt;
&lt;li&gt;the application can continue to work independently of a hosted AI service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For this particular problem, &lt;strong&gt;open and local AI isn't just a technical choice it is part of the product's privacy story.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Building It With AI
&lt;/h2&gt;

&lt;p&gt;I also used AI coding tools during development to accelerate implementation, debugging, testing, and iteration.&lt;/p&gt;

&lt;p&gt;But the goal wasn't to simply generate a chatbot and call it a project.&lt;/p&gt;

&lt;p&gt;The interesting work was deciding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what information the user actually needs&lt;/li&gt;
&lt;li&gt;how the model should structure its response&lt;/li&gt;
&lt;li&gt;how to handle malformed model output&lt;/li&gt;
&lt;li&gt;how to keep the risk score consistent&lt;/li&gt;
&lt;li&gt;what safety guidance should appear for high-risk messages&lt;/li&gt;
&lt;li&gt;what the application should explicitly &lt;em&gt;not&lt;/em&gt; claim&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That distinction became especially important while building a tool that deals with potentially sensitive messages.&lt;/p&gt;

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

&lt;p&gt;One thing I learned from this project is that getting an LLM to produce an answer is relatively easy.&lt;/p&gt;

&lt;p&gt;Getting that answer to be &lt;strong&gt;useful, predictable, and responsible&lt;/strong&gt; is much harder.&lt;/p&gt;

&lt;p&gt;I ended up spending significant effort on things that aren't immediately visible in the UI:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;structured output validation&lt;/li&gt;
&lt;li&gt;malformed-response handling&lt;/li&gt;
&lt;li&gt;input validation&lt;/li&gt;
&lt;li&gt;risk-score normalization&lt;/li&gt;
&lt;li&gt;safety guidance&lt;/li&gt;
&lt;li&gt;automated tests&lt;/li&gt;
&lt;li&gt;clear limitations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I also learned that a small project can sometimes make a stronger demo than an overly ambitious one.&lt;/p&gt;

&lt;p&gt;Instead of building a huge platform, I focused on solving one problem well.&lt;/p&gt;

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

&lt;p&gt;ScamShield is not a guarantee that a message is fraudulent or safe.&lt;/p&gt;

&lt;p&gt;It only analyzes the text provided to it. It does not independently verify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;sender identity&lt;/li&gt;
&lt;li&gt;URLs or their destinations&lt;/li&gt;
&lt;li&gt;attachments&lt;/li&gt;
&lt;li&gt;account activity&lt;/li&gt;
&lt;li&gt;transaction history&lt;/li&gt;
&lt;li&gt;the wider conversation context&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A LOW risk result does &lt;strong&gt;not&lt;/strong&gt; mean that a message is safe.&lt;/p&gt;

&lt;p&gt;The application is intended to provide an additional perspective and encourage users to verify important requests independently.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built for a Friend
&lt;/h2&gt;

&lt;p&gt;The whole reason this project exists is that I wanted to build something practical for someone I know.&lt;/p&gt;

&lt;p&gt;The workflow is intentionally simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Paste → Analyze → Understand → Make a safer decision&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No complicated setup in the interface.&lt;/p&gt;

&lt;p&gt;No account.&lt;/p&gt;

&lt;p&gt;No database.&lt;/p&gt;

&lt;p&gt;No need to send the message to a hosted AI API.&lt;/p&gt;

&lt;p&gt;Just a small local AI tool that can help someone stop for a moment before clicking, paying, or sharing sensitive information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This started as a weekend challenge, but I liked the idea behind it: &lt;strong&gt;build technology for a person, not just for a portfolio.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;ScamShield Local is small, but it gave me a chance to explore local AI, structured LLM outputs, safety-focused UX, and privacy-aware application design in one project.&lt;/p&gt;

&lt;p&gt;If you try it out, I would genuinely love to hear:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What would you want an AI scam detector to explain before you decide whether to trust a message?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/Samearth17/scamshield-local" rel="noopener noreferrer"&gt;https://github.com/Samearth17/scamshield-local&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Demo: &lt;a href="https://youtu.be/zkFD0ySIWoI" rel="noopener noreferrer"&gt;https://youtu.be/zkFD0ySIWoI&lt;/a&gt;&lt;/p&gt;

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