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
Scope
Guest flow, dashboard, payments, verification, upsells, PMS sync
Year
2025
Fig. 01 — PRE-CHECK-IN APP · Product
3,000+
Monthly active guests
Multi-tenant
Org-isolated bookings
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.

  • Multi-tenant SaaS

    Org-isolated bookings, users, settings, and properties

  • Guest pre-arrival flow

    Identity, payments, deposits, signatures, and upsells

  • Operator command center

    Booking readiness, channel rules, and exception triage

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.

Architecture

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.

Tech stack

  • Next.js 15 + React 19

    App Router with Server Components by default and Client Components for interactive surfaces.

  • TypeScript

    End-to-end typing including Zod-derived schemas across forms and server actions.

  • Tailwind CSS + Radix UI

    Utility-first styling with accessibility primitives from Radix.

  • React Hook Form + Zod

    Form state and validation across every check-in step.

  • TanStack Query + Table

    Client data fetching and dashboard tables.

  • Supabase

    Postgres database with row-level security backing tenant isolation.

  • Authentication

    Supabase Auth with magic links and OAuth.

  • Stripe

    Payments, security deposits, webhooks, and Stripe React SDK.

  • Beds24 API

    Reservation and property sync with the property-management system.

  • Resend + React Email

    Transactional email templates and delivery.

  • Vercel

    Hosting for the Next.js app, server actions, API routes, and webhook handlers.

Product surface

  • 01

    Guest check-in flow

    Guided multi-step flow covering identity, payments, deposits, signatures, and upsells.

  • 02

    Admin dashboard

    Booking readiness, filters, payment, deposit, and verification state with operational actions.

  • 03

    Payments and deposits

    Stripe checkout, security deposit holds, captures, releases, refunds, and voids.

  • 04

    Verification

    ID upload, selfie capture, credit-card image, and document review flows.

  • 05

    Upsells and channel rules

    Property and channel-specific add-ons plus per-channel payment and deposit behavior.

  • 06

    Guest and operator chat

    Real-time messaging tied to the check-in experience.

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.

  • 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