個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
A template repository for building Next.js applications with Firebase, deployed on Vercel. Includes opinionated tooling for testing, linting, formatting, component development, and CI/CD.
• Node.js v24+
• pnpm v10+
• A Firebase project with Realtime Database enabled
• A Vercel account (for檢視完整 README ↗A template repository for building Next.js applications with Firebase, deployed on Vercel. Includes opinionated tooling for testing, linting, formatting, component development, and CI/CD.
| Layer | Technology | Purpose |
|---|---|---|
| Framework | Next.js (App Router) | Fullstack React with SSR/API routes |
| Language | TypeScript (strict mode) | Type safety throughout |
| Package Manager | pnpm | Fast, disk-efficient dependency management |
| UI Components | ShadCN UI + Tailwind CSS | Composable, accessible component primitives |
| State (server) | TanStack Query | Server state caching, polling, invalidation |
| State (client) | Redux Toolkit | Local UI state |
| Database | Firebase Realtime Database | Persistent storage with real-time push |
| Auth | Firebase Admin SDK (server) | Session-based auth via API routes |
| Hosting | Vercel | Deployment, preview URLs, edge functions |
| Testing | Vitest + @testing-library/react | Unit, component, and integration tests |
| Visual Testing | Storybook | Component development and visual documentation |
| CI/CD | GitHub Actions | Lint, format, test, build on every PR |
| Monitoring | Sentry | Error tracking (client + server + edge) |
pnpm install
cp .env.example .env.local
pnpm dev
See .env.example for the full list of required and optional environment variables.
pnpm dev # Start dev server
pnpm build # Production build
pnpm lint # Lint with ESLint
pnpm format # Format with Prettier
pnpm format:check # Check formatting
pnpm test # Run tests with Vitest
pnpm tsc # Type check
pnpm storybook # Start Storybook dev server (port 6006)
pnpm build-storybook # Build static Storybook
pnpm run env:validate # Validate deployment config files against schema (also runs on every commit)
project-root/
├── src/
│ ├── app/ # Next.js App Router pages and API routes
│ ├── components/
│ │ ├── ui/ # ShadCN UI primitives (auto-generated)
│ │ ├── {feature}/ # Feature-specific components with co-located stories and tests
│ │ └── {shared}/ # Shared components
│ ├── lib/
│ │ ├── firebase/ # Firebase Admin + client SDK wrappers
│ │ ├── types/ # Core domain types (barrel-exported)
│ │ └── utils.ts # Shared utility functions
│ ├── server/
│ │ ├── types/ # API response types
│ │ └── utils/ # Server-only helpers
│ ├── services/ # Data access layer (Firebase-backed)
│ ├── hooks/ # Custom React hooks (barrel-exported)
│ ├── store/ # Redux Toolkit slices
│ └── test-setup/ # Vitest setup files
├── deployment/
│ ├── schema.yml # Allowlist schema for public config keys
│ ├── environments.yml # Active environment list
│ ├── preview.yml # Public env config for preview (staging)
│ └── production.yml # Public env config for production
├── scripts/
│ └── validate-config.mjs # Validates deployment YAMLs against schema
├── .storybook/ # Storybook configuration
├── .github/
│ ├── actions/setup/ # Composite action: pnpm + Node.js + install
│ └── workflows/ # CI workflows
├── docs/ # Feature documentation
└── ...config files
.env.examplemain. Preview deployments are label-gated: a preview is built (by .github/workflows/preview-deploy.yml, a caller of the shared rmartz/vercel-preview-ci workflow) only while a PR carries UAT ready, not on every push. vercel.json's git.deploymentEnabled turns off Vercel's own preview buildsPublic, non-secret environment config (Firebase project IDs, Sentry org/project, NEXT_PUBLIC_* keys) lives in deployment/{env}.yml and is validated against deployment/schema.yml on every commit and in CI. Secrets never go in these files.
To change a value, edit the relevant deployment/{env}.yml by hand (only NEXT_PUBLIC_* / allowlisted keys) and run pnpm run env:validate.
Local tooling to push config to Vercel and rotate secrets is being replaced by the planned envctl CLI. The former update-config.sh / deploy-config.sh / rotate-keys.sh helpers were removed when vercel-deploy-scripts (which transitively supplied the vercel CLI they used) was dropped; until envctl lands, push and secret rotation are done manually via the Vercel dashboard/CLI.
CI runs automatically on every PR with four parallel checks: tests, lint, format, and build. See .github/workflows/ci-actions.yml.
Additional workflows:
main@claude mentions in issues and PRs (requires ANTHROPIC_API_KEY secret)MIT