Marketplace · Payments
Canoe
Nautical experiences, connected. A marketplace bringing bookings, split payments and operations into one platform.

The whole
product.
Canoe is a marketplace platform for selling and managing boat tours in Brazil. Operators register their vessels, set prices and availability, while customers browse, book, and pay online via Stripe. The platform uses Stripe Connect with destination charges for split payments, supports 5 user roles (Admin, Host, Navigator, Seller, Client), and includes features like QR code check-in, real-time messaging, PWA with offline support, and a full admin dashboard. Built with React 18 + TypeScript on Vite, backed by Supabase for auth, database, edge functions, and storage.
Solution scope
Tour bookings, multi-role management, Stripe Connect payments, QR check-in and a PWA experience.
How it works
in practice.
Capabilities connecting the user experience to operational needs.
Stripe Connect Split Payments
Stripe Connect destination charges route payments to hosts and retain a configurable platform commission, with support for card, Pix, asynchronous events and refunds.
Multi-Role User System
5 user roles: Admin (full access), Host/Operator (vessel & booking management), Navigator (QR check-in), Seller (ticket sales), and Client (browse & book).
QR Code Check-in
Navigators validate passenger boarding via QR code scanning. Edge function validates codes and records check-in with timestamp.
PWA with Offline Support
Progressive Web App with vite-plugin-pwa and Workbox. Precaches assets for offline browsing, push notifications, and home screen installation.
Real-time Messaging
In-app chat between customers and hosts for booking inquiries and trip coordination.
Host Dashboard & Financial Management
Complete operator panel with booking management, calendar, availability settings, financial reports, and Stripe Connect onboarding.
Behind
the interface.
Serverless + BaaS
Vite + React SPA served via nginx on Railway (Docker). Supabase provides PostgreSQL database with RLS, authentication (Google OAuth + email/PKCE), file storage, and Deno Edge Functions for server-side logic. Stripe handles all payment processing via Connect platform with webhooks for async events.
Solution components
- React 18 + TypeScript (SPA)
- Supabase Edge Functions (Deno)
- Supabase Auth + PostgreSQL + Storage
- Stripe Connect (Payments)
- Railway + Docker + nginx (Hosting)
Interface & application
Libraries
Data
Infrastructure
Integrations
Explore
the details.
Actual project screens. Select an image to enlarge it and browse the gallery.


