3y3anaaOverview

3y3anaa — The Review / Trust Engine

The trust backbone for the entire Duaba ecosystem.

3y3anaa (Akan “Ɛyɛ anaa” — “is it good?”) is Ghana’s trust infrastructure: a centralized Better Business Bureau for the local economy and the shared reviews & trust layer that every Duaba app plugs into. Where Sellub handles commerce and DPS handles hosting, 3y3anaa answers a single question for any subject in the ecosystem — can this be trusted?

What it does

3y3anaa collects and curates reviews, complaints, and verification signals about businesses and the people/things they transact with, then distills them into a single, transparent Trust Score. It is multi-tenant: any Duaba app (and any future Duaba app) can read and write reviews through a shared SDK while keeping its data namespaced to its own app.

Subject types it can review:

  • product, shop, supplier, courier, business, artisan, client

The artisan / business / client triple is the “proxyfidelity” model: each can be both a subject (reviewed) and a reviewer, so any party can rate any other party they transact with.

Find your way around

Trust Score (0–100)

The Trust Score is a composite designed to be hard to game and easy to explain:

ComponentWeightWhat it measures
Community Review Quality30%Quality and credibility of community reviews
Business Responsiveness20%How well a business responds to complaints
Resolution Track Record20%Whether raised issues actually get resolved
Verification Signals15%Phone, location, and business-registration verification
External Signals15%Google Places (reference-only, never merged)

See Core Concepts for the full breakdown of how the Trust Score is calculated.

”Reviews = Complaints” model

3y3anaa treats low-star reviews as complaints the business is expected to respond to publicly:

  • 1–2 star reviews are complaints. The business can (and should) respond in the open.
  • Resolution is tracked. A complaint moves through its lifecycle and that history feeds the Resolution Track Record component of the Trust Score.
  • History is immutable. Reviews and responses form an audit trail — nothing is silently rewritten or deleted.

Business verification

Trust starts with knowing who’s behind a listing:

  • Phone verification via SMS.
  • Location verification.
  • Ghana business registration verification.
  • Claim-business flow so owners can take over an existing listing.
  • Verification badges surfaced on the profile.

Ghana-aware anti-abuse

Review systems are only as good as their defences against manipulation. 3y3anaa ships abuse controls tuned for the local market:

  • SIM-abuse detection — catches networks of low-cost SIMs used to spam.
  • Paid-campaign / burst detection — flags suspicious spikes.
  • Self-review prevention and duplicate-text detection.
  • Velocity limits — 3/hour, 10/day, 25/week per reviewer.
  • Reviewer credibility scoring — weights reviews by author trustworthiness.
  • Shadow-weighting — reduces the impact of suspect reviews without censoring them, preserving transparency.

Google reviews (reference only)

3y3anaa can show Google ratings, but treats them as an external signal, never a substitute for community data:

  • Pulled via the official Google Places API only.
  • Cached 15–60 minutes maximum.
  • Always labeled “From Google” and never merged with community reviews.

Multi-tenant reviews platform

3y3anaa is built so any Duaba app can use it as its review backend. The central model:

ClassPurpose
AppCredentialPer-app key + scopes; provisioned server-side.
ReviewSubjectA reviewable entity, namespaced by app.
AppReviewA review tied to a subject. One review per (sourceApp, subjectType, externalId, author).

Any app calls createReviewsClient() with its own key & scopes through the SDK and gets a scoped, namespaced view of reviews.

Architecture

LayerTech
BackendParse Server 9 + MongoDB
FrontendNext.js 14 + Ant Design
SDK@duabalabs/reviews-sdk — framework-agnostic, server-side, fetch-based, ships CJS + ESM

How it connects to the ecosystem

Sellub consumes the reviews SDK. Sellub configures it via:

  • THREEYANAA_API_URL — the 3y3anaa API endpoint.
  • THREEYANAA_PARSE_APP_ID — the Parse Application Id.
  • THREEYANAA_APP_KEY — Sellub’s app credential (secret).

With this in place:

  • The storefront shows verified-purchase-gated product reviews and shop reviews.
  • The dashboard will surface supplier and courier reviews.

Sellub’s app credential is provisioned server-side, e.g.:

await provisionAppCredential({
  appName: 'sellub',
  scopes: ['product', 'shop', 'supplier', 'courier'],
});

Future Duaba apps onboard the exact same way — request an AppCredential with the scopes they need, then call createReviewsClient().

Source repos

Status

Production-ready. Backend tsc is clean, the app builds, and the SDK is ready to publish.