문서

StartFast Pro

StartFast Pro는 인증, 결제, 팀, i18n, 분석, 블로그, 깔끔한 UI 시스템을 갖춤 프리미엄 프로덕션 준비 Next.js 15 보일러플레이트입니다.

이 문서를 통해 빠르게 시작하고 SaaS 제품에 맞게 StartFast Pro를 커스터마이즈할 수 있습니다.

포함 내용

  • Next.js 15 App Router (React 19 및 서버 컴포넌트)
  • Better Auth 인증 (이메일, Google, GitHub OAuth)
  • PostgreSQL 데이터베이스 (Drizzle ORM)
  • Stripe 결제 (구독 및 Webhooks)
  • Resend를 통한 이메일 발송
  • next-intl 국제화 (7개 언어)
  • 팀 및 RBAC (조직, 역할, 권한)
  • PostHog 분석 통합
  • 블로그 시스템 (Markdown, SEO, 읽기 시간)
  • 관리 대시보드 (사용자, 주문, 분석, 콘텐츠)
  • Playwright E2E 테스트
  • TypeScript 엔드투엔드 타입 안전성

빠른 시작

1리포지토리 클론
git clone https://github.com/Harries/startfast-pro.git my-saas
2의존성 설치
cd my-saas && npm install
3환경 설정
cp .env.example .env.local
4데이터베이스 설정
npm run db:push
5개발 시작
npm run dev

http://localhost:3000 열기

환경 변수

.env.example을 .env.local로 복사하고 설정:

# App
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_APP_NAME=StartFast Pro

# Database (Postgres)
DATABASE_URL=postgresql://username:password@localhost:5432/startfast_pro

# Authentication (Better-Auth)
BETTER_AUTH_SECRET=your-secret-key-at-least-32-characters
BETTER_AUTH_URL=http://localhost:3000

# Email (Resend)
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

# Stripe
STRIPE_SECRET_KEY=sk_test_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_xxxxx

# Optional: Google OAuth
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# Optional: GitHub OAuth
GITHUB_CLIENT_ID=
GITHUB_CLIENT_SECRET=

# Analytics (PostHog)
NEXT_PUBLIC_POSTHOG_KEY=
NEXT_PUBLIC_POSTHOG_HOST=https://app.posthog.com

# Default Locale
NEXT_PUBLIC_DEFAULT_LOCALE=en

데이터베이스 설정

StartFast Pro는 PostgreSQL과 Drizzle ORM을 사용합니다. 서버리스 PostgreSQL에는 Neon을 추천합니다.

  1. 1.PostgreSQL 데이터베이스 생성 (로컬 또는 Neon)
  2. 2..env.local에 DATABASE_URL 설정
  3. 3.npm run db:push로 스키마를 데이터베이스에 푸시
  4. 4.npm run db:studio로 Drizzle Studio를 사용하여 데이터 보기/편집
  5. 5.npm run db:generate로 마이그레이션 생성

Schema: 데이터베이스 스키마는 src/db/schema.ts에서 Drizzle의 TypeScript 우선 방식으로 정의됩니다. DB 클라이언트는 src/db/index.ts에서 내보냅니다.

인증

StartFast Pro는 Better Auth와 Drizzle 어댑터를 사용하여 인증합니다. 이메일/비밀번호 및 소셜 OAuth 지원.

  1. 1.BETTER_AUTH_SECRET 설정 (최소 32자)
  2. 2.BETTER_AUTH_URL을 앱 URL로 설정
  3. 3.(선택) Google OAuth 설정: GOOGLE_CLIENT_ID 및 GOOGLE_CLIENT_SECRET
  4. 4.(선택) GitHub OAuth 설정: GITHUB_CLIENT_ID 및 GITHUB_CLIENT_SECRET

Tip: 인증 설정은 src/lib/auth.ts (서버) 및 src/lib/auth-client.ts (클라이언트)에 있습니다. 세션은 기본 7일 후 만료.

Stripe 결제

StartFast Pro는 Stripe 구독과 Webhook 처리를 지원합니다.

  1. 1.Stripe Dashboard → API Keys에서 API 키 가져오기
  2. 2.STRIPE_SECRET_KEY, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY 설정
  3. 3.https://your-domain.com/api/webhook/stripe에 Webhook 엔드포인트 생성
  4. 4.Webhook 서명 시크릿을 STRIPE_WEBHOOK_SECRET에 복사

Tip: 로컬 테스트에는 stripe listen --forward-to localhost:3000/api/webhook/stripe 사용

이메일 설정

StartFast Pro는 트랜잭션 이메일에 Resend를 사용합니다.

  1. 1.Resend 계정 생성
  2. 2.API 키를 가져와 RESEND_API_KEY 설정
  3. 3.EMAIL_FROM을 인증된 발신자 주소로 설정
RESEND_API_KEY=re_xxxxx
EMAIL_FROM=onboarding@yourdomain.com

국제화

StartFast Pro는 next-intl을 통한 다국어 지원을 포함하며, 7개 언어가 내장되어 있습니다.

  • 영어 (en)
  • 중국어 (zh)
  • 일본어 (ja)
  • 한국어 (ko)
  • 독일어 (de)
  • 프랑스어 (fr)
  • 스페인어 (es)

번역 파일은 src/i18n/messages/에 있습니다. 기본 로케일 설정:

NEXT_PUBLIC_DEFAULT_LOCALE=en

분석

StartFast Pro는 PostHog과 통합하여 프로덕트 분석을 제공합니다. 가입, 구독, 팀 액션 등의 이벤트 트래커가 포함되어 있습니다.

  1. 1.PostHog 계정 생성
  2. 2.NEXT_PUBLIC_POSTHOG_KEY 및 NEXT_PUBLIC_POSTHOG_HOST 설정

Tip: 분석 헬퍼는 src/lib/analytics.ts에 있습니다. analytics.signUp(), analytics.subscriptionStarted() 등 사용.

팀 및 역할

StartFast Pro에는 완전한 조직 및 역할 기반 액세스 제어(RBAC) 시스템이 포함되어 있습니다.

역할

  • 소유자 — 전체 액세스 권한. 소유권 이전 가능.
  • 관리자 — 멤버, 설정 및 대부분의 리소스 관리.
  • 멤버 — 콘텐츠 생성 및 편집. 제한된 설정 액세스.
  • 뷰어 — 읽기 전용 액세스.

Tip: 권한은 src/lib/permissions.ts에 정의되어 있습니다. hasPermission(role, permission)으로 액세스 확인.

배포

몇 분 만에 Vercel에 배포:

  1. 1.코드를 GitHub에 푸시
  2. 2.Vercel에서 리포지토리 가져오기
  3. 3.모든 환경 변수 추가
  4. 4.배포!

Important: 배포 후, Stripe Webhook URL을 프로덕션 도메인으로 업데이트하세요.

지원

도움이 필요하신가요? 연락해 주세요: