External dashboards

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

To create a custom Coffee Shop 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 Coffee Shop's product-specific operator 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 Coffee Shop codebase before proposing work.

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

Platform pages

Routes are app/dashboard/(admin)/platform/<route>/page.tsx. Slices are features/platform/<slice>. Navigation is defined in features/platform/lib/navigation.ts.

PageSliceWhat operators do thereMain operations
/dashboard/platform/ordersordersOrder queue with status and fulfillment filters and search. Accept, move through bar states, cancel, record payment at pickup, refund, link rewardsCoffeeOrderQueue (getCoffeeOrderQueue), AcceptCafePickupOrder, UpdateCafeOrderStatus, RecordCafePayment, RefundCafePayment, ApplyCafeLoyalty
/dashboard/platform/menumenuCategories, items, prices, availability, featured and popular flags, modifiers, modifier stock, and modifier inventory mappingCoffeeMenuManager, CoffeeMenuInventoryOptions, CreateCoffeeMenuCategory, CreateCoffeeMenuItem, UpdateCoffeeMenuItem, CreateCoffeeMenuModifier, UpdateCoffeeMenuModifier, UpdateCoffeeModifierStock
/dashboard/platform/posposRing up counter sales for cash or an attested card terminal approval; open the drawer, record pay-ins, pay-outs, and drops, and close it with a countCoffeePosRegister, QuotePosOrder, CreateCafePickupOrder, OpenRegisterShift, RecordRegisterCashMovement, CloseRegisterShift
/dashboard/platform/reportsreportsAnalytics for 7, 30, or 90 days or a custom range: sales ledger, top items, items by station, low stock, top rewards accountsCoffeeReports (getCoffeeReports)
/dashboard/platform/register, /[id]registerRegister shift history and a payments view (?view=payments); shift detail with cash movements, POS receipts, and payments. Read-onlyCoffeeRegisterShifts, CoffeeRegisterPayments, CoffeeRegisterCurrent, CoffeeRegisterShiftDetail
/dashboard/platform/inventory, /[id]inventoryAll, Low, and Out tabs; create and edit items; per-item movement ledger, lots, waste, and purchase orders, with PO cancelCoffeeInventoryList, CoffeeInventoryDetail, CreateCoffeeInventoryItem, UpdateCoffeeInventoryItem, CancelCoffeePurchaseOrder
/dashboard/platform/suppliers, /[id]suppliersStatus tabs; create and edit; pause, activate, archive; delete only when unused; supplier POs and lotsCoffeeSupplierList, CoffeeSupplierDetail, CreateCoffeeSupplier, UpdateCoffeeSupplier, DeleteCoffeeSupplier
/dashboard/platform/recipes, /[id]recipesDraft, Active, and Archived tabs; recipe builder with ingredients, cost per yield unit, and servings from stock; one active recipe per menu itemPlatformRecipeList, PlatformRecipeDetail, CreatePlatformRecipe, UpdatePlatformRecipe, SetPlatformRecipeStatus, CreatePlatformIngredient, UpdatePlatformIngredient, DeletePlatformIngredient
/dashboard/platform/coffee-operationscoffee-operationsOrder stock, receive, prep batches, waste, stock counts, and staff shifts (schedule, clock in, clock out, missed); recent recordsCoffeeOperationsPage (getCoffeeOperations), CreatePurchaseOrder, ReceivePurchaseOrder, CompletePrepBatch, RecordWaste, RecordStockCount, ScheduleStaffShift, UpdateStaffShift
/dashboard/platform/loyalty, /[id]loyaltyRewards accounts; adjust points and drink credits, set tier, pause, reactivate, or close; full event ledgerCoffeeLoyaltyAccounts, CoffeeLoyaltyAccountDetail, AdjustCoffeeLoyaltyAccount
/dashboard/platform/catering, /[id]cateringCreate staff inquiries; edit event facts and quote; send quote, confirm, complete, cancelPlatformCateringList, PlatformCateringDetail, PlatformCreateCatering, PlatformUpdateCatering, PlatformCateringStatus
/dashboard/platform/subscriptions, /[id]subscriptionsCreate a subscription against a rewards account; activate, pause, resume, cancelPlatformSubscriptionList, PlatformSubscriptionDetail, PlatformSubscriptionAccounts, PlatformCreateSubscription, PlatformSubscriptionStatus
/dashboard/platform/kdskdsBar display: bump order items through queued, preparing, ready, and handed off, with recovery for retried commandsCoffeeKdsBoard, CoffeeKdsRecoveryScope, UpdateCafeOrderItemStatus
/dashboard/platform/store-settingsstore-settingsIdentity, logo, contact and location, hours, pickup and tax settings; online card payment switchCoffeePlatformStoreSettings, UpdateCoffeePlatformStoreSettings, CreateCoffeePlatformStoreSettings, CoffeeOnlinePaymentSetting, SetCoffeeOnlinePayment

Onboarding lives in features/platform/onboarding and runs RunCoffeeOnboarding from a dialog in the dashboard shell.

Lists without a dedicated page are edited on the generic /dashboard/<list-key> pages. These include MenuItemImage, User, Role, and PaymentProvider. The outbox lists are hidden and system-only.

Notes for a custom dashboard

  • Order state, payments, refunds, stock levels, menu prices, and modifier stock change only through the named commands above. Generated updates for those fields are blocked.
  • Most commands need an idempotencyKey. Generate one per user intent and reuse it on retry.
  • KDS and menu commands check expectedStatus or expectedUpdatedAt. Pass the value you last read so stale screens fail instead of overwriting.
  • Card payments at the POS record the cashier's entry of a terminal approval.

On this page