Product · 2026

Tourism Bookings Management System — Casa Cifu

A bespoke multi-tenant Bookings Management System developed for the operator behind Casa Cifu, managing multiple rental locations in Harghita County, Romania. Built on Next.js, Cloudflare, PostgreSQL and NoSQL, with an embeddable JS calendar widget, Brevo API notifications and CSV export.

Tourism Bookings Management System dashboard and multi-chalet reservations calendar

The brief

The client behind Casa Cifu operates multiple rental properties across Harghita County, Romania — a mix of whole-chalet rentals and per-room accommodation. Managing availability, bookings and client communications across several locations through manual processes or disconnected tools was becoming unsustainable as the portfolio grew.

The brief was to build a purpose-built Bookings Management System that could handle the full operational complexity of a multi-location hospitality business — and make that availability visible to guests directly on each property’s website, without requiring a third-party booking platform.

Architecture

Multi-location property management and availability settings

The system is built on Next.js and deployed on Cloudflare’s edge network, with a PostgreSQL relational database handling structured booking and client data, and a NoSQL store for flexible configuration and session data. The UI is built with shadcn/ui components — a composable, accessible component library that accelerates development without sacrificing design control or consistency.

What the system manages

Booking details, pricing breakdown, and guest communications interface

Multi-tenancy with data isolation

The platform is built for multi-tenant operation from the ground up. Each operator account runs in full data isolation — locations, bookings, clients and pricing are entirely separate between tenants, with no cross-contamination at any layer of the stack.

Multiple locations — whole or per room

Each operator can manage multiple properties within a single account. Locations can be configured either as whole-unit rentals — where the entire property is booked as one — or on a per-room basis, where individual rooms within a property are managed and booked independently. The current deployment manages two active locations, with a third scheduled for onboarding in 2027.

Embeddable calendar widget

Each managed location generates an embeddable JavaScript calendar widget that can be dropped into any website with a single script tag — no framework dependency, no complex integration. Once embedded, the widget displays a live availability calendar showing booked periods, available dates and pending requests, pulling data directly from the BMS in real time.

The calendar is the primary guest-facing interface: prospective guests can see availability at a glance and submit a booking request for a specific period directly from the widget on the property’s website.

Half-day management

The calendar operates at half-day granularity — each day is split into check-in and check-out slots. This means the system can correctly represent a departure and an arrival on the same calendar date, eliminating the gap days that simpler systems require between consecutive bookings and maximising occupancy potential.

Bookings, clients and pricing

The BMS manages the full booking lifecycle: incoming requests, client records, confirmed reservations, pricing per location and per period, and booking history. Pricing can be configured per location and adjusted for seasonal periods or specific room types.

Booking notifications — Brevo API

When a guest submits a booking request through the embedded calendar widget, the system triggers an automated notification flow via the Brevo API: the operator receives an instant alert with the booking details, and the guest receives an acknowledgement confirming their request has been received. Booking confirmation or rejection is handled manually by the operator, with follow-up communication managed outside the system.

CSV export

All booking and client data can be exported in CSV format, giving the operator a clean data extract for external reporting, accounting or analysis without requiring access to the database directly.

A system built to grow

Embeddable JS booking calendar widget configuration and preview

The BMS was designed with expansion in mind. Adding a new location requires no code changes — it is a configuration operation within the existing multi-tenant architecture. As the client’s portfolio grows, the system grows with it.

2 Active locations managed, with a third scheduled for 2027
½ day Calendar granularity — check-in and check-out managed within the same day

New project enquiries welcome

Ready to build something that actually works?

Whether you need a new web application, a cloud migration, an automated workflow or a growth campaign — tell us what you are trying to achieve and we will show you how to get there.