← Aardvark Partners

Guest Pre-check-in & Payments Platform

Built Jiminy, a multi-tenant pre-check-in platform combining a guided guest flow (identity, payments, deposits, upsells, signatures) with an operator dashboard for booking readiness, channel rules, property sync, and exception handling.

client
Aardvark Partners
role
Full-stack
year
2025
Multi-tenant
Org-isolated bookings
3,000+
Monthly active guests
Stripe + Beds24
Payments and PMS integrations
~$100k/yr
Saved vs ChargeAutomation

context

Vacation-rental operators needed a single place to handle pre-arrival work — guest verification, payments, security deposits, and upsells — without juggling email threads, payment links, and PMS data across disconnected tools.

problem

Pre-arrival readiness was scattered across booking records, manual emails, document collection, payment links, and admin intervention, making it hard to tell which guests were cleared and which reservations needed staff attention. On top of that, the existing third-party solution (ChargeAutomation) was costing close to 100k USD a year in commissions and licensing, with no room to tailor flows to the operator's real workflows.

what i built

  • Built a guided guest flow covering identity, selfie verification, signatures, payments, deposits, and upsells
  • Shipped an operator dashboard for booking readiness, channel rules, property sync, and exception handling
  • Integrated Stripe, Beds24, and Resend with tenant isolation through org_id and subdomain routing

application

Guest pre-check-in flow
Multi-step Zod-validated journey from invitation through confirmation, with server actions persisting state across steps.
Stripe payments and deposits
Checkout sessions, security deposit holds, captures, releases, voids, and webhook-driven state updates.
Beds24 PMS sync
Reservation and property data kept aligned with the booking dashboard.
Transactional emails
Resend and React Email powering invites, confirmations, OTP, and document rejection notices.
Admin operations
Booking triage, manual sync, document uploads, deposit and payment actions, and configuration health checks.

platform

Tenant isolation
org_id, subdomain routing, and auth metadata scoping every backend call.
Channel configuration
Per-channel rules for paid-in-platform bookings, deposits, fees, and split payments.
Role-based access
Admin vs standard user surfaces across the dashboard.

data

Supabase data model
Bookings, properties, users, check-in records, settings, and upsells in a shared Postgres schema.
Real-time chat store
Separate Supabase setup powering guest and operator messaging.

outcome

A centralized operating layer for vacation-rental teams: fewer manual follow-ups, clearer booking readiness, configurable payment and deposit workflows, and new revenue surfaces through upsells.

stack

Next.js 15 + React 19, TypeScript, Tailwind CSS + Radix UI, React Hook Form + Zod, TanStack Query + Table, Supabase, Authentication, Stripe, Beds24 API, Resend + React Email, Vercel

Built around the real sequence guests and operators move through before arrival.

  • Booking validation and invitation flows tied to imported reservations.
  • Terms, document upload, selfie verification, payments, deposits, and upsells.
  • Scheduled email touchpoints powered by React Email and Resend.
  • Admin workflows for guest issues, payment state, and configuration fixes.