Travel & CultureExperience MarketplacePlatform Foundation

Ancestra

A Culture-as-a-Service marketplace connecting travelers with verified Sri Lankan hosts and authentic local experiences.

Role
Product design & full-stack engineering
Industry
Tourism & culture
Stage
Beta
Current delivery
Marketing site · API foundation
Platform
Next.js frontend · NestJS API
Status
Marketplace in development

Overview

The story in brief

Ancestra is intended to be a Culture-as-a-Service marketplace where travelers discover authentic Sri Lankan cultural, rural, and tribal experiences, reserve a place, and connect directly with verified local hosts.

Today, the product is a polished marketing site paired with an early marketplace API. Registration, login, Google OAuth callbacks, forgot-password initiation, and contact integration establish the customer-facing foundation; the backend already models host profiles, categorized experiences, dates, galleries, capacity, and priced seats.

02

The challenge

Authentic cultural experiences are difficult for travelers to discover and evaluate, while local hosts lack a dedicated channel for presenting their businesses, publishing reliable schedules, and reaching the people looking for them.

The product must serve three distinct roles without losing trust: travelers need clear discovery and booking, hosts need approachable inventory tools, and administrators need safe oversight. At the same time, the experience must not promise commerce before reservations, payments, and confirmations are genuinely available.

03

The approach

We separated the product into a Next.js marketing and identity frontend and a NestJS API, allowing the public experience and marketplace domain to evolve independently behind one versioned contract.

The API establishes the real supply-side model first: users can own host business profiles, profiles can publish categorized and geolocated experiences, and each experience can carry dates, uploaded media, capacity, priced seats, and a lifecycle from draft to open or closed.

Delivery is staged around the product promise. First stabilize authentication, authorization, deployment, and host onboarding; then expose real open-event discovery and host tools; finally add concurrency-safe reservations, payments, confirmations, and administration.

04

What we built

What is working today, what the API already enables, and what remains to fulfill the marketplace promise.

01web

Marketing experience

A polished, responsive Next.js site explains the marketplace vision and speaks to both travelers and prospective hosts.

02login

Identity foundation

Email registration and login, persistent JWT-cookie sessions, Google OAuth callbacks, and forgot-password initiation are partially integrated.

03contact_mail

Contact integration

A validated public contact form connects the landing experience to Mailjet delivery for direct team enquiries.

04storefront

Host profiles API

Hosts can be represented by owned business profiles, creating the backend foundation for verified public identities.

05event

Experience inventory API

Experiences support categories, locations, lifecycle states, multiple dates, capacity, and generated priced seat inventory.

06photo_library

Experience media

Gallery records and local file uploads give the backend a path for hosts to attach visual content to their listings.

07travel_explore

Discovery roadmap

The next marketplace layer will expose open experiences for public browsing, filtering, detail pages, and host discovery.

08payments

Commerce roadmap

Reservations, concurrency-safe seat holds, payments, confirmations, and cancellations remain planned rather than shipped.

01 / 08
05

Under the hood

Hover a stack group to trace its path in the system

Next.js
React
NestJS
Docker
Marketing frontend
Next.js 16React 19Tailwind CSS 4
Marketplace interfaces
Traveler discovery – plannedHost workspace – planned
Core API
NestJS 11Prisma 7PostgreSQL
Identity & integrations
JWT + PassportRedisGoogle OAuthMailjet
Infrastructure
DockerNginxGitHub Actions CI/CD

Architecture

  • conversion_pathA decoupled Next.js frontend communicates with the NestJS API through the versioned /api/v1 contract, with cookie-based authentication and automatic token refresh.
  • conversion_pathPostgreSQL stores users, host profiles, categories, experiences, dates, galleries, and seat inventory; Redis currently supports password-reset tokens.
  • conversion_pathMailjet handles reset and contact email, local storage holds uploaded experience media, and Docker plus GitHub Actions provide the deployment foundation.
06

The outcome

Beta

Current stage

4 repos

Core · Backend · Host · User

3 roles

Traveler · Host · Admin

6 phases

Path to finished product

Ancestra now has a substantially built public story and working contact flow, plus the core email and Google identity paths needed to begin onboarding its audience.

The backend establishes a meaningful marketplace foundation: host businesses, categorized and geolocated experiences, dates, galleries, capacity, pricing, and seat inventory are represented in one domain.

The product promise is not presented as finished: host tooling, public discovery, reservations, payments, administration, and production hardening remain the path from beta foundation to a usable end-to-end marketplace.