Competitive audit
Full-site audit of kweli.mukoko.com against the platforms we are
actually competing with — Trustpilot, Google Business Profile (GBP) /
Maps, Yelp, Foursquare, TripAdvisor, the legacy African directories
(Brabys, Yellosa, Yellow Pages Kenya/SA), and Jiji’s classifieds
encroachment. Four lenses: doing well, missing, bugs, and
steal. First audited July 2026; re-scored mid-July 2026 after
the P0 wave (barstool #85) and P1 wave (barstool #86) shipped every
P0 and P1 from the original priority order.
The verdict in one paragraph
Section titled “The verdict in one paragraph”Kweli’s strategic position is genuinely unoccupied: no incumbent offers one canonical, claimable, verifiable page for every entity type (schools, NGOs, parks, government offices — not just businesses), a verification ladder that works without formal premises (GBP’s video-default verification requires signage and a till), a trust badge that travels across an ecosystem, African-language locales, or agent discoverability for African entities. The execution gap has now closed on the fundamentals: the review loop is live, the browse hierarchy (54 countries × 567 provinces × 21 categories × 15,316 venues — the incumbents’ entire SEO engine) exists and is indexed, owners edit their venues in-app, the chrome speaks Shona and Ndebele, and verification renders wherever a tier exists. What separates Kweli from the incumbents now is liquidity, not capability: review volume, photos, vouches and claimed profiles. The moat is real; the castle is built; it needs residents.
What we’re doing well
Section titled “What we’re doing well”- Any-entity canon. One canonical page per place — park, school, NGO, tech company — backed by the knowledge graph’s single-source-of-truth rule. Foursquare proved POI canonicalization is the durable asset; GBP still fights duplicate listings; nobody covers non-commercial entities. This is the core differentiator.
- A verification model built for African reality. The four-tier ladder (community/Terracotta → OTP/Cobalt → government/Gold → licensed/Tanzanite) with community vouching at tier 1 is the only model in the set that meets informal commerce (market stalls, home-based services) where it is.
- Portable trust. The kweli travels with the entity across the Mukoko ecosystem (nhimbe events, news, marketplace). Every incumbent’s badge is confined to its own surface.
- Agent readiness. OAuth discovery (RFC 9728/8414),
/auth.md, WebMCP tools. Only Yelp has anything comparable (its open-source MCP server) — and Yelp has no African data. - The technical spine. Server-component-first rendering (cheap on metered data), resilience/observability/rate-limiting primitives, architecture rules enforced by tests, Mzizi design-system contracts, real health probes, inline maps on every located venue.
- Sound trust posture by construction. Reads from a shared graph, writes through a platform API, verification decoupled from payment — the structural opposite of the “extortion” (Trustpilot/Yelp narratives) and “pay-to-rank” (TripAdvisor placements, directory pay-to-list) reputations that dog this industry.
The scoreboard
Section titled “The scoreboard”Condensed matrix (● strong ◐ partial ○ weak/none). “AfrDir” = legacy African directories composite.
| Capability | GBP | Yelp | Trustpilot | TripAdvisor | AfrDir | Jiji | Kweli today |
|---|---|---|---|---|---|---|---|
| Search + filters (city/category/open-now/price) | ● | ● | ○ | ● | ◐ | ● | ● (search, tags, city, nearest, browse facets) |
| City × category landing pages (SEO engine) | — | ●● | ◐ | ●● | ◐ | ● | ● live — /{locale}/{country}/{region}/{category} ×15,316 venues, JSON-LD + sitemap |
| Profile anatomy (photos/hours/menu/Q&A/posts/booking) | ● | ● | ○ | ● | ○ | ◐ | ◐→● (hours/phone/website/WhatsApp/mobile-money render; no Q&A/booking/menus yet) |
| Reviews written by users | ● | ● | ● | ● | ○ | ◐ | ● live loop (volume still ~0 — the growth job) |
| Fake-review defense (published program) | ◐ | ● | ● | ●● | ○ | ○ | ○ (designed, not published) |
| Owner claim → verify | ◐ video-default | ◐ | ◐ domain | ◐ | pay≈verified | phone | ●● 4-tier, badge renders page+lists+MCP+analytics |
| Badge portable across ecosystem | ○ | ○ | ○ | ○ | ○ | ○ | ●● unique |
| Non-business entities | ◐ pins only | ○ | ○ | ◐ tourism | ○ | ○ | ●● unique |
| Owner dashboard + analytics | ● | ● | ● | ● | ○ | ● | ● (in-app venue editing on the platform API; open analytics) |
| Embeddable badge/review widget | ◐ | ◐ | ●● TrustBox | ● | ○ | ○ | ○ |
| Agent/MCP surface | ◐ Gemini-gated | ●● open MCP | ○ | ○ | ○ | ○ | ●● own /mcp + WebMCP + OAuth discovery + open stats |
| African coverage/languages | ◐ / ○ | ○ | ○ | ◐ tourism | ◐ stale | ● / ○ | ● graph / ● chrome in sn/nd (content-level translation pending) |
What’s missing (table stakes, ranked by impact)
Section titled “What’s missing (table stakes, ranked by impact)”Shipped since the first audit (P0 wave #85 + P1 wave #86):
✅ working reviews (Vibe Check → platform API, plaintext bodies render)
· ✅ the browse hierarchy (country/region/category/venue pages, JSON-LD,
sitemap, 301s from /bars/[id]) · ✅ owner venue editing (in-app, on
the platform API, deny-by-default authz) · ✅ the new-user funnel
(AccountPending replaces the redirect loop) · ✅ visible verification
(effective tier = max of place + owning entity, rendered on pages,
lists, MCP and analytics) · ✅ real i18n (locale-aware links, rendered
switcher, sn/nd chrome).
Still open, ranked:
- Liquidity, not features. Review volume ~0, most venues photo-less, zero vouches, zero approved claims. The loops exist; they need seeding (missions, contribution prompts, owner outreach).
- Retention primitives. No saved lists, no follow, no notifications, no user profile. Nothing brings a visitor back.
- Q&A and remaining attributes. Mobile-money (
paymentAccepted) and WhatsApp CTA now render; GBP-style accessibility/identity attributes (wheelchair access, women-owned) and community Q&A are still missing. - Photos at scale. Upload exists but there’s no contribution prompt or mission loop.
- An embeddable kweli badge. Trustpilot’s TrustBox is its whole growth engine: businesses embed the widget, advertising the platform on their own sites and feeding SERP stars.
- Content-level translation. The chrome is sn/nd; venue
descriptions and editorial content are not (graph
translationssub-objects are unpopulated).
All bugs from the first audit are fixed and verified across the P0 wave (#85) and P1 wave (#86):
- Severity 1 (every venue): locale-correct JSON-LD
url/@idon canonical hierarchy URLs; telephone/website/hours wired through the mappers and rendering; visitor-facing sync buttons removed and the 410 admin sync page rebuilt on the real OSM seed. - Severity 2 (funnel + locale): AccountPending page replaces the
autoprovision redirect loop; locale-aware links everywhere (cards
included);
open_venuedeep-links resolve by slug and UUID via the/bars/[id]301 resolver;/verifytreats a missingisActiveflag as active. - Severity 3 (trust + polish): working
?q=SearchAction without losing home ISR; doctrine-correct linked breadcrumbs with valid BreadcrumbList; validLocalBusinessdefault type + ISOaddressCountry; per-section catches on all side-collection reads (one engagement-DB hiccup can’t 500 a venue page); the legacymukoko_tokenunverified-JWT seam deleted (getPersonIdis WorkOSwithAuth()-only); honest help page; en-only sitemap; route-level loading states; padded maskable app icons (web-app installs no longer clip).
New findings get triaged through the review gate on every merge
(docs/review.md in the repo) rather than accumulating here.
What to steal (per competitor)
Section titled “What to steal (per competitor)”- Trustpilot → the TrustBox growth loop (build an embeddable kweli-badge widget), Bayesian time-decayed TrustScore so 3 reviews ≠ a 5.0, and publishing fake-review removal stats as marketing.
- GBP → the attribute system (wheelchair access, women-owned — map onto place sub-objects), free-forever owner tier as distribution, “What’s Happening” module (our blasts/events), Local Guides points/levels as the blueprint for ubuntu missions, and video-evidence UX ideas for tier-2/3 verification.
- Yelp → the agent stack: an open
/mcpendpoint for kweli.mukoko.com modeled onyelp-mcp(NL request in, NL answer + structured venue data out), aspect-level AI review insights, and response-quality badges that reward owner engagement, not payment. - TripAdvisor → the annual public Transparency Report (fraud
blocked, reviews removed) — a perfect ritual for a product named
“truth” — plus per-dimension sub-ratings (our
engagement.ratingsis already per-dimension) and community Q&A. - Foursquare → FSQ Open Source Places (100M POIs, Apache 2.0) as a conflation/seed source for African coverage beyond OSM, and check-in gamification mechanics.
- Jiji → the liquidity playbook: free listing, phone-number-light onboarding, WhatsApp-adjacent chat behavior, boosts that never gate baseline visibility.
- African directories → their surviving revenue insight: SMEs pay for presence services (site, WhatsApp setup, SEO). An honest “get verified + agent-discoverable” service tier monetizes the same demand without pay-to-rank.
The Africa whitespace (nobody serves this)
Section titled “The Africa whitespace (nobody serves this)”- Claimable, verifiable pages for the non-commercial entity universe (schools, clinics, NGOs, churches, government).
- Verification without formal premises — community vouching laddering to OTP/government/licensed.
- Trust that ports across surfaces (the kweli).
- Content-level local languages (sn/nd now; Swahili is the obvious 4th locale for KE/TZ).
- Low-data delivery: SSR-first, light pages, offline tolerance, USSD/SMS fallback for OTP verification.
- WhatsApp-first workflows — click-to-WhatsApp as a first-class profile action, claim/verify OTP over WhatsApp, review collection via WhatsApp links. GBP removed messaging in 2024; the seat is empty.
- Mobile-money attributes — “accepts EcoCash / M-Pesa / MoMo” as
structured data (
commerce.paymentAccepted), later deposits via the wallet schema. - Agent discoverability for African entities — as assistants become the front door, African venues are invisible to them today.
- Documented honest monetization: “verification ≠ payment, ranking ≠ payment,” backed by a transparency report.
Priority order
Section titled “Priority order”P0 — make the core loop real: ✅ shipped (barstool #85). Review submission + plaintext bodies; telephone/hours/JSON-LD-URL mappers; visitor-facing sync buttons and the 410 sync page; the autoprovision funnel loop.
P1 — build the engine: ✅ shipped (barstool #86). The
[country]/[region]/[category]/[slug] browse hierarchy with slug
resolution and 301s from /bars/[id]; owner venue editing on the
PATCH API (platform-API write, deny-by-default authz); verification
rendered wherever a tier exists — page, lists, MCP and analytics give
one trust answer (no tiers were fabricated: backfill waits on real
vouches/claims); real i18n (locale-aware links + rendered switcher +
sn/nd chrome). Three P2 items landed early: WhatsApp CTA, mobile-money
attributes, and kweli.mukoko.com/mcp (+ server card, open stats).
P2 — compound the moat (the active list):
- Seed liquidity — contribution missions (ubuntu schema), owner outreach to claim/verify, photo prompts; the loops are built and empty.
- Embeddable kweli badge — the TrustBox-style growth loop.
- Q&A + accessibility/identity attributes.
- Saved lists / follows / notifications — retention.
- Transparency report — the ritual for a product named “truth”; pair with a Bayesian time-decayed trust score before volume grows.
- FSQ OS Places conflation — coverage beyond the OSM seed.
- Content-level sn/nd translation (+ Swahili as the 4th locale).
Biggest external threats: unchanged — Google Maps’ Gemini layer passively improving African coverage, and Jiji/WhatsApp absorbing the “just find me a business” job informally. Both are beatable only by owning what they structurally can’t: verified identity for every entity type, in local languages, portable across an ecosystem.
Goal-check: are we ahead?
Section titled “Goal-check: are we ahead?”Post-P1, against each incumbent’s core weapon:
- vs GBP/Maps — they still have no claim path for most informal African businesses and no non-commercial entity pages; we now match their profile anatomy basics (hours, phone, website, WhatsApp, payments, inline map) and beat them on verification model, agent surface and languages. They beat us on data density and habit.
- vs Yelp/TripAdvisor — their SEO engine (city×category pages) is no longer a structural advantage; ours is live with cleaner JSON-LD. They beat us on review volume and fraud-defense track record — the liquidity gap is the whole fight.
- vs Trustpilot — we match “reviews + verified business” and beat them on physical-place coverage and Africa; their TrustBox embed loop remains the one growth mechanic we haven’t copied (P2 #2).
- vs the directories/Jiji — structurally ahead on everything except Jiji’s phone-first liquidity playbook, which is a marketing motion, not a product gap.
Net: the capability scoreboard now favors Kweli in its arena; every remaining deficit is volume. Rerun this goal-check after the first liquidity push and update the scoreboard honestly — including the rows where incumbents still win.