External dashboards

Give an LLM the Rental dashboard skill to adapt the built-in host experience or create a separate client.

To create a custom Rental dashboard, copy the skill and give it to your LLM. The skill will explain how features/dashboard supplies the Keystone administration shell while features/platform contains Rental's product-specific host experience.

After that source orientation, it will ask what you dislike, what should stay, what workflows and users matter, and what the replacement should look and feel like. It then traces the exact routes, feature slices, GraphQL calls, schema, access rules, sessions, and provider boundaries in the supplied Rental codebase before proposing work.

Skill file: /skills/openfront-rental-custom-dashboard/SKILL.md

Current platform pages

Routes are app/dashboard/(admin)/platform/<route>/page.tsx. Each route file only re-exports a screen from features/platform. The sidebar entries and the permission each one needs are in features/platform/lib/navigation.ts.

PageWhat hosts do thereScreenPermission
/dashboard/platform/todayArrivals, departures, in-house guests, and work waitingoperations/screens/TodayPagecanReadReservations
/dashboard/platform/properties, /create, /[id]Homes, addresses, units, bedrooms, beds; create a propertyworkspaces/screens/HostWorkspaces, PropertyCreatePage, HostWorkspaceDetailscanReadProperties
/dashboard/platform/listings, /create, /[id], /[id]/editPublic listing pages, media, amenities, house rules, readinessworkspaces/screens/HostWorkspaces, ListingCreatePage, ListingEditPage, HostWorkspaceDetailscanReadListings
/dashboard/platform/calendarReservation, owner, preparation, and channel blocks; create and release blockscalendar/screens/HostCalendarPagecanReadCalendar
/dashboard/platform/tasksHousekeeping, inspections, maintenance; run task rulestasks/screens/OperationsTasksPagecanReadProperties
/dashboard/platform/reservations, /[id]Stay list and detail; confirm, check in, complete, cancel, amend, reassign, record payments, deposits, claims, refundsreservations/screens/ReservationWorkspacePage, ReservationDetailPagecanReadReservations
/dashboard/platform/agreements, /[id]Versioned terms and signature evidence; void or reissueworkspaces/screens/HostWorkspaces, HostWorkspaceDetailscanReadReservations
/dashboard/platform/guests, /[id]Guest profiles, parties, and stay historyworkspaces/screens/HostWorkspaces, HostWorkspaceDetailscanReadGuests
/dashboard/platform/inbox, /[id]Guest conversations; reply, change status, revoke or reissue linksworkspaces/screens/HostWorkspaces, HostWorkspaceDetailscanReadMessages
/dashboard/platform/pricing, /create, /[id], /[id]/editRate plans, seasons, fees, taxes, and policiesworkspaces/screens/HostWorkspaces, RatePlanPages, HostWorkspaceDetailscanReadPricing
/dashboard/platform/payments, /[id]Payment records and refundsworkspaces/screens/HostWorkspaces, HostWorkspaceDetailscanReadPayments
/dashboard/platform/payouts, /[id], /statements/[id]Owner assignments, statements, and payout recordsowners/screens/OwnerFinancePage, OwnerStatementDetailPage, workspaces/screens/HostWorkspaceDetailscanReadPayouts
/dashboard/platform/reportsOccupancy, revenue, owner net, task health, channel evidence; host archive exportreports/screens/HostReportsPagecanReadReports
/dashboard/platform/channelsChannel connections, listing mappings, iCalendar importchannels/screens/ChannelWorkspacePagecanReadChannels
/dashboard/platform/reviews, /[id]Guest reviews; publish, hold, removeworkspaces/screens/HostWorkspaces, HostWorkspaceDetailscanReadReviews
/dashboard/platform/store-settingsPublic identity, contact, localization, logo, and accent colorstore-settings/screens/StoreSettingsPagecanManageSettings

Other dashboard routes come from features/dashboard: /dashboard (home), /dashboard/[listKey], /dashboard/[listKey]/create, /dashboard/[listKey]/[id] (generic Keystone lists), /dashboard/init, /dashboard/signin, /dashboard/signup, /dashboard/reset, and /dashboard/no-access.

How the pages talk to the server

Screens call named GraphQL documents from their slice's actions folder. Reads are workspace queries such as TodayOverview, ReservationWorkspace, ReservationDetail, HostCalendar, PricingWorkspace, PaymentWorkspace, OwnerWorkspace, ChannelWorkspace, HostOperationsReport, and ListingReadinessIndex. Most writes go through mutation HostStayCommand, which calls hostStayCommand(command, input). Other writes use dedicated mutations such as CreatePlatformProperty, CreatePlatformListing, CreatePlatformRatePlan, CreateCalendarBlock, ReleaseCalendarBlock, ImportCalendar, GenerateOwnerStatement, TransitionOwnerStatement, CreatePropertyTask, TransitionPropertyTask, RunPropertyTaskRules, and UpdateMarketplaceSettings. See the overview for the server operations.

Sidebar items are listed for every user. Each page and command checks the user's own permissions and host membership.

On this page