Inspiration

West Africa has some of the most compelling travel experiences in the world — canopy walks through ancient rainforests, kente weaving in Bonwire, heritage tours through Cape Coast Castle. But if you search for these on Airbnb Experiences or TripAdvisor, you get almost nothing. The market exists. The hosts exist. The infrastructure to connect them to travelers doesn't. That gap is what Xplor is built to fill.

What it does

Xplor is a travel experiences marketplace for West Africa. Travelers can browse and book unique, host-led experiences from the Kakum Canopy Walk in Cape Coast to cooking classes in Accra. Hosts can list their experiences, set their own prices, and manage bookings through a dedicated dashboard. The platform handles discovery, booking flow, guest details, and confirmation end to end.

How we built it

The frontend is built with Next.js 14 (App Router) and deployed on Vercel. The backend uses AWS DynamoDB as the primary database — two tables: wanderly-experiences (stores listings, host info, and reviews as nested items for fast single-read detail pages) and wanderly-bookings (stores confirmed reservations, written independently so booking writes don't compete with experience reads). All DynamoDB access is handled server-side through Next.js API routes using AWS SDK v3 — the client never touches AWS directly.

Challenges we ran into

The biggest challenge was the DynamoDB schema design decision whether to nest host and review data inside experience items or use separate tables.We chose to embed them because a detail pagge needs all that data in one go, and DynamoDB's strength is exactly this kind of denormalized, single-item reads. Getting the Next.js 16 dynamic route params to work correctly with async params (a breaking change from Next.js 15+) also took some debugging during the Vercel deployment phase.

Accomplishments that we're proud of

A fully working end-to-end booking flow from browsing experiences to a confirmed booking saved in DynamoDB deployed live on Vercel. The app targets a real market that is genuinely underserved by existing platforms, and the architecture is built to scale: on demand DynamoDB capacity means it handles traffic spikes without pre-provisioning.

What we learned

How to design a DynamoDB schema around access patterns rather than relationships. How to use Next.js server components to query DynamoDB directly without an extra API hop. How Vercel's serverless environment handles AWS SDK credentials through environment variables at runtime.

What's next for Xplor

Real payment processing with Stripe, image uploads for host listings via AWS S3, host verification to prevent fraudulent listings, and expanding the experience catalog beyond Ghana to cover Senegal, Nigeria, and the broader West African region.

Built With

Share this project:

Updates