


Item Hunt: Experimental Reverse Marketplace Platform
Exploring Demand-Driven E-Commerce
Project Overview
Item Hunt was an experimental reverse marketplace that explored flipping traditional e-commerce on its head. Instead of sellers listing items for buyers to browse, buyers posted what they needed, and verified sellers competed to provide the best offers. Built with Next.js and Supabase, the platform featured real-time notifications, location-based matching, seller verification, and a multi-language interface designed for the Kenyan market.
Main Purpose: Create a demand-driven marketplace that eliminates endless browsing by reversing the traditional e-commerce model—buyers post requests, sellers respond with competitive offers.
Problem Addressed:
- Eliminates endless browsing through countless product listings
- Reduces seller listing overhead—sellers only respond to actual demand
- Ensures competitive pricing through multi-seller bidding
- Builds trust through KYC-verified sellers
- Enables hyperlocal commerce via geographic matching
Live Demo: itemhunt.ike.work
Market Validation & Project Status
The project is currently suspended following market validation analysis. While the platform successfully demonstrated technical excellence, the core user experience—posting "I want X"—was found to closely mirror existing search functionality on established marketplaces like Jumia. The hypothesis that users can't express their needs or seek non-existent items proved to be a niche use case, but wasn't validated as a large enough market segment to differentiate from established competitors.
The primary differentiated value existed in edge cases:
- Items users struggle to name or describe
- Custom or non-existent products requiring seller creativity
- Highly localized or specialty items
This represents an important lesson in product differentiation and market validation—technical execution alone doesn't guarantee product-market fit. The project may be revisited if this specific use case proves more significant.
Technology Stack
Frontend Framework
- Next.js (latest version with App Router) - Server-side rendering and static site generation
- React 19 with TypeScript - Type-safe component development
- Tailwind CSS - Utility-first CSS framework for rapid UI development
- shadcn/ui - Reusable component library built on Radix UI
- Avatar, Checkbox, Dropdown Menu, Label components
- Radix UI - Accessible component primitives
- next-themes - Theme management with dark mode support
- lucide-react & FontAwesome - Comprehensive icon libraries
Backend & Database
- Supabase - Comprehensive backend platform
- PostgreSQL database with PostGIS for geospatial data
- Built-in authentication (email/password, magic links)
- Row-level security (RLS) policies
- Real-time subscriptions
- Server-side rendering support (
@supabase/ssr)
Database Tables:
profiles- User profile informationsellers- Seller account details and KYC statusseller_categories- Seller category associationscategories- Hierarchical product/service categoriesgeo_points- Geographic location data for matchingbuyer_requests- Customer demand requestsoffers- Seller offers on buyer requestsissued_warranties- Warranty tracking for insured itemsreports- User reporting system
Deployment & Infrastructure
- Firebase Hosting - Static hosting with Next.js integration
- Firebase CLI - Deployment tooling
- Environment variables for Supabase configuration
Build Tools
- TypeScript 5 - Type safety throughout
- ESLint 9 - Code linting
- PostCSS & Autoprefixer - CSS processing and browser compatibility
- Yarn - Package management
Key Features
Core Marketplace Mechanics
Reverse Marketplace Model: Buyers post item requests with title, description, budget, condition, and location. Sellers browse these requests and respond with competitive offers. Public request visibility promotes transparency and drives competitive pricing.
Request Management System:
- Multiple statuses: active, accepted, declined, withdrawn, expired, banned
- Configurable duration with automatic expiration
- Item condition tracking (excellent, very good, good, fair, poor)
- Premium request options
- Request withdrawal capability
Offer Competition System:
- Sellers make competing offers on buyer requests
- Price specification with currency support (KES)
- Offer statuses: active, accepted, hidden, withdrawn, paused, banned
- One offer per seller per request enforcement
- Detailed offer descriptions
Trust & Verification
Seller Verification (KYC):
- Three-tier KYC status: pending, approved, rejected
- Business name and location verification
- Verified sellers can make offers; browsing is free for all
- Trust-building through verified badge system
Insurance & Warranty System:
- Optional item insurance for offers
- Warranty type and duration tracking
- Issued warranty management
- Background warranty updates to prevent data inconsistency
Location-Based Services
Geospatial Matching:
- PostGIS integration for advanced geospatial queries
- Radius-based matching with configurable kilometer range
- Geographic points system for precise location matching
- Hyperlocal marketplace connections
Category Management
Hierarchical Category System:
- Nested subcategories with multiple levels
- Icon support for visual category identification
- Seller category associations (sellers choose expertise areas)
- Category filtering for targeted browsing
- Multi-category selection UI components
Real-Time Features
Notification System:
- Buyers notified when offers arrive on their requests
- Sellers notified when requests match their categories
- Email notification integration
- Real-time updates via Supabase subscriptions
Internationalization (i18n)
Multi-Language Support:
- English, Swahili, and additional languages
- Language switcher component
- Browser language detection
- Cookie-based language persistence
- Localized routing structure
User Experience
Profile Management:
- Separate buyer and seller profiles
- Profile header with avatar
- Account status tracking
- Additional user information management
Advanced UI Features:
- Dark mode support with theme switcher
- Responsive design for desktop and mobile
- Avatar dropdown navigation
- Confirmation modals
- Offer cards with grouping
- Request details header
- Category and location dropdown components
Reporting & Moderation:
- User reporting system
- Report modal for flagging inappropriate content
- Admin moderation capabilities (ban requests/offers)
Technical Implementation Highlights
Service Layer Architecture
Built with 9 dedicated service modules for clean separation of concerns:
buyerRequestsService.ts- Request CRUD and status managementoffersService.ts- Offer creation, updates, and queriessellersService.ts- Seller profile and verificationcategoriesService.ts- Category hierarchy managementprofilesService.ts- User profile operationswarrantyService.ts- Warranty and insurance trackingreportsService.ts- User reporting functionalitysellerCategoriesService.ts- Seller-category associationsbuyerRequestOffersService.ts- Combined request-offer operations
Custom React Hooks
5 specialized hooks for shared logic and state management:
use-current-user-image.ts- Current user avatar managementuse-current-user-name.ts- Current user name retrievaluse-profile-data.ts- Profile data fetchinguse-seller-categories.ts- Seller category managementuse-seller-data.ts- Seller profile data
Component Library
29+ custom components organized by feature:
- Form components (login, signup, forgot password, update password)
- Navigation components (navbar, footer, avatar dropdown)
- Feature components (offer cards, request details, category dropdowns)
- Utility components (theme switcher, language switcher, confirmation modal)
Authentication & Security
- Supabase authentication integration
- Email/password login and magic link support
- Forgot password flow with reset functionality
- Password update capability
- Session management middleware
- Row-level security policies
SEO & PWA
- Open Graph images and Twitter card support
- Sitemap.xml and robots.txt
- Proper meta tags throughout
- PWA support with manifest.json
Architecture Highlights
Database Design
- PostGIS Extension for geospatial queries and location-based matching
- Row-Level Security for user data isolation and access control
- Enums for type-safe status values (request_status_enum, offer_status_enum, kyc_status)
- Foreign Keys ensuring relational integrity across tables
- Timestamps with automatic created_at, updated_at, deleted_at tracking
Middleware Architecture
- Supabase session management
- Internationalization (i18n) routing
- Language detection from browser headers and cookies
- Centralized auth and i18n handling
Component-Based Architecture
- 29+ reusable components
- Custom hook library for shared logic
- Modular service layer
- Clear separation of concerns
Project Structure
item-hunt/
├── app/ # Next.js App Router pages
│ ├── [lang]/ # Internationalized routes
│ │ ├── auth/ # Authentication pages
│ │ ├── buy/ # Buyer dashboard
│ │ ├── sell/ # Seller dashboard
│ │ ├── start-selling/ # Seller onboarding
│ │ └── ... # Other routes
│ ├── favicon icons # Favicons and app icons
│ ├── manifest.json # PWA manifest
│ └── sitemap.xml # SEO sitemap
│
├── components/ # React components (29+ files)
│ ├── ui/ # shadcn/ui base components
│ ├── auth-button.tsx # Authentication button
│ ├── category-dropdown.tsx # Category selection
│ ├── offer-card.tsx # Offer display
│ └── ... # 20+ more components
│
├── lib/ # Core library code
│ ├── services/ # Business logic (9 services)
│ ├── supabase/ # Supabase configuration
│ ├── i18n/ # Internationalization
│ └── utils/ # Utility functions
│
├── hooks/ # Custom React hooks (5 hooks)
├── docs/ # Project documentation
├── public/ # Static assets
├── middleware.ts # Auth + i18n middleware
└── package.json # DependenciesSkills Demonstrated
Full-Stack Development
- Modern Next.js architecture with App Router and TypeScript
- Supabase integration for authentication, database, and real-time features
- Advanced geospatial features using PostGIS
- Production-ready internationalization flows
System Architecture
- Service layer pattern with 9 specialized modules
- Component-based architecture with 29+ reusable components
- Type-safe codebase with TypeScript throughout
- Database optimization with proper indexing and geospatial queries
Advanced Features
- Real-time capabilities via Supabase subscriptions
- Multi-language support with automatic detection
- Location-based matching with PostGIS integration
- Complex state machine with 6+ status types for requests/offers
User Experience
- Dark mode support with theme persistence
- Responsive design for all devices
- Accessibility via Radix UI primitives
- Intuitive navigation and clear user flows
Key Takeaways
Item Hunt reinforced the importance of validating differentiation early. While the platform showcases strong technical execution with advanced features like geospatial matching, real-time notifications, and comprehensive service architecture, it serves as a reminder that innovation must solve a problem significantly better than existing solutions, not just differently.
What Worked
- Technical architecture and implementation quality
- Advanced features (PostGIS, real-time, i18n, KYC)
- Clean code organization with service layer pattern
- Production-ready deployment on Firebase Hosting
Market Validation Learnings
- Core mechanic (posting "I want X") mirrors existing search functionality
- Differentiated value exists primarily in edge cases
- Niche use cases weren't large enough to compete with established platforms
- Technical excellence alone doesn't guarantee product-market fit
Technical Achievements
Despite market validation challenges, Item Hunt demonstrates:
- Full-stack TypeScript architecture with type safety
- Advanced geospatial features using PostGIS
- Comprehensive service layer with clean separation
- Production-ready i18n and authentication flows
- Real-time synchronization and notification systems
Item Hunt serves as both a technical showcase and a valuable lesson in product validation. The platform demonstrates advanced full-stack capabilities while emphasizing the critical importance of market validation and product differentiation in early-stage development.