Skip to content
  • about
  • contact

A studio that ships software and shows its work.

hello@caparisonlab.com, Chittagong, Bangladesh

2026 Caparison Lab

  • work
  • capabilities
  • about
  • contact
  • RSS
work
web application

AlbatrossResortManagement

Front desk, bookings and full accounting for a 53-room resort in Cox's Bazar, run by desk staff and the owner from one web app.

Live since 30 July 2026: 500+ bookings processed, every taka tracked from booking to owner report, and checkout blocked at the database when a bill is unpaid.

ScopingDesignFrontendBackendDatabaseDeploymentWebOpen the live site

client

Hotel Albatross

budget
$5k – 8k
duration
8 weeks
launched
Jul 2026
status
live

stack

reactnext.jstypescriptsupabasetailwindanthropicreactnext.jstypescriptsupabasetailwindanthropicreactnext.jstypescriptsupabasetailwindanthropicreactnext.jstypescriptsupabasetailwindanthropic
f

The brief

Hotel Albatross is a 53-room resort in Cox's Bazar. Bookings, check-ins, payments, refunds and daily cash all ran through the front desk, with the owner reconciling the money after the fact.

The ask that shaped the build: one system the desk can run without training, that the owner can trust without being present. That meant hard rules in the software itself. A guest cannot check out with an unpaid bill, a room cannot be double-booked, cash cannot go negative. And reports that answer the owner's questions directly, including in Bengali.

What we built

A Next.js app on Supabase Postgres, deployed on Vercel. The desk works from a room board and a bookings list, and every money-moving action goes through a database function that enforces the rules, so no browser bug or manual edit can get around them. The owner gets printable reports and an assistant that answers questions about the live data.

  • Room board with per-date availability and one-click booking of a free room.

  • Multi-room bookings with per-room check-in, checkout, early departure and rebooking.

  • Checkout guards in Postgres: an unpaid balance blocks checkout at three layers, with an admin override that records a reason.

  • Accounts suite: cashbook with day-close, expenses, payroll, loans, profit and loss, and a printable monthly owner report.

  • Central cash fund: all revenue lands in one account, and the bank and mobile-money accounts move only by explicit transfer.

  • AI assistant for staff and owner in English, Bengali or Banglish, limited by database permissions to what each role may see.

  • Booking confirmation SMS sized to one billing unit, one per booking, enforced by a unique index.

  • Append-only activity log of every status and money change.

About 20 weeks of work, 21 April to 6 September 2026, and 428 commits.

gallery

Cashbook

Cashbook
Dashboard
Hotel Revenue Report
Rooms
Cashbook
Dashboard
Hotel Revenue Report
Rooms

1 / 4

key decisions

  1. 01

    Money rules live in Postgres, not the browser

    Every path that moves money, whether checkout, cancel, refund or edit, is a database function that re-derives the totals and checks the balance itself. A guard in the client can be walked around through a second door; a trigger and an exclusion constraint cannot. No account balance can go negative and no two active stays can overlap on one room, because the schema says so.

  2. 02

    One central cash fund

    All revenue is credited to cash in hand whatever the payment method, and the bank, bKash and Nagad accounts change only by explicit transfer or a guarded drawdown. That matches how the desk actually handles money, and it makes the owner's accounts reconcile by construction.

  3. 03

    An assistant bounded by grants, not prompts

    The assistant answers a free-form question by writing a single SELECT against nine views, connected as a database role that can only read what the asker's role permits. Staff and owner see different data because Postgres says so, not because a prompt asks nicely.

how it went

  1. 21 April 2026

    Foundation

    First commit: bookings, rooms, auth.

  2. May 2026

    Multi-room and accounts

    Per-room stays, cashbook, payroll, loans.

  3. June to July 2026

    Reports and guards

    Owner report, activity log, the checkout balance guard.

  4. 30 July 2026

    Live

    Launch date pinned in the code, real bookings from day one.

  5. August to September 2026

    Hardening

    Row-level security, database constraints, the AI assistant, SMS, layout.

results

bookings processed since launch

500+

booking references issued from 30 July to early September

first 6 weeks, measured by production database

53

rooms managed daily

across the room board, analytics and availability

ongoing, measured by production database

since launch The client runs it day to day, and we have kept shipping fixes and features against live incidents since launch.

Want something like this?

Front desk software lives or dies on the rules it will not let you break. Tell us what must never happen, and who has to be able to override it.

Build something like this

next

UpworkPilot