← 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