Skip to content

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.

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.

  • 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.

Condensed matrix (● strong ◐ partial ○ weak/none). “AfrDir” = legacy African directories composite.

CapabilityGBPYelpTrustpilotTripAdvisorAfrDirJijiKweli 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◐ domainpay≈verifiedphone●● 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:

  1. 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).
  2. Retention primitives. No saved lists, no follow, no notifications, no user profile. Nothing brings a visitor back.
  3. 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.
  4. Photos at scale. Upload exists but there’s no contribution prompt or mission loop.
  5. 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.
  6. Content-level translation. The chrome is sn/nd; venue descriptions and editorial content are not (graph translations sub-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/@id on 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_venue deep-links resolve by slug and UUID via the /bars/[id] 301 resolver; /verify treats a missing isActive flag as active.
  • Severity 3 (trust + polish): working ?q= SearchAction without losing home ISR; doctrine-correct linked breadcrumbs with valid BreadcrumbList; valid LocalBusiness default type + ISO addressCountry; per-section catches on all side-collection reads (one engagement-DB hiccup can’t 500 a venue page); the legacy mukoko_token unverified-JWT seam deleted (getPersonId is WorkOS withAuth()-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.

  • 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 /mcp endpoint for kweli.mukoko.com modeled on yelp-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.ratings is 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)”
  1. Claimable, verifiable pages for the non-commercial entity universe (schools, clinics, NGOs, churches, government).
  2. Verification without formal premises — community vouching laddering to OTP/government/licensed.
  3. Trust that ports across surfaces (the kweli).
  4. Content-level local languages (sn/nd now; Swahili is the obvious 4th locale for KE/TZ).
  5. Low-data delivery: SSR-first, light pages, offline tolerance, USSD/SMS fallback for OTP verification.
  6. 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.
  7. Mobile-money attributes — “accepts EcoCash / M-Pesa / MoMo” as structured data (commerce.paymentAccepted), later deposits via the wallet schema.
  8. Agent discoverability for African entities — as assistants become the front door, African venues are invisible to them today.
  9. Documented honest monetization: “verification ≠ payment, ranking ≠ payment,” backed by a transparency report.

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):

  1. Seed liquidity — contribution missions (ubuntu schema), owner outreach to claim/verify, photo prompts; the loops are built and empty.
  2. Embeddable kweli badge — the TrustBox-style growth loop.
  3. Q&A + accessibility/identity attributes.
  4. Saved lists / follows / notifications — retention.
  5. Transparency report — the ritual for a product named “truth”; pair with a Bayesian time-decayed trust score before volume grows.
  6. FSQ OS Places conflation — coverage beyond the OSM seed.
  7. 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.

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.