← back to SmokeShop

CLAUDE.md

41 lines

# SmokeShop — Instagram Content Manager

## Overview
Instagram content management system for Smoke & Vape Depot (6100 Reseda Blvd, Reseda CA).
Generates branded post graphics with Gemini AI, manages a 2-month content calendar (3x/week = 24 posts), and handles scheduled posting via Meta Graph API.

## Service Info
- **Port**: 8401
- **PM2**: smokeshop
- **URL**: http://45.61.58.125:8401
- **Auth**: admin / DWSecure2024!
- **DB**: SQLite at db/smokeshop.db

## Stack
Express.js, SQLite (better-sqlite3), Gemini AI (image + text), sharp, node-cron, canvas (fallback)

## Content Strategy
- **3 categories** rotating: community → product → promo
- **Community**: Local Reseda businesses, neighborhood vibes
- **Product**: Accessories (RAW, Clipper, Zippo), glassware (GRAV, MAV), CBD (Charlotte's Web, cbdMD)
- **Promo**: Store hours, location, deals

## Instagram Compliance
- NEVER show tobacco/vape use (inhaled, smoked, vaped)
- NEVER make health claims
- NEVER target minors
- All captions include "21+ only"
- OK: Product packaging, store shelves, glassware as art, CBD, accessories

## Key Endpoints
- `POST /api/posts/generate-calendar` — Generate 24-post 8-week calendar
- `POST /api/posts/:id/generate` — Generate Gemini AI image for a post
- `POST /api/posts/:id/generate-caption` — Generate Gemini AI caption
- `POST /api/posts/:id/publish` — Publish to Instagram
- `POST /api/posts/generate-all-images` — Bulk generate all images

## Gemini Integration
- Image gen: `gemini-2.0-flash-exp-image-generation` with `responseModalities: ['TEXT', 'IMAGE']`
- Text gen: `gemini-2.0-flash` for captions and hashtags
- Falls back to canvas-based generation if Gemini fails