Back to Blog
Web Development

Kemotives Marketplace: Building Kenya's Premier Vehicle Platform

View Repository on GitHubLive Website / Demo

Background

After launching the kemotives admin dashboard, the logical next step was to build the customer-facing marketplace. Kemotives is Kenya's premier vehicle marketplace — connecting buyers and sellers with an experience tailored specifically for the Kenyan market.

What Is Kemotives Marketplace?

The marketplace is a Next.js full-stack application where dealers and private sellers can list vehicles, and buyers can search, filter, and contact sellers directly. It integrates with the admin dashboard via a shared API layer.

Tech Stack

  • React 18 + Vite 5 — App Router, Server Components, API Routes
  • Supabase — Database, auth, real-time updates
  • Tailwind CSS — Utility-first styling
  • Cloudinary — Image optimization and CDN delivery
  • M-Pesa Daraja API — Payment processing

Core Features

  • Advanced Search — Filter by make, model, year, price range, mileage, condition, and location
  • Verified Listings — Badge system for verified dealers
  • Image Galleries — Multi-image listings with zoom and swipe on mobile
  • Direct Contact — WhatsApp integration (the preferred contact method in Kenya)
  • Saved Cars — Wishlist functionality with local storage fallback

Architecture Decisions

I chose Server Components for listing pages to get fast initial loads and good SEO — critical for a marketplace where Google traffic matters. Only the search filters and saved cars feature are client components.

app/
├── marketplace/
│   ├── page.jsx         # Server: fetches listings
│   ├── [slug]/page.jsx  # Server: vehicle detail page
│   └── search/          # Client: interactive filters
├── api/
│   ├── listings/        # CRUD endpoints
│   └── enquiries/       # Contact form handler

Kenya-Specific Considerations

  • WhatsApp over email — Nearly every buyer contacts sellers via WhatsApp, so the CTA is a direct WhatsApp link
  • Price in KES — With comma-separated thousands formatting familiar to Kenyans
  • Mobile-first — Over 80% of traffic comes from mobile devices

Challenges

Handling image uploads for vehicle listings was complex. Dealers upload 10–20 photos per listing. I implemented client-side compression before Cloudinary upload to keep bandwidth usage low for users on mobile data.

View on GitHub →