External storefronts

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

To create a custom Coffee Shop storefront, copy the skill and give it to your LLM. The skill will explain how features/storefront and the customer-facing app routes implement Coffee Shop's current 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-storefront/SKILL.md

Storefront routes

The home page is app/page.tsx. Other routes live under app/(storefront)/. Logic lives in features/storefront (screens, components, lib/data). There is no country or region prefix.

RouteCustomer journeyNamed operations
/Menu board with search (?q=) and category filter (?category=), store hours and address, cart barStorefrontMenu (getCoffeeMenu), CoffeeStorefrontSettings (getCoffeeStore)
/menu/[id]Item detail with modifiers, then add to cartStorefrontMenuItem (getCoffeeMenu with menuItemId)
/checkoutOrder ahead for pickup: name, email, phone, pickup time, and notes. Pay at pickup by default; pay online by card when Stripe is enabledQuoteCafeOrder, CreateCafePickupOrder, InitiateCafePaymentSession, CheckoutCustomer
/order-confirmed?id=...&key=...Receipt and live status, handoff code, pay online if still unpaid, and "Add to rewards"ConfirmedCafeOrder (getCafeOrder), LookupCafeLoyalty, ApplyCafeLoyalty, InitiateCafePaymentSession
/cateringCatering inquiry: event time, guest count, address, notesRequestCafeCatering
/accountSign in or sign up; once signed in, orders, rewards balance, catering requests, and profileCustomerSignIn, RegisterCoffeeCustomer, CustomerSignOut, CustomerIdentity, CustomerOrders, CustomerCatering, UpdateCoffeeCustomerProfile
/account/resetRequest a reset email, or set a new password with ?token=Keystone password reset link and token redemption

Journey rules

  • The cart lives in the browser's localStorage. The server re-prices every line on quote and on order creation. If the quote changed, checkout asks the customer to review the new total.
  • An online order is a request. It stays open until staff accept it. Stock is consumed on acceptance, not on submit.
  • Guests read their order with the order secretKey, passed as key in the receipt URL. Signed-in customers can read their own orders without it.
  • Online payment only works when getCoffeeStore returns onlinePayment: true. That needs both Stripe keys on the server and the Stripe provider enabled. Stripe Checkout may only return to /order-confirmed.
  • Rewards earn 1 point per dollar of subtotal when the customer links the order by email.

On this page