Proof of work · In development
imvo
Imvo — isiXhosa and isiZulu for “opinion, a point of view.” A social news platform for a multilingual region: contributors submit, editors vet, and readers get local news in whatever language they choose. This is a fully-specified, pre-launch product — no live demo yet, shown here as designed, not as built.
The problem it's built for
Trustworthy, locally-sourced news for under-served language communities, without paying to translate the same article for every reader separately. Contributors are citizen journalists and community reporters who have a story; editors are a newsroom that needs an audit trail before anything goes live; readers want local news, today, in their own language, with no paywall and no app install.
No screenshots here on purpose — there's no live product yet to show honestly. What follows is the design.
The core mechanism
A translation is produced once per (article version, language) and reused for every later reader — a Redis single-flight lock stops concurrent readers from triggering duplicate translation jobs, and no LLM or MT call ever sits on a reader's request path.
Block-level caching
Articles are stored as ordered, stable-ID content blocks, so a minor edit re-translates only the changed blocks — not the whole piece.
Pre-warmed on publish
A story publishes into its region's default languages at low priority before the first reader ever asks for it.
Hybrid engine routing
Cheap MT for high-resource language pairs; an LLM for low-resource Nguni/Sotho pairs and sensitive pieces. A persistent “Translated by AI” label, a one-tap toggle to the original, and an editor lock so the pipeline never silently overwrites a human-reviewed translation.
An editorial workflow with a real audit trail
Draft → submit → review queue (claim / comment / request changes / reject / approve) → publish or schedule → update, unpublish, or correction. Every state change writes an immutable editorial_event — actor, timestamp, from→to status, note — alongside verified contributor identity, as a deliberate defamation-risk mitigation for a platform publishing under real bylines.
Built for the box it runs on
The whole stack is designed to run on a single 1 OCPU / 16 GB, CPU-only host — media and inference are deliberately kept off-box, via external CDN and external translation APIs. Proposed stack: Next.js (App Router, SSR/ISR), PostgreSQL 17 + PostGIS for the geo feed, Redis + BullMQ, a Node worker, S3-compatible object storage — not yet locked.