
2026
Hotel PMS
Property management and booking system for small hotels, with a live calendar and channel sync.
- Role
- Designed and built (solo)
- Year
- 2026
- Stack
- React · TypeScript · Tailwind CSS · Supabase
Repository (opens in a new tab)
How it works
Open the property
Set the name, currency, hours, and rooms.
Take a booking
Choose a room and dates. An overlap is rejected in the database.
Stay in sync
Each room can export an iCal feed and import one from a channel.
Overview
Hotel PMS is a booking and property system for boutique hotels, resorts, and serviced apartments. Staff get a calendar, a guest list, and a revenue view. I designed and built it solo.
Problem
A small property still has to stop the same room being sold twice, including when a booking arrives from an online travel agency. A spreadsheet misses that overlap.
Solution
The calendar is the daily view. Postgres rejects a second active booking for the same room and dates. Each room can publish an iCal feed and import one from a channel.
Key features
- Month, week, day, and agenda calendar
- Guest directory with reservation history
- Revenue figures, including average daily rate
- iCal export and import for channel calendars
- Installable PWA, with a phone layout and bottom tab bar
- Staff sign-in with Row Level Security
Security notes
Staff accounts use Supabase Auth. Row Level Security covers the property records. An overlapping stay is rejected by a database trigger, so the check does not depend on the calendar screen alone.
Outcome
A property can record a stay, block those dates against another booking, and read revenue from the reservations it stored.
