Challenge
Nigerians buying phones face opaque pricing, inconsistent specs, and outright scams across fragmented marketplaces. There was no trustworthy way to match a budget and a set of priorities to the right phone, or to tell a fair listing from a fake one.
Approach
Built everything in one Dart monorepo (Melos) so typed models and pure business logic travel cleanly across tiers: a Jaspr static site with @client interactive islands, a dart_frog REST API that loads the whole catalogue into memory at boot, a pure-Dart scraper, and Supabase Postgres with row-level security.
Curation Engine
As Library Curator, I vet every phone and listing that enters the canonical catalogue:
-
Confidence-scored matcher (Jaccard similarity, brand multiplier, exact-model boost) tiers listings into auto-approve, review, and catalogue-gap buckets
- Admin review workflow protects already-reviewed rows from re-scrape clobbering
-
Four idempotent enrichment pipelines (spec sheets, benchmark scores, review data, image rehosting), each writing its own column family
-
Two-signal price-sanity filter catches listing scams, including a real mismatched-device listing in production
Evidence-Led Discovery
Extended the catalogue beyond specifications and prices with reviewed community OS support and an NCC registry browser. Official-source adapters produce candidates for human review, not automatic approval. Exact model variants, support status, and source evidence remain attached to published records.
- Community OS discovery published with reviewed support records across 566 phone families
-
NCC registry browsing distinguishes exact model Type Approval from verification of an individual device
-
Immutable Supabase evidence snapshots and repeatable publication tools preserve review decisions and provenance
Impact
Live in production on Cloudflare Pages, Railway, and Supabase with continuous deployment. Shared pure-Dart recommendation logic supports budget and preference-led discovery, guarded by unit, integration, schema-contract, and end-to-end tests. Recent work also covers server-component boundaries, session continuity, search indexability, and data-backed sitemap metadata.