Files
zeekay 6cfea751c7 shop-storefront: minimal editorial product storefront on the Hanzo stack
MONO — a monochrome shop of design objects: storefront grid, product detail,
and cart over @hanzo/gui (UI) + @hanzo/iam (PKCE auth) + @hanzo/base (org-scoped
data). Forked from hanzo-starter with an identical provider stack, vite config,
auth, and deploy contract.

- schema.sql: products + cart_items collections, org-scoped
- generated monochrome studio imagery from the design system (no asset deps)
- checkout stub clears the cart (wire to Hanzo Commerce for real orders)
2026-07-21 13:41:07 -07:00

28 lines
1.1 KiB
YAML

# Hanzo Cloud build/deploy manifest — hanzo-apps/shop-storefront
#
# A forked app is a STATIC SPA: Vite builds `dist/`, Hanzo Cloud serves it at
# `<slug>.hanzo.app` from the project's object-storage prefix (the `*.hanzo.app`
# published-sites edge). There is no server process — identity + data are done
# in the browser (Hanzo IAM PKCE -> IAM token -> Hanzo Base).
build:
runtime: static
install: npm ci
command: npm run build
output: dist
# Serve index.html for client routes (the /auth/callback PKCE return leg).
spa: true
# The Base data plane provisioned on publish. Hanzo Cloud reads this DDL and
# runs `provisionBaseFromDDL` (creates the collections, org-scoped, IAM-native).
data:
base: true
schema: schema.sql
# Injected into the build as import.meta.env.* (see .env.example / README).
# The deploy pipeline overrides VITE_HANZO_BASE_URL with the provisioned URL and
# ensures VITE_HANZO_CLIENT_ID's IAM client allows this origin's /auth/callback.
env:
VITE_HANZO_IAM_URL: https://hanzo.id
VITE_HANZO_CLIENT_ID: hanzo-app
VITE_HANZO_BASE_URL: https://api.hanzo.ai