01 Case study
KaribuKit
KaribuKit runs safari lodges and boutique hotels: reservations, group bookings, rates, folios, payments, and night audit. We built the core platform, then made it AI-native with Ranger, a guest concierge grounded in live reservation data.
- Client
- SimbaStack
- Sector
- Hospitality / AI-native SaaS
- Year
- 2025 to present
- Role
- AI Lead Developer, then AI Product Manager
- Engagement
- Full-time product ownership
The problem
Safari lodges run on radios, spreadsheets, and property systems built for city hotels. A lodge in the Maasai Mara has intermittent connectivity, walk-in guests without email, and staff who live in the field, not at a front desk.
The reservation lifecycle is unforgiving. A double-booked tent or a folio that drifts from reality is not a UI bug. It is a guest standing in the sun with luggage. The platform had to get the boring parts exactly right before any AI belonged in it.
The approach
We built the core first: the full reservation lifecycle, group bookings, rate management, folios, payments and refunds, and night-audit background jobs, structured as a pnpm monorepo with staff and guest portals in Next.js, a Node API, and an Expo mobile app.
Performance was treated as a product feature. Redis caching, BullMQ async queues, and deliberate query design keep the API under one second at 250+ requests per second during peak booking hours.
Then came the AI layer. Ranger is the guest-facing concierge: streaming conversational answers grounded in live reservation data, a configurable persona per property, and two access modes. Verified in-house guests authenticate with access codes. Walk-ins ask anonymously. When Ranger reaches its limits, it hands the conversation to staff instead of guessing.
Operational automations followed the same principle: Telegram booking confirm and cancel flows, and a WhatsApp assistant with human-fallback routing. Automation where it is reliable, people where it is not.
Architecture
A pnpm monorepo with clear seams: portals and mobile app consume one API, async work is queued, and the AI layer reads the same live data the front desk does.
- Staff portal (Next.js)
- Guest portal (Next.js)
- Mobile app (Expo)
- Node.js service
- Tenant-aware auth
- Sub-second response budget
- Ranger concierge
- Persona system
- Human-handover routing
- Telegram / WhatsApp automations
- Supabase / PostgreSQL
- Redis cache
- BullMQ queues
- Night-audit jobs
- AWS EC2 / S3 / CloudFront
- Docker
- GitHub Actions CI/CD
The hard parts
Grounding, not vibes
A concierge that invents a checkout time is worse than no concierge. Ranger answers only from live reservation state, and routes to a human when confidence drops. Getting the handover to feel seamless took more iterations than the model integration itself.
Night audit is sacred
The nightly close reconciles every folio on the property. It runs as queued background jobs with retries and idempotent steps, because a half-finished audit is worse than a late one.
Two kinds of guests
In-house guests need verified access to their own reservation. Walk-ins need answers with zero friction. One assistant, two trust levels, no leaked data between them.
Outcome
KaribuKit runs production properties today at 99.9% uptime, and the role grew with it: from AI Lead Developer to owning the AI product roadmap, deciding which guest and staff workflows become autonomous agents and driving each from spec to production.
The platform is also the proving ground for Sentinel, the autonomous QA fleet in the next case study, which tests KaribuKit end to end every day.