Product architecture

How Havenly works under the hood

A walkthrough of the core flows: how a guest request becomes a confirmed stay, how owners govern their calendar, and how the charitable stay engine routes vetted requests to participating homes.

System map

Public site
Browse · Request
Rules engine
Validate · Route
Records
Property · Booking · Task
Owner portal
Approve · Manage
Operations
Tasks · Turnovers
Admin
Oversight · Reports

Stay request flow

From inquiry to a confirmed, calendar-blocked stay.

  1. Step 1
    Guest selects dates

    Calendar enforces blocked dates and minimum stay rules.

  2. Step 2
    Validation

    Rules engine checks availability, capacity, and charitable eligibility.

  3. Step 3
    Owner review

    Owner sees the request with guest context and message.

  4. Step 4
    Decision

    Approve or decline; calendar auto-blocks on approval.

  5. Step 5
    Operations

    Cleaning + inspection tasks auto-generated for staff.

Rules engine

Each request passes through a deterministic rule chain. The first failing rule blocks the request and is surfaced to the user.

RulePurposeOn failure
availability.notBlockedNo date overlaps with owner blocks or other bookingsSurface conflict in calendar
capacity.guestsWithinLimitGuest count ≤ property capacityInline form error
window.minNightsStay length meets owner's minimumSuggest adjusted dates
charitable.eligibleProperty opted-in and partner organization verifiedRoute to admin review
owner.responseSLAOwner notified; auto-decline after 72hReturned to guest with options

Charitable stay engine

Partner submits
Vetted organization
Match
Eligible homes only
Owner approves
Independent decision
Stay confirmed
Zero cost · Tracked

Core entities

Property
  • · id
  • · ownerId
  • · location · lat/lng
  • · capacity
  • · amenities
  • · charitableEnabled
  • · blockedDates
Booking
  • · id
  • · propertyId
  • · guest
  • · checkIn / checkOut
  • · status
  • · charitable
  • · total
Task
  • · id
  • · propertyId
  • · type
  • · assigneeId
  • · dueDate
  • · status
CharitableRequest
  • · id
  • · propertyId
  • · organization
  • · cause
  • · nights
  • · status
User
  • · id
  • · name · email
  • · role
  • · avatar
Audit (planned)
  • · actor
  • · action
  • · subject
  • · timestamp