Turn any trend into a beautiful, AI-powered pop-up store in seconds. Generate products, images, and layouts automatically with working Stripe checkout.
- 🤖 AI-Powered Generation: Advanced AI creates product names, descriptions, and pricing automatically
- 🎨 Beautiful Layouts: Professionally designed store layouts with hero sections and product grids
- 💳 Instant Checkout: Integrated Stripe checkout for seamless payment processing
- 🛡️ Content Moderation: Built-in IP protection and content filtering
- ⚡ Performance: Optimized for speed with Redis caching and rate limiting
- Frontend: Next.js 14 (App Router, TypeScript)
- Database: Supabase PostgreSQL
- AI: OpenAI GPT-4 + DALL-E 3
- Payments: Stripe Checkout
- Styling: Tailwind CSS + shadcn/ui
- Caching: Upstash Redis
- Validation: Zod schemas
git clone <repository-url>
cd vibecheck
npm installCopy the environment file and fill in your API keys:
cp .env.example .env.localRequired environment variables:
OPENAI_API_KEY=sk-...
NEXT_PUBLIC_SITE_URL=http://localhost:3000
SUPABASE_URL=https://...
SUPABASE_ANON_KEY=eyJ...
SUPABASE_SERVICE_ROLE_KEY=eyJ...
STRIPE_SECRET_KEY=sk_...
STRIPE_WEBHOOK_SECRET=whsec_...
UPSTASH_REDIS_REST_URL=https://...
UPSTASH_REDIS_REST_TOKEN=...- Create a Supabase project
- Run the SQL schema in
database-schema.sqlin the Supabase SQL Editor - Copy your Supabase URL and keys to
.env.local
npm run devVisit http://localhost:3000 to start creating stores!
- Enter a trend or product idea (e.g., "mushroom summer aesthetic tees")
- Click "Generate Store"
- Wait for AI to create products, images, and layout
- View your generated store at
/s/[slug]
The app includes built-in content moderation:
- Blocks trademarked brand names
- Uses OpenAI's moderation API
- Provides helpful suggestions for alternatives
- All products have working "Buy Now" buttons
- Test mode enabled by default
- Webhook handling for payment confirmation
vibecheck/
├── app/
│ ├── (public)/
│ │ └── page.tsx # Landing page
│ ├── s/
│ │ └── [slug]/
│ │ └── page.tsx # Dynamic store page
│ ├── api/
│ │ ├── generate/
│ │ │ └── route.ts # Store generation endpoint
│ │ ├── publish/
│ │ │ └── route.ts # Store publishing
│ │ ├── checkout/
│ │ │ └── route.ts # Stripe checkout
│ │ └── stripe/
│ │ └── webhook/
│ │ └── route.ts # Stripe webhooks
│ ├── globals.css
│ └── layout.tsx
├── components/
│ ├── blocks/
│ │ ├── Hero.tsx
│ │ ├── ProductGrid.tsx
│ │ ├── ProductCard.tsx
│ │ ├── FAQ.tsx
│ │ └── Footer.tsx
│ ├── ui/ # shadcn components
│ └── StoreRenderer.tsx
├── lib/
│ ├── openai.ts # OpenAI client
│ ├── supabase.ts # Supabase client
│ ├── redis.ts # Redis client
│ ├── orchestrator.ts # Main generation logic
│ ├── moderation.ts # Content moderation
│ ├── stripe.ts # Stripe integration
│ └── env.ts # Environment validation
├── schemas/
│ ├── store.ts # Store schemas
│ └── layout.ts # Layout schemas
└── package.json
Generate a new store from a prompt.
Request:
{
"prompt": "mushroom summer aesthetic tees",
"allowIp": false
}Response:
{
"storeId": "uuid",
"slug": "abc123def"
}Create a Stripe checkout session.
Request:
{
"productId": "uuid",
"qty": 1
}Response:
{
"url": "https://checkout.stripe.com/..."
}Publish a store to make it publicly accessible.
Request:
{
"storeId": "uuid"
}The app uses PostgreSQL with the following main tables:
- stores: Store metadata and layout configuration
- products: Product information and pricing
- orders: Order tracking and Stripe integration
- generations: AI generation tracking and rate limiting
- Connect your GitHub repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy automatically on push
The app can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
MIT License - see LICENSE file for details.
For support, please open an issue on GitHub or contact the development team.