Skip to content
Lulebora
Booking Infrastructure2024Live

Komani Ferry Rozafa

A high-availability booking and fleet management system for Albania’s leading ferry operator on Lake Koman.

Next.js 14PostgreSQLStripe APITailwindCSSTypeScript

Komani Ferry Rozafa operates the primary maritime transport route through the Albanian Alps. This system provides a full-stack booking infrastructure, handling complex dynamic pricing based on vehicle dimensions, passenger counts, and seasonal demand. It includes a custom dispatcher dashboard for fleet management, manifest generation, and real-time capacity control — turning a pen-and-paper tourism operation into a fully digital booking enterprise.

The previous operation relied heavily on physical ticket sales, WhatsApp reservations, and manual passenger logs. This led to chronic overbooking during peak summer months, delayed boarding procedures, and revenue leakage from untracked cash transactions. There was no way to accurately predict daily load weights — critical for maritime safety — or securely collect international payments in advance.

A full-scale Next.js 14 architecture was implemented with a custom Stripe integration to handle international multicurrency payments. A headless CMS approach manages the schedule structure, while custom database constraints enforce vessel passenger limits and vehicle deck square-footage limits simultaneously.

System Layers

FrontendNext.js 14 App RouterPublic booking engine and internationalised storefront.
DashboardReact + TailwindDispatcher interface for manifest generation and manual entry.
PaymentsStripe APICustom checkout flow for global card acceptance.
DatabasePostgreSQLStrict transactional integrity for simultaneous booking locks.
  • Dynamic vehicle pricing (length × width factor)
  • Bilingual passenger booking engine
  • Stripe Connect international checkout flow
  • Real-time vessel capacity locking (weight + pax limits)
  • Printable PDF boarding manifests for maritime authorities
  • QR-code ticket generation and scanning

The database is designed to handle concurrency using standard row-level locking during the final checkout phase to prevent double-booking on limited-capacity sailings. Tickets are linked to Sailings, which are instances of Routes. Payments sit in a 1-to-1 relationship with Bookings.

The booking flow reduces cognitive load by splitting the process into discrete, conversational steps: Route Selection, Passenger/Vehicle Entry, and Checkout. The dispatcher dashboard uses data-dense tables with quick-action modals for rapid check-in at the dock.

PCI compliance is handled by offloading raw card data entirely to Stripe. Personally Identifiable Information (PII) like passport numbers required by port authorities are encrypted at rest using AES-256 within the database.

The frontend leverages aggressive static generation and ISR for all marketing pages, ensuring rapid times-to-interactive for tourists on roaming 3G connections in the Albanian Alps. The dynamic booking engine strictly loads only essential client-side JS.

The system launched successfully ahead of the summer season, processing thousands of digital tickets and significantly reducing boarding chaos at the terminal. Revenue recovery improved dramatically by capturing upfront electronic payments instead of relying on cash collections.

Future phases include deeper integrations with local travel agencies via an affiliate API, offline-capable mobile scanning apps for dockworkers, and dynamic yield management pricing based on advanced booking curves.

Build similar infrastructure for your organisation.