음식 사진을 올리면 AI가 트위터 감성 트윗을 자동으로 만들어주는 웹앱입니다.
https://snap2tweet-kr.vercel.app
- 음식 사진 업로드 (최대 4장, 비음식 이미지 자동 필터링)
- Gemini 2.5 Flash Vision으로 사진 분석 후 트윗 생성
- 3가지 톤으로 트윗 생성: 솔직톤 / 드립톤 / 극단톤
- 만족도 선택: 애매함 / 나쁘지 않음 / 맛있음 / 개쩜
- 공유 링크 생성 (OG 메타태그 + 음식 사진 프리뷰)
- Twitter Intent로 원클릭 트위터 공유
- Frontend: Next.js 15, React 19, Tailwind CSS, shadcn/ui
- Backend: Next.js API Routes
- AI: Google Gemini 2.5 Flash (Vision + JSON 응답)
- Database: PostgreSQL (Neon) + Drizzle ORM
- Deployment: Vercel
- Node.js 18+
- pnpm
- PostgreSQL 데이터베이스 (Neon 무료 플랜 사용 가능)
- Google AI Studio API 키
git clone https://github.com/IMMINJU/snap2tweet-kr.git
cd snap2tweet-kr
pnpm installcp .env.example .env.env 파일을 열어 값을 채워주세요:
DATABASE_URL=postgresql://user:password@host/dbname
GEMINI_API_KEY=your-gemini-api-key
pnpm db:pushpnpm devhttp://localhost:3000 에서 확인할 수 있습니다.
src/
├── app/
│ ├── api/
│ │ ├── generate-tweet/ # 트윗 생성 (Gemini Vision)
│ │ ├── share/ # 공유 링크 생성
│ │ └── shared/[id]/image/ # OG 이미지 서빙
│ ├── results/ # 생성 결과 페이지
│ └── shared/[id]/ # 공유 트윗 페이지 (SSR + OG 메타)
├── components/ # UI 컴포넌트
├── hooks/ # Custom hooks
└── lib/ # 유틸리티, DB, 프롬프트
shared/
└── schema.ts # DB 스키마 + Zod 검증
Vercel에 바로 배포할 수 있습니다. 환경 변수(DATABASE_URL, GEMINI_API_KEY)만 설정하면 됩니다.
