AI 기반 생산성 도구. Brain dump → AI 자동 분류 → "지금 하나만" 추천.
상세 내용은 PRD.md 참조.
- 한국어로 응답하되, 기술 용어는 English 유지
- 코드 주석은 English
- Frontend: Next.js (App Router) on Vercel
- Auth / DB / Storage: Supabase (PostgreSQL, Auth, Storage)
- AI: Gemini API (multimodal)
- Background Jobs: Inngest (Vercel 연동)
- Push Notification: FCM
- Voice: Google Speech-to-Text or Whisper API
- Mobile (Phase 2): Flutter
- TypeScript strict mode
- App Router (Next.js) —
app/directory - Server Components 우선, 필요한 경우만
"use client" - Supabase client: server-side는
createServerClient, client-side는createBrowserClient - Tailwind CSS for styling
- Component 파일명: PascalCase (e.g.,
TaskCard.tsx) - Utility/hook 파일명: camelCase (e.g.,
useTaskRecommendation.ts)
writeflow/
├── app/ # Next.js App Router
│ ├── (auth)/ # Auth 관련 routes
│ ├── (dashboard)/ # 메인 대시보드
│ ├── api/ # API Routes
│ └── layout.tsx
├── components/ # Shared UI components
├── lib/ # Utilities, Supabase client, AI helpers
├── inngest/ # Inngest functions (heartbeat, cron)
├── types/ # TypeScript type definitions
├── public/
├── PRD.md
└── CLAUDE.md
PRD.md— 제품 요구사항 문서app/— Next.js 앱 코드inngest/— Heartbeat, 스케줄 작업lib/supabase/— Supabase 클라이언트 설정lib/ai/— Gemini API 연동
- 이 프로젝트는 다중 사용자(multi-tenant) 앱
- Supabase RLS 항상 적용 — 사용자 본인 데이터만 접근 가능하도록
- 보안 최우선: OWASP Top 10 주의
- "One Thing" 추천이 핵심 UX — 사용자를 overwhelm하지 않는 것이 원칙