HospOS | Hospitality OS + Public Portal

typescript node.js postgresql tanstack-start react tailwindcss docker cqrs event-sourcing
Upcoming This project is in active development. Stay tuned for updates as we work toward the first release.

Cover Image

HospOS | Hospitality OS + Public Portal


Note

HospOS is in early development. The architecture is locked and the backend + portal scaffolds are built, but there’s no public deployment yet. This is a private, solo-built project seeking co-founders and founding team members.

What Is This

A platform built around three layers:

  1. Hospitality OS — B2B SaaS operating system for hotels, resorts, motels, villas, guest houses, and homestays. The system of record: units, inventory, rates, reservations, front-desk, guests, housekeeping, billing, payments, staff/RBAC.
  2. Public Stay Portal — B2C discovery and booking marketplace. Consumes supply published from Hospitality OS. One switch — Publish — and your property is live on the marketplace.
  3. Experimental Portals (optional / post-MVP) — A framework for launching adjacent travel verticals (Trips, Tours, Experiences) as growth bets.

The flywheel: properties adopt Hospitality OS for its own value → publish supply to the public portal → travelers book → properties see channel value → “I need the whole OS” becomes the natural progression.


What’s Built

Public Stay Portal (B2C)

A fully functional booking experience — discover, browse, book, manage. SSR-first with TanStack Start.

  • Homepage — category navigation (Beachfront, City stays, Countryside, Luxury, Family, Budget), city exploration, featured stays.
  • Property pages — rich detail pages with photo galleries, amenities, pricing, reviews, and real-time availability.
  • Booking flow — 4-step checkout: dates → guest details → payment intent → confirmation. Writes directly into Hospitality OS — no duplicate state.
  • Auth — login, register, phone verification.
  • Manage booking — view and manage existing reservations.

Hospitality OS Dashboard (B2B)

The operations backend — a full sidebar-driven dashboard with 15+ routes.

  • Property Overview — live stats: properties, reservations, guests, status.
  • Reservations — holds-first pipeline with real reservation data, status tracking (Confirmed, Checked_out, Cancelled, Expired).
  • Inventory & Rates — availability calendars and pricing rules.
  • Guests & Billing — CRM profiles, invoicing, payments.
  • Housekeeping — status boards and task management.
  • Publishing — one-switch publish to the public portal.
  • Staff & RBAC — role-based access control.
  • Analytics — occupancy, ADR, RevPAR lite.

Backend (API + Worker)

A modular monolith with 16 domain modules, built on Express 5 with PostgreSQL.

identity | property | publishing | inventory | rate | reservation |
guest | billing | payment | housekeeping | review | notification |
search | analytics | audit | portal-booking
  • DDD + CQRS — domain-driven design with command/query separation.
  • Transactional Outbox — reliable event publishing via immutable shared.event_log.
  • Sagas — distributed transaction orchestration (booking flow: veil → guest → hold → reservation → checkout → confirm).
  • Inbox Deduplication — idempotent event handling.
  • Worker — async event processing, email notifications, projection updates.

QA & Verification

  • 139 Bruno API test files (25 negative-path) covering all modules.
  • End-to-end booking verified live — P1 publish → P2 discover → booking → webhook → confirmation. Multiple real bookings confirmed with actual IDs.
  • All gates green — typecheck, lint, API, worker, P1, P2, build, boundaries.

Teaser Screenshots

Public Stay Portal — Homepage

Stay Portal homepage — category navigation, search, city exploration, featured stays

Browse published properties across Bangladesh — Dhaka, Cox’s Bazar, Sylhet, Chittagong. Direct booking, no hidden fees.

Property Detail Page

Property detail — Heritage Paharpur Inn with photo gallery, pricing, and booking widget

Rich property pages with photo galleries, amenities, real-time pricing (BDT), and a streamlined booking widget. “Best direct rate” guaranteed.

Hospitality OS Dashboard

Dashboard overview — 278 properties, 135 reservations, 58 guests, recent reservation list

The operations backend. Live data from API — reservation states, guest CRM, housekeeping status, publishing controls. All wired, no placeholders.


Tech Stack

Backend

  • Node.js 22 — runtime
  • Express 5 — modular monolith with schema-per-module architecture
  • PostgreSQL — primary database (Kysely for typed queries)
  • Redis — caching, sessions, event bus

Web (SSR-first)

  • TanStack Start — React-based SSR framework
  • React — UI components
  • TypeScript — strict mode throughout
  • TailwindCSS — utility-first styling

Infrastructure

  • Docker Compose — local dev environment (Postgres, Redis, Mailpit, WireMock)
  • Turborepo — monorepo build orchestration
  • pnpm — package management

Architecture

  • DDD + CQRS — domain-driven design with command/query separation
  • Transactional Outbox — reliable event publishing via immutable shared.event_log
  • Sagas — distributed transaction orchestration
  • Inbox Deduplication — idempotent event handling

Monorepo Layout

apps/
  api                    # Express 5 modular monolith (16 domain modules)
  worker                 # Async event processor
  p1-dashboard-web       # B2B operations dashboard (TanStack Start)
  p2-public-web          # B2C booking portal (TanStack Start)
  p2-mobile              # Expo mobile (planned)
  p1-desktop             # Electron staff client (planned)

packages/
  contracts | schemas | api-client | auth-core | permissions |
  design-tokens | i18n | analytics | notification | ui | tooling

Backend uses a dedicated Postgres schema per domain module, connected through a shared event log with transactional outbox and inbox deduplication.


Current Status

Early development. Architecture is locked, backend and portal scaffolds are built, but no public deployment yet. This is a private, solo-built project seeking co-founders and founding team members.

AreaStatus
Backend (API + Worker)Modular monolith with 16 domain modules, architecture locked
Public Stay PortalScaffold built — search, property pages, booking flow
Dashboard (P1)Scaffold built — 15 sidebar routes
QA Automation139 Bruno test files, manual verification
ArchitectureLocked — DDD + CQRS, modular monolith, outbox pattern
DeploymentNot yet — staging is the next gate

Next Steps

  1. Founding team — co-founders, engineers, operations
  2. Staging deployment — secrets provisioning, Dockerfiles, production CORS
  3. Moneybag sandbox verification — payment adapter validation
  4. Phase 2 surface — search, compare, rooms, reviews UI, account area
  5. Mobile/Desktop — Expo + Electron clients

License

HospOS is a private, closed-source project. No open-source plans at this time.

Found this project useful? Support my work ☕