Infinity Ocean · catamaran tours
From five systems and a WhatsApp chat to one platform.
Payroll in production The spreadsheet stays the official record until two pay periods close with zero difference. Bookings and receivables: ready, with the data loaded. E-invoicing: pending.
- Before
- Five tools that didn’t talk to each other, and a WhatsApp chat.
- Today
- One platform, one module at a time: bookings, mobile check-in, dock boarding, billing, payroll, inventory and accounting.
- The system proposes, a person authorizes: invoices and reconciliations arrive prepared, and someone approves them.
- It never invents an absence: anything unclear is flagged as a “possible absence”, and a person decides.
- Billing follows who actually boarded: closing the departure at the dock locks in what gets billed.
- 4,784cell-by-cell comparisons against the payroll spreadsheet, all exact
- 851automated tests
- ~3weeks to build, one developer, AI-assisted
Built with: Next.js · React · TypeScript · Postgres · Drizzle · Vitest





