Nook

Guests browse stays with photo carousels and request dates; hosts list stays, accept requests and track earnings. Rules refuse overlapping stays and reviews before a stay, and a daily workflow completes past bookings.

Guests sign up. Hosts list stays and accept requests.

Nook on desktopNook on a phone

What's inside

Stays grid with photo carousels. Booking panel with price breakdown. Host listings, requests and earnings.

Tables

  • guest name, home_city, photo
  • host name, bio, photo, superhost, response_rate, hosting_since
  • stay host_id, title, city, country, kind, summary, price_per_night, cleaning_fee, …
  • booking stay_id, guest_id, host_id, check_in, check_out, guests, nights, total, …
  • booked_range stay_id, booking_id, check_in, check_out, active
  • review stay_id, booking_id, guest_id, rating, comment

Roles

  • guest Guest, consumer
  • host Host, staff

Pages

  • /explore Explore (guest)
  • /trips Trips (guest)
  • /hosting Listings (host)
  • /hosting/requests Requests (host)
  • /hosting/earnings Earnings (host)
  • /team Team & access (host)
  • /stay/:id Stay (guest)

Components

  • NookLogin Postcard sign-in / create-account screen with Google and one-tap demo accounts
  • NookExplore Guest explore: search, filters and a photo-led grid of stays
  • NookTrips Guest trips: next trip, upcoming and past stays, leave a review
  • NookHost Host console: listings, booking requests, earnings
  • NookStay Stay detail: gallery, host, Ask about this stay (AI), amenities, availability calendar, reviews and the booking request panel

Rules on every write

  • stay You can only manage your own listings
  • booking Check-out must be after check-in
  • booking Check-in can't be in the past
  • booking That's more guests than this stay sleeps
  • booking Those dates are already booked
  • review You can review a stay once it has ended

How its workflows run

Each one is a server workflow in your project: it runs on its trigger, with retries, and its runs show in the builder's log.

  1. Booking requested → notify host and hold the dates

    When a row changes: booking created. Then: Notify, then Create booked_range.

  2. Booking confirmed → notify guest

    When a row changes: booking updated, when status is confirmed. Then: Notify.

  3. Booking declined → notify guest, free the dates

    When a row changes: booking updated, when status is declined. Then: Notify, then Look up booked_range, then Update booked_range.

  4. Daily: complete bookings whose check-out has passed

    On a schedule: schedule daily 06:00 over booking. Then: Look up booking, then Update booking.

Set it up

It starts a new project, with its data, roles and sign-in ready.

  1. Start the project

    Use the button above, or ask your coding agent with the Appbricx MCP server connected (quickstart).

  2. Sign in as each role

    The demo logins open each role's home. Change what you like in plain words or in the contract.

  3. Deploy

    When dev looks right, deploy. Production gets a snapshot first, so you can roll back.

Use it with your coding agent

The agent creates the project, builds it and signs in as each role.

Prompt
Start a new Appbricx project from the Nook template (slug "nook") with use_template. Call it "My Nook", then sign in as each role, verify it and tell me what to change first.
MCP call
{
  "tool": "use_template",
  "arguments": {
    "slug": "nook",
    "name": "My Nook"
  }
}
CLI
appbricx templates use nook --name "My Nook"

Make it yours in plain words.