Ward Project Technology Assessment
in ward project, with progress so far, tell me whats the best of use of technology so far. Also according to previously planned, which are the technologies we are using, and which one yet to touch, give me a tabular data with rating
I read Ward's plan documents (PLAN.md, PHASES.md, ROADMAP.md), the latest scorecard from 2026-10-31, and the code itself to check each technology. Ratings are my judgement of how much each one has delivered so far, out of 10.
Best use of technology so far: Ward Lite
The original plan was to run Gemma 3 1B on phones through wllama (Gemma compiled to WebAssembly). In testing it called real insults harmless, so the plan changed. Instead:
- Gemma 4 E4B acted as the teacher. It wrote and labelled synthetic kid-style chats in English, Roman Urdu, Hinglish and Bangla, including friendly banter as examples that should not be flagged.
multilingual-e5-smallwas trained on that data plus public datasets to give two scores per message: hurtful and danger. It was then trimmed to the words these languages use and shrunk to a 37.7 MB int8 ONNX file.- It runs inside the app through ONNX Runtime Web, offline, in about 8 ms per message, on every build: web, desktop, Android and the Discord bot.
- It can only raise a warning, never clear one. That keeps a small model from hiding real danger.
- Training data is checked against the test sets. A leak check stops any message the scorecard or the red-team set (the hand-written tricky messages) tests on from getting into training.
What it changed on a phone with no big model:
| Language | Word lists alone | Word lists + Ward Lite |
|---|---|---|
| English | 10% of abuse caught | 85% |
| Roman Urdu | 59% | 83% |
| Bangla | 10% | 46% |
On Roman Urdu, a phone now comes close to Gemma 4 E4B on a laptop (86%). This piece answers the brief's "works where resources are scarcest" most directly: the cheapest phone gets most of the protection.
Runners-up: Gemma built into the desktop app (via node-llama-cpp, a SHA-256-checked download, no Ollama needed), and moving reports to a counsellor as a loop of QR codes with no network at all.
Planned technologies: what's in use
| Technology | Planned for | Status | Rating |
|---|---|---|---|
| Ward Lite (e5-small → int8 ONNX, ONNX Runtime Web) | Phase 1 (replaced the wllama plan) | ✅ Shipped on every build | 10 |
| Gemma 4 E4B via Ollama | Desktop reader, screenshot reading, teacher for the training data | ✅ In use, 86% on Roman Urdu | 9 |
| WebCrypto vault (AES-GCM + PBKDF2 PIN + SHA-256 per message) | Evidence vault | ✅ Shipped; also seals safety plans and case notes | 9 |
| QR-code report transfer | Counsellor mode | ✅ Shipped, with tests that decode every frame | 9 |
| llama.cpp (node-llama-cpp) inside Electron | One-click desktop | ✅ Shipped, CI-tested on 4 platforms. It can't read screenshots yet | 8 |
| Electron desktop | Desktop shell | ✅ Shipped, with lab mode and installers built in CI | 8 |
| Capacitor Android | Android shell | ✅ Shipped: share target, FLAG_SECURE (keeps Ward out of the recent-apps preview), APK sharing phone to phone | 8 |
| React + Vite + TypeScript | The UI | ✅ In use, full Urdu right-to-left | 8 |
| GitHub Actions | Builds and launch tests | ✅ Android emulator, desktop and test runs | 8 |
| Hugging Face (datasets, models, GGUF) | Eval and training | ✅ In use | 8 |
| Caseworker viewer (single offline HTML file) | Phase 4 | ✅ Shipped; checks report digests and flags tampering | 8 |
| Ollama | Desktop inference | ✅ First choice of reader on desktop | 8 |
| discord.js | Not in the original plan | ✅ Built: personal mode, plus an opt-in server mode | 7 |
| Entire | Auditable session checkpoints | ✅ Enabled (commit 7f8553f) | 7 |
| PDF report | Vault export | 🟡 Done as a print view plus a JSON report, not a real PDF | 7 |
Gemma 4 E2B via LiteRT-LM (GemmaPhonePlugin.kt) | Phone reader | 🟡 Built, but it scored 33%, so it only writes messages now. Not yet measured on a real phone | 6 |
| ElevenLabs | Read-aloud | 🟡 107 English clips shipped; Urdu blocked at 0 credits | 6 |
| Device speech (speechSynthesis) | Urdu read-aloud fallback | 🟡 Working; voice input is still listed as to-do | 5 |
| ShieldGemma 2B | Harassment classifier | 🟡 Kept only as a comparison baseline (14–19% caught) | 4 |
| Render | Static demo, viewer and docs | 🟡 Only a render.yaml for the Discord worker; nothing hosted | 3 |
Not touched yet
Here the rating is how much each would help Ward now, out of 10.
| Technology | Planned for | Status | Value now |
|---|---|---|---|
| Release signing + GitHub Release | First downloadable build | ❌ No tagged release yet; ROADMAP.md puts this first | 10 |
| Render static demo | Try-in-browser demo for judges | ❌ The config exists but isn't used for this | 8 |
| DigitalOcean GPU droplet | Training data at scale, scorecard reruns | ❌ Planned | 7 (Bangla is the weak spot) |
| Browserbase + SerpApi | Weekly check that platform report/block steps haven't changed | ❌ Planned | 6 |
| Play Store / F-Droid | Distribution | ❌ Not started | 6 |
| Tiger Data | Scorecard history across releases | ❌ Later | 4 |
| Temporal | Training pipeline that can resume | ❌ Later | 3 |
| Auth0 for AI Agents | Logins for Ward Annotate volunteers | ❌ Later (Ward Annotate isn't built) | 2 |
| Phase 6 keyboard | Pause before a hurtful message is sent | ❌ Waits on the safeguarding review | — |
Dropped on purpose: wllama with Gemma 3 1B (cleared real insults), and Tinker (credits ran out, so training happens on the laptop instead).
The biggest gap is distribution, not technology: nothing can be downloaded yet. After that, the weakest points are Bangla (46% caught on a phone) and confirming Gemma 4 E2B and Ward Lite on a real low-end phone.