Two lead-gen concept sites β Backyard Hangout (outdoor builds) and Home Hangout (indoor hangout spaces) β from one pnpm monorepo. Shared UI kit, 18 AI-generated lifestyle photos we own outright, an in-browser planner quiz, and zero backend to go down. Both sites are live on their own .com domains; the money rail (quiz β CRM lead capture) shipped 2026-10-18.
Live on both .com domains since 2026-09-04CI deploys greenLeads β CRM live 2026-10-18
Two niche lead-gen sites aimed at the same buyer moment β building a hangout space β split by indoors vs outdoors so each site owns one search surface. Backyard Hangout covers pools, courts, outdoor kitchens; Home Hangout covers theaters, arcades, saunas. One monorepo, one design system (@qh/ui), two Vercel projects. The quiz is the engagement hook: it runs entirely client-side, and since 2026-10-18 the email ask (quiz result + about page) posts leads straight into the shared CRM.
| Discord channel | #quality-hangouts (Super Star Sale guild) |
|---|---|
| Repo | microspaces/qualityhangouts (private, created 2026-09-04) |
| Owner agent | qualityhangoutsdev |
| Deep docs | projects/qualityhangouts.html β build/flow/CI details, screenshots |
| App | Domain | Vercel project | Root directory |
|---|---|---|---|
| backyard-hangout | backyardhangout.com (+ www) | backyard-hangout | apps/backyard-hangout |
| home-hangout | homehangout.com (+ www) | home-hangout | apps/home-hangout |
/, /ideas grid, 8 category pages, /quiz, /about β 17 static routes per site, all SSG.@qh/ui kit (Hero, Card, CostTiers, ZoneList, QuizFlow, SiteHeader/Footer); palette, copy, and content differ per app.gpt-image-2 (no stock licenses), compressed to webp.sitemap.ts, robots.ts, static SSG output.| Monorepo | pnpm 9.15.0 workspaces β apps/backyard-hangout, apps/home-hangout, packages/ui (@qh/ui), packages/config (@qh/config) |
|---|---|
| Stack | Next 16.3.3 Β· React 19.2.8 Β· Tailwind CSS v4 Β· TypeScript 5.9 |
| Hosting | Vercel (framework nextjs, rootDirectory apps/<app>), one project per app |
| CI | .github/workflows/vercel-deploy.yml β matrix job per app: link β PATCH rootDirectory β vercel deploy --prod (auth = VERCEL_TOKEN repo secret). Not Vercel git integration. |
| Local run | pnpm install Β· pnpm build Β· pnpm dev:backyard / pnpm dev:home (Git Bash on Windows; next start -p 3011/-p 3012 for prod checks) |
apps/<app> fails β the root pnpm workspace (with workspace:* deps) must be uploaded and the project's rootDirectory must point at apps/<app>. CLI deploys carry no branch metadata, so leave gitBranch unset when attaching domains.Live roadmap, managed as GitHub issues (superstarsale issues). Add or close items on GitHub β β = done, close as βnot plannedβ to remove.
Deep test log + prod screenshots live on projects/qualityhangouts.html. Summary:
pnpm build clean, 17 static routes per app; desktop screenshots of all four key pages verified before deploy; /, /ideas/<slug>, /quiz, and /images/*.webp all 200 on both *.vercel.app domains./api/leads 200 created:true; note carried blueprint name ("The Deep End"), budget band, zones, all six labeled answers. About-page form captured too. Dedupe (created:false + appended note), honeypot drop, and CORS preflight all verified against production. All test contacts/notes deleted after β readback showed 0 remaining on both site scopes.