Full-stack operations platform for managing bespoke travel experiences with no stress — from lead capture to trip delivery and Q&A.
This web-based solution is a real business application built for operating travel brands or Destination Management Companies in the bespoke travel industry.
It manages full operational lifecycles:
lead capture -> discovery -> quotation -> bookings & inventory -> operations -> client roadbook -> Q&A
It also integrates Claude API to automatically generate personalized travel documentation based on real client context, backend data, and rules.
- Inventory management: destinations, accommodations, experiences, transport routes, and contract cost layers.
- Trip template builder: day-by-day itinerary composer with supplier-linked references.
- CRM + discovery questionnaire: 7-step intake flow, client profiles, and lead pipeline view.
- AI proposal generator: Claude API generates 2-3 personalized options from fiche client + preferences.
- Quotation engine: contract-based pricing, margin logic, and PDF export support.
- Client touchpoint timeline: complete interaction history across channels.
- Shareable intake forms: embeddable and WhatsApp-shareable with autosave behavior.
- Document management: passports, insurance, and flight information tracking.
- Role-based access: super admin can view contract costs; operatives access the remaining active modules.
- Frontend: Next.js 14 (App Router), React, TypeScript, Tailwind CSS
- Database: PostgreSQL via Supabase
- ORM: Prisma (30+ models)
- AI: Anthropic Claude API for proposals' time optimization
- Auth: Supabase Auth (role-based)
- Deployment: Vercel-ready
# 1) Install dependencies
npm install
# 2) Configure environment
cp env.example .env.local
# Fill DATABASE_URL, DIRECT_URL, NEXT_PUBLIC_SUPABASE_URL, NEXT_PUBLIC_SUPABASE_ANON_KEY, ANTHROPIC_API_KEY
# 3) Sync schema and generate Prisma client
npx prisma db push
npm run db:generate
# 4) Start app
npm run devOpen http://localhost:3000.
Note: this repo runs local dev with next dev --webpack for route stability in this project.
- Built as an operations-first platform for a real DMC workflow, not a demo-only CRUD app.
- Covers the full funnel in one system: intake, CRM discovery, AI proposals, quoting, and delivery operations.
- Uses strict schema validation plus resilient AI-response handling to reduce runtime failures.
- Integrates AI where it creates practical leverage for teams (proposal drafting and workflow acceleration).
- Designed to reduce context switching for agents by centralizing client history, documents, and decisions.
Screenshots coming soon.
The project follows a clear App Router structure:
src/app/admin/*for internal operations dashboards and modulessrc/app/intake/*,src/app/operational/*, andsrc/app/roadbook/*for client-facing/public workflowssrc/app/api/*for server-side endpoints (AI generation, intake submission, automation hooks)src/lib/*for domain logic (pricing, touchpoints, AI prompt orchestration, email, auth)
Development was guided by:
CLAUDE.mdfor project-level context and conventionsdocs/*for implementation specs, workflows, and feature decisions
I built this in iterative product phases, validating each operational step against real business usage instead of building in isolation.
- Started with core data architecture and workflow primitives (clients, quotes, bookings, operations).
- Added high-leverage automation where operational friction was highest (proposal generation, quote workflows, timeline logging).
- Tested with real-world scenarios, captured errors during manual QA, and used those notes to drive structured debugging and refactors.
- Practiced stepping back during failures to analyze not only what broke, but how decisions and assumptions produced the issue.
- Prioritized shipping practical value first, then tightening reliability, clarity, and maintainability.
- What I learned: designing software around business constraints, shipping AI-assisted features responsibly, and balancing strict data validation with resilient UX.
- Challenges tackled: long-form AI JSON truncation, route reliability, quote mapping consistency, and traceable proposal lifecycle logging.
- New tools/tech growth: deeper Prisma modeling, server actions patterns, AI prompt + schema strategies, and ops-centric product thinking.
- UX insights: preserve user input aggressively, keep operators in flow, and make state transitions explicit and auditable.
- What could be improved next: stronger automated tests for quote-generation mappings, richer proposal editing UX, analytics dashboards, and tighter permissions.
- How to keep evolving: continue phase-based roadmap execution, add observability around AI and pricing flows, and tighten CI quality gates.
- Live demo video (virtual walk-through): Watch on VEED
Active development - Phases 1-7 of 11 complete. Built in collaboration with AI-assisted development (Cursor + ClaudeCode)
Currently documenting all dev processes to build self-paced learning materials to enhance my understanding of the technical aspects behind it.
B.A. Ramirez - Travel industry professional now evolving in IT and building tech solutions that save time and money.