Skip to content
The GuestCraft planning grid: rooms by night with their staysThe GuestCraft planning grid: rooms by night with their stays

GuestCraft

An open-source property management system for hotels and vacation rentals, built on Channex. Pre-alpha, and honest about it.

GuestCraft runs the front desk of a property: rooms, reservations, guests, rates, the planning grid, check-in and check-out, the guest folio. It connects to your own Channex account to import OTA bookings and publish availability and prices. It is free software: the core is AGPL-3.0, the SDK and the API contract are MIT, and you host it yourself, on Vercel or with Docker.

GuestCraft is pre-alpha. It can run the daily front desk of a property today, and some areas are partial or still planned. The product status is the source of truth and is updated with every pull request that changes what an operator can do; the summary below follows it.

Implemented

Install, first operator and sign-in. Organizations and workspaces with creation, settings, reversible archival, organization Activity and a recent-workspace switcher. Team, roles and property access. Properties, room types and rooms. Availability per room type and night. Today, with arrivals, departures and in-house guests. Check-in and check-out. Direct reservations with several rooms and per-room quotes. Planning with moves, splits, resizing, keyboard move mode, a “Do not move” flag and Undo. Rates per room or per person, with occupancy curves, child age bands and packages; restrictions and quotes. Out-of-order and out-of-service rooms. Housekeeping tasks, also offline in the mobile app. Maintenance tickets with fault photos. Channex OTA booking import, with the import of existing bookings, reinstatement and alerts. Guests with indexed duplicate and shared-contact review, dismissal undo, manual merge, provenance, separate current consent decisions and histories, OTA contact notices with Apply, and owning-property reassignment. Guest data rights: retention by purpose, erasure, access exports and legal holds. Property performance with historical capacity, pickup comparisons, cash and folio revenue, cancellation trends and consolidation across properties and workspaces, each with chart, table and CSV. Receivables: a shared directory of companies, agencies and OTAs, company folios closed to open items, receipts and allocations, write-offs, expected OTA payouts, aging and statements. Workspace API keys, organization tokens with organization permissions, client sessions limited to properties, one reservation, one guest or a public booking, and the MCP server built into each instance, with OAuth and a confirmation before destructive changes. Outbound webhooks with event versions chosen per endpoint, and the events API. English, light, dark and high-contrast themes.

Partial

Split folios, manual payments, online payments through the workspace’s own Stripe account and cash settlement with country rounding, cancellation policies and no-shows, night audit and business date, the Channex connection, Channex ARI publication and guest messages, the mobile app, the public API and SDK with OAuth applications (SDK not published), and releases (none published yet). Night audit includes local-time automation, optional automatic no-shows, expired-option release and cash drawer shifts; Vercel traffic wakes due audits with a daily cron safety net; without traffic they wait for the cron. Each row of the status page lists what is missing.

Planned

Groups and allotments, online check-in, owner statements and a booking engine. Country modules such as tourist tax, guest registration and e-invoicing: taxes are not computed until a country module exists.

Planning includes drag moves, split stays, edge resizing, keyboard move mode, the Do not move flag and version-checked ten-second Undo. Moves, resizes and their Undo reschedule housekeeping tasks, including the clean of a room a move vacates on a future day. Room status changes publish the unit.housekeeping_changed@1 webhook, and housekeeping tasks publish their creation, assignment and status changes. The head housekeeper plans a day’s roster and applies a previewed automatic assignment with an exact Undo; tasks carry the checklist their template had when they were created. Reporting history starts at upgrade or property creation. Performance uses labelled baseline capacity from inventory first recorded by the end of that local day; pickup cannot reconstruct earlier observations. The reports guide explains the supported range and financial definitions.

Historical captures of a running instance with a fictitious property. Some show the former Italian interface; the current application ships English only.

  • Today: arrivals, departures and in-house guests at the front desk
    Today: arrivals, departures and in-house guests at the front desk
  • A reservation with its stay, guest, price and actions
    A reservation with its stay, guest, price and actions
  • Rates and availability: nightly prices and restrictions in a calendar
    Rates and availability: nightly prices and restrictions in a calendar
  • The guest folio: charges, extras, payments and refunds
    The guest folio: charges, extras, payments and refunds
  • Channex: mapping properties and room types before importing bookings
    Channex: mapping properties and room types before importing bookings
  • Planning with a dated room block for maintenance
    Planning with a dated room block for maintenance
  • Today on a phone
    Today on a phone

GuestCraft is built in the open, with architecture decisions, tests on real PostgreSQL and a quality gate on every pull request.

GuestCraft is not affiliated with Channex.