WallpaperMachine
당신이 사랑하는 배경화면, 맥에서 새롭게 만나보세요
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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 (forREADME 전문 보기 ↗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