My friend almost got phished β€” so I built him a local AI bodyguard in one weekend A developer built PhishGuard, an offline phishing checker that combines a deterministic heuristic engine (~15 signals) with a local LLM second opinion via Ollama and the open-weight gemma3:2b model, returning SAFE, SUSPICIOUS or PHISHING verdicts with a readable point-by-point score. The tool extracts links from pasted URLs or full messages, catches look-alike domains and display-name/sender mismatches, and makes zero network calls so suspicious content never leaves the user's machine. When Ollama is unavailable it falls back to the rules engine alone. πŸ“… DEV Weekend Challenge: Build for a Friend Β· Hacktoberfest 2026 πŸ”— Repo: https://github.com/shri7-lab/phishguard https://github.com/shri7-lab/phishguard 🌐 Live demo: https://phishguard-oi4y.onrender.com https://phishguard-oi4y.onrender.com gemma3:2b runs as the local AI second-opinion through Ollama Friday night, 11:47 PM. A friend forwards this on WhatsApp: "URGENT: Your IES College fee payment FAILED. Registration will be cancelled in 24 hours. Re-verify now: bit.ly/fee-refund-2026 " He was about to tap it. He's not careless with tech, he was just tired. And honestly that message would fool half our college group β€” it looks official. I told him to send it to me first. Then I opened a couple of those "is this link safe?" websites... and stopped midway. Wait β€” I'm about to paste a suspicious link into some random cloud service? Now their server has the link, my query, everything. That's like a cop announcing his own address during a raid. Anyway. Closed those tabs, told him: give me the weekend. PhishGuard β€” a phishing checker that doesn't phone home. Paste a URL, or dump the whole message β€” WhatsApp forward, SMS, Discord DM, whatever. You get one of three verdicts βœ… SAFE / 🟠 SUSPICIOUS / πŸ”΄ PHISHING plus the maths behind it: Verdict : πŸ”΄ PHISHING score 75/100 link: http://192.168.0.1/bank-login-verify?otp=update-account +35p raw IP address instead of a real domain +10p plain HTTP β€” no encryption +30p scare/urgency keywords: account, bank, login, otp, update, verify No black box. Every point maps to a reason an actual human can read. Scams in 2026 aren't just dirty URLs anymore though, so the scanner handles those too β€” and all of this runs offline, zero network calls: paypal-secure.tk , g00gle-login.com digits get normalized, g00gle β†’ google , and Cyrillic look-alikes like gΠΎΠΎgle get caught too http://... PayPal Security