Holiday décor brand family. Two surfaces: the marketing + package-booking site (Next.js monorepo with a Convex backend) and the four-shop dropship storefront — porch, yard, car, and dog — one shared cart, with internal purchasing manifests for order fulfillment.
LiveCommerce wiring pending (Convex / Stripe)
| Marketing repo | microspaces/holidacor — pnpm + Turbo monorepo: apps/web, apps/installer, packages/convex |
|---|---|
| Shopfront repo | microspaces/holidacorshop — single Next.js 14 app |
| Local | C:/Users/AI/Repos/holidacor · C:/Users/AI/Repos/holidacorshop |
| Marketing live | holidacor-web.vercel.app — Vercel project holidacor-web (prj_S6jARdYFDyR9awcqehV652HVUV8a), rootDirectory apps/web |
| Shopfront live | holidacorshop.vercel.app — Vercel project holidacorshop (prj_oLaPn2m87CAqNZi1tMOB8nEvf9Pw) |
| Owner agent | holidacordev |
| Brand family | Holidácor (porch) · Holidáworld (yard) · Holidácar (car) · Holidáwg (dog) — eight holidays a year |
apps/web)[holiday] route with site chrome; front page features 6 of the 8 holidays (Valentine's, St. Patrick's, Easter, Memorial Day, July 4th, Halloween, Thanksgiving, Christmas).apps/installer) — installer-side surface: payments, messaging, availability, dispatch, notifications.packages/convex) — payments, messaging, availability, dispatch, notifications scaffolding. Not yet mounted: ConvexProvider + NEXT_PUBLIC_CONVEX_URL are pending, so no live orders/bookings yet.holidacorshop)localStorage cart across all four.hc-package-halloween $129.99, hc-package-christmas $169.99 with compare-at pricing).POST /api/orders → order saved as JSON under data/orders/ (ids HS-XXXXXX); confirmation groups line items by supplier./admin (noindex, unlinked, "INTERNAL PURCHASING / NOT CUSTOMER FACING" banner): orders dashboard with All / Halloween / Christmas tabs./admin/orders/[id]: ship-to block with copy, supplier-grouped purchase list with "from package" tags, package summary, print view./admin has none yet (TODO v2). Stripe checkout button and supplier email dispatch (Resend) are stubbed.The lifecycle of one Holidácor order — from checkout to a finished porch — and where automation ends. Current-state as of 2026-09-09, E2E-verified with order HS-HFAN79 (see Test results).
POST /api/orders validates, assigns an HS-XXXXXX id, and persists the order JSON under data/orders/./orders/[id]) groups line items by supplier so the customer sees who ships what.Marketing-site package booking (Essential / Signature / Grand) is not wired yet — no ConvexProvider / NEXT_PUBLIC_CONVEX_URL, Stripe stubbed — so shopfront checkout is the only live order path today.
/admin — the order appears in the All / Halloween / Christmas tabs./admin/orders/[id] renders the purchasing manifest: ship-to block with copy, package summary, and PRODUCTS TO PURCHASE grouped by supplier — package contents are exploded into individual rows tagged "from package", and the bundle line itself is excluded from re-ordering.AmazonCartButton builds an Amazon cart from mapped supplier SKUs).lib/suppliers.ts is placeholder — rows show "MAP NEEDED" with generic SupplierA / SupplierB groups, and the Amazon bulk-cart link stays hidden until SKUs are mapped. Real supplier data is the next ops unlock.apps/installer: availability, dispatch, messaging, payments over packages/convex) is scaffolding; the Convex backend isn't deployed, so install scheduling is manual today.Shared cart (localStorage across 4 shops)
│
▼
POST /api/orders → data/orders/HS-XXXXXX.json
│
▼
/orders/[id] confirmation — line items grouped by supplier
│
▼
/admin + /admin/orders/[id] — per-supplier purchasing manifest
(ship-to + items + "from package" tags, print)
Push to main triggers .github/workflows/deploy.yml: pnpm install → pnpm build (Turbo) → npx vercel@latest deploy --prod --yes from the repo root. Vercel project setting rootDirectory: apps/web handles the subpath — don't change it, and don't run the deploy from apps/web (the path doubles).
vercel/action-deploy doesn't exist; Turbo 2.x wants tasks not pipeline in turbo.json; the amondnet action bundles an ancient CLI — call npx --yes vercel@latest directly. GitHub Secrets: VERCEL_TOKEN, VERCEL_ORG_ID, VERCEL_PROJECT_ID.No GitHub Actions — Vercel project holidacorshop is linked (git integration) and serves latest main. Local: npm install · npm run dev.
| Marketing stack | pnpm workspaces + Turbo 2.x · Next.js 14 App Router + Tailwind · packages/convex backend |
|---|---|
| Shopfront stack | Next.js 14.2.15 App Router + Tailwind 3 · data layer in lib/*.ts (products, packages, shops, holidays, orders) · JSON file storage under data/orders/ |
| Vercel | holidacor-web (rootDirectory apps/web, env listed in vercel-project.json: NEXT_PUBLIC_CONVEX_URL, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, INTERNAL_API_KEY) · holidacorshop (linked) |
| CI | holidacor: .github/workflows/deploy.yml · holidacorshop: none (Vercel git integration) |
| Local | holidacor: pnpm install · pnpm dev · holidacorshop: npm run dev |
holidacor/ holidacorshop/
apps/web/ app/
apps/installer/ holidacor|holidaworld|holidacar|holidawg/
packages/convex/ cart · checkout · orders/[id]
admin/ · admin/orders/[id]
api/orders/route.ts
lib/ · data/orders/
--user-data-dir=%TEMP%\… or they silently fail, and PowerShell array-in-foreach mangles --window-size (pass sizes literally). Running npm run build while next dev is up corrupts .next.Live roadmap, managed as GitHub issues (holidacorshop issues). Add or close items on GitHub — ☑ = done, close as “not planned” to remove.
2026-09-04 — live verification for this doc
/packages, shopfront home (attached in Overview).2026-08-22 — shopfront packages + admin manifests
HS-4SJBQU (Halloween ×2 + Christmas ×1, $429.97) verified end-to-end via POST /api/orders.35d6226): Halloween package shows $143.94 → $129.99, matching contents sum.2026-08-17 — marketing deploy pipeline
tasks, direct vercel@latest CLI); dark-default hero live.Commerce paths (Convex, Stripe) are not live yet — treat current state as marketing + catalog/manifest verification, not a full commerce QA pass.