Skip to content

IMMINJU/snap2tweet-kr

Repository files navigation

snap2tweet-kr

음식 사진을 올리면 AI가 트위터 감성 트윗을 자동으로 만들어주는 웹앱입니다.

https://snap2tweet-kr.vercel.app

demo

주요 기능

  • 음식 사진 업로드 (최대 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

시작하기

사전 준비

설치

git clone https://github.com/IMMINJU/snap2tweet-kr.git
cd snap2tweet-kr
pnpm install

환경 변수 설정

cp .env.example .env

.env 파일을 열어 값을 채워주세요:

DATABASE_URL=postgresql://user:password@host/dbname
GEMINI_API_KEY=your-gemini-api-key

DB 스키마 적용

pnpm db:push

개발 서버 실행

pnpm dev

http://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)만 설정하면 됩니다.

Deploy with Vercel

License

MIT

About

음식 사진을 올리면 AI가 트위터 감성 트윗을 만들어주는 웹앱

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors