About the project
Kervia is a multi-tenant property management system (PMS) that brings a hotel's daily operation together in one cloud platform. The goal is to end the reality most small and mid-sized properties live with: running the business across five disconnected tools — spreadsheets, messaging apps, OTA extranets, the government ID reporting portal and a separate accounting program.
I designed and built the product end to end: data model and backend architecture, multi-tenant isolation, the interface, the brand identity and the marketing site.
The problem it solves
When reservations live in one place, folios in another and ID reporting in a third, the gaps show up as double bookings, late statutory filings and billing errors. Kervia puts these processes on a single data model so that one action triggers the next automatically.
Key features
- Visual rack calendar — every room on one screen, drag and drop to change room or dates
- Channel manager — OTA room-type mapping, rate and inventory push, webhook-based reservation intake
- Statutory ID reporting (KBS) — one-click XML submission to the national police system, with full submission history
- Night audit — scheduled automatic close-out via Hangfire
- Accounting — folios, collections, current accounts and UBL-XML e-invoicing
- Housekeeping — room inventory and task management with optimistic concurrency (
) for safe updatesxmin - POS and QR menu — poolside and bar sales, plus in-room digital ordering
- AI-assisted pricing — rate suggestions from occupancy and demand signals, with the final approval always left to the user
Technical approach
The backend is built on ASP.NET Core 8 using a vertical slice architecture: each feature carries its own commands, queries and validation, so modules can grow without leaking into one another. PostgreSQL backs the data layer, and
xmin-based optimistic locking prevents double bookings under concurrent room operations.
Scheduled work — night audit, ID reporting, channel synchronisation — runs on Hangfire. The interface is built with Next.js, with light/dark themes and full localisation.
My role
Product concept, architectural decisions, backend and frontend development, database design, brand identity (logo, colour and type system) and the marketing site — all mine.
