<?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: Md Shahbaz Hashmi Ansari</title>
    <description>The latest articles on DEV Community by Md Shahbaz Hashmi Ansari (@md_shahbazhashmiansari_).</description>
    <link>https://dev.to/md_shahbazhashmiansari_</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%2F4159211%2F32db28fc-cfd2-4fe6-88e7-f5f29e0b0a6b.jpg</url>
      <title>DEV Community: Md Shahbaz Hashmi Ansari</title>
      <link>https://dev.to/md_shahbazhashmiansari_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/md_shahbazhashmiansari_"/>
    <language>en</language>
    <item>
      <title>Thik Achhe? Building an offline, multilingual scam checker for my friend's grandfather</title>
      <dc:creator>Md Shahbaz Hashmi Ansari</dc:creator>
      <pubDate>Sun, 04 Oct 2026 18:15:08 +0000</pubDate>
      <link>https://dev.to/md_shahbazhashmiansari_/thik-achhe-building-an-offline-multilingual-scam-checker-for-my-friends-grandfather-2b3h</link>
      <guid>https://dev.to/md_shahbazhashmiansari_/thik-achhe-building-an-offline-multilingual-scam-checker-for-my-friends-grandfather-2b3h</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;My friend's grandfather retired a few years ago and now spends a lot of time on his phone and the family desktop. Recently, he received a terrifying SMS claiming his bank account would be blocked by evening unless he clicked a link to complete his KYC. He almost called the number. His family keeps telling him not to click suspicious links, but he is genuinely scared of ignoring a real bank message. He also rightly refuses to paste his messages into random internet chatbots because they contain real bank account numbers and OTPs.&lt;/p&gt;

&lt;p&gt;To solve this, I built "Thik Achhe?" (which translates to "Is this okay?"). It is a simple web page that can be installed on his phone or desktop. He just pastes the message, taps one massive button, and gets a clear Red, Yellow, or Green answer in his native language (it supports English, Hindi, Bengali, and Nepali). It gives him one simple line on why it was flagged, and one line on what he should do next.&lt;/p&gt;

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

&lt;p&gt;You can try it live here: &lt;a href="https://thik-achhe.devloper.xyz/" rel="noopener noreferrer"&gt;https://thik-achhe.devloper.xyz/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Watch a quick demo of how it works: &lt;a href="https://youtube.com/shorts/0lnH-yV-_rI" rel="noopener noreferrer"&gt;https://youtube.com/shorts/0lnH-yV-_rI&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;You can find the full source code in my GitHub repository here: &lt;a href="https://github.com/ShahbazCoder1/Thik-Achhe" rel="noopener noreferrer"&gt;https://github.com/ShahbazCoder1/Thik-Achhe&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;I built the application using Next.js (App Router), Tailwind CSS, and TypeScript. &lt;/p&gt;

&lt;p&gt;The core of the project relies on the open-weight &lt;code&gt;gemma-4-E2B-it-web.litertlm&lt;/code&gt; model. Instead of hosting the model on a server, I integrated Google's &lt;code&gt;@mediapipe/tasks-genai&lt;/code&gt; library to run the LLM inference entirely inside the client's browser. &lt;/p&gt;

&lt;p&gt;The application uses a two-step verification process:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A hardcoded TypeScript rules engine instantly checks the text for known scam patterns like URL shorteners, panic keywords ("blocked within 24 hours"), or explicit asks for an OTP.&lt;/li&gt;
&lt;li&gt;The message is then passed to the local Gemma model with a strict prompt demanding a structured JSON response in the user's selected language. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If the rules engine finds a hard red flag, it permanently locks the verdict to "Red" to ensure the AI can never accidentally hallucinate and mark a dangerous message as safe.&lt;/p&gt;

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

&lt;p&gt;Open innovation was absolutely critical for this project. If I had to rely on a closed API, I would be taking a retired senior citizen's most sensitive text messages (containing real one time passwords and bank digits) and beaming them to a third-party server. &lt;/p&gt;

&lt;p&gt;By utilizing open-weight models like Gemma and client-side inference tools like MediaPipe, his messages never leave his physical device. It is incredibly fast, perfectly secure, and costs absolutely nothing to host or maintain. A closed system would have made this project either a massive privacy violation or financially unsustainable.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Best Use of Gemma&lt;/li&gt;
&lt;/ul&gt;

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