GTHome
All projects

Full-Stack Developer (Solo) · 2025–Present

Private

Safari OS

End-to-end SaaS for a real safari operator: bookings, costing engine, CRM, itinerary builder, invoicing and supplier management, with AI-driven automation — WhatsApp concierge replies, passport and receipt OCR, itinerary drafting — and nine scheduled jobs.

Next.jsTypeScriptPrismaPostgreSQLAnthropic ClaudeTwilio

Private

Safari OS

Next.jsTypeScriptPrisma

Problem

Safari operators run bookings, pricing, supplier coordination, and client communication across spreadsheets, WhatsApp, and email, with no single system tying it together.

Approach

Building an end-to-end ERP for a real safari company covering bookings, a costing engine, CRM, itinerary builder, invoicing, and supplier management — over 30 Prisma models — with Claude (Mistral fallback) automating the text-heavy work: itinerary drafting, OCR and PDF extraction, translation, marketing copy and WhatsApp replies. Conversion scoring and anomaly detection are rule-based so they stay explainable, with Claude writing the summary.

Tech highlights

Next.js 16 with Prisma and PostgreSQL; JWT sessions with OTP and three-role RBAC (Admin/Ops/Guide); Twilio WhatsApp integration across 14 message types with real-time delivery receipts; PDF/DOCX document generation via PDFKit and an AI content studio generating marketing copy in 5 languages across 6 channels; Vercel Cron for scheduled jobs.

Results

In active development for a real safari operator — full write-up and demo coming once the platform is live.

Challenges

Keeping the costing engine accurate across multi-currency quotes, seasonal supplier rates, and per-person markups while modeling over 30 interrelated Prisma entities; and keeping AI at the edge of the workflow — rule-based scores the model only explains, provider failover so a slow or unavailable model never blocks a booking, and signed Twilio webhooks plus fail-closed cron auth so the automations cannot be triggered by anyone else.

Command palette

Search pages, projects, and quick actions