搜尋說明文件

搜尋文件頁面與標題。

JustHold Project Foundation

Also follow Shared skills: web-service-stack, nextjs-rsc-patterns, api-supabase-routes, supabase-clients.

Stack

pnpm monorepo: apps/web (Next.js App Router, React 19), apps/mobile (@justhold/mobile Expo), packages/ui (@justhold/ui), packages/tokens (@justhold/tokens). Supabase (Auth + Postgres + RLS), Tailwind CSS v4, shadcn base-nova / Base UI, next-intl (en default at /, zh-hant at /zh-hant).

App shells

  • Public marketing: HomeHeader + HomeFooter under apps/web/app/[locale]/(home)/…
  • Member: top-nav shell (desktop) + bottom tabs (mobile) in apps/web/app/[locale]/(member)/member/layout.tsx
  • Admin: English-only apps/web/app/admin/ (no locale segment)

Defaults

  • Prefer Server Components; 'use client' only for real interactivity.
  • Use semantic theme tokens from apps/web/app/globals.css (web) or @justhold/tokens (mobile) — never hardcode hex in components. Warm neutrals + single terracotta primary in both modes.
  • Format dates/money via lib/format.ts.
  • Unit-test pure helpers in apps/web/lib/ under apps/web/tests/unit/ — do not invent new test roots. Run Vitest from the repo root (pnpm test).
  • Shared primitives: import from @justhold/ui/components/* and @justhold/ui/lib/utils.
  • Fluid Functionalism (landing chat demo) lives in apps/web/components/fluid/ — not @justhold/ui; do not recreate apps/web/components/ui.
  • For Supabase or shadcn tasks, follow the matching skill under .agents/skills/.
SkillWhen
justhold-i18nLocales, messages, admin exception
justhold-design-tokensPalette, fonts, radius
justhold-ui-layoutUI primitives + page shells
cursor-style-desktop-demoLanding multi-window Play demos (Cursor get-started style)
justhold-mdx-contentAdmin CMS MDX posts (Supabase + R2)
justhold-testingVitest unit/integration + Playwright e2e
justhold-git-commitsStep-narrative commits; split diffs; commit message style

Commands

ActionCommand
Installpnpm install (repo root)
Dev (web)pnpm dev
Dev (iOS)pnpm dev:ios
Dev (Android)pnpm dev:android
Buildpnpm build
Unit testspnpm test
Integrationpnpm test:int
E2Epnpm test:e2e