Let's create your first social posts
The Social Post Creator uses AI to write engaging posts and generate matching images, giving you a batch of ready-to-publish content in minutes.
We'll walk you through a few quick settings, then generate 3 posts so you can see how it works.
Generate Ads
Describe your offer and let AI create unique, diverse ad images — ready to download.
Your generated ads will appear here
Campaign History
Social Post Creator
Generate a full content calendar — AI-written posts with matching images, planned to avoid repetition across all days.
Your generated posts will appear here
Post Session History
User Management
| Username | Role | Status | Credits | Created | Actions |
|---|
Features & Changelog
What you can do with each tool, and what's new.
New Campaigns
Generate complete Facebook ad sets from a single topic. AI creates multiple ad variations with unique angles, layouts, and color palettes, then renders images with Gemini and writes social post copy for each ad.
Social Posts
Create batches of social media posts powered by source material you provide — paste text, upload a document, enter a URL, or pull a YouTube transcript. Match your writing style, generate images or go text-only, and create HeyGen talking-head videos.
History
Browse and reload any past campaign or post session. Clone a previous session to reuse its settings and source material as a starting point for new content, or rename sessions to keep things organized.
Calendar
See all your scheduled posts in one place — across GoHighLevel, Meta (Facebook & Instagram), and LinkedIn. A visual day grid shows exactly when each post is set to publish.
Changelog
- Voiceover captions: auto-generated text captions burned into voiceover videos via fal.ai
- Full caption styling: font (5 options), color (6 presets), size, position, alignment, outline, text case
- Words per caption control: shorter phrases prevent text from overflowing the video edges
- Post edit: AI Rewrite, Save, and Cancel all moved above textarea — no scrolling needed
- Carousel: font family selector (Sans-serif, Serif, Monospace, Display) and font size slider (32–72px)
- Fix: "Mute original video audio" now works — uses MMAudio V2's mask_away_clip API parameter
- Instagram vertical crop: 9:16 images are pre-cropped to 4:5 from the top, preserving headings
- Fix: Edit & Retry from History now correctly carries over source material
- Title style dropdown: 7 style options (hook, clickbait, question, etc.) for image titles
- Add background music to videos — 6 mood presets (Upbeat, Chill, Corporate, Dramatic, Fun, Ambient) powered by fal.ai MMAudio V2
- Music modal with editable prompt, per-mood preset text
- Remove music option to revert to silent version
- Publishing (GHL) automatically uses music version when available
- Multi-model video — 5 video models via fal.ai: Wan 2.6 (20 cr), Hailuo 02 (27), Kling 2.5 Turbo (35), Kling 3.0 Pro (56), Veo 3.1 (100)
- Async video generation — queue-based pattern replaces old blocking approach; videos now reliably complete
- Model selection modal with descriptions and credit costs
- Video progress state shown in Transform dropdown
- Selfie Mode — upload your own photos to a selfie library, then use them as post images
- AI selfie enhancement — Gemini enhances each selfie to match the post topic and adds stylized text overlay
- New Selfies tab for managing your photo library
- LinkedIn carousel fix — upgraded API version (was sunset), added document processing wait before publishing, fixed silent failures when PDF retrieval fails
- Carousel posts — convert any single-image social post into a multi-slide carousel with blurred cover background + GPT-generated text per slide
- GHL carousel scheduling: multi-image posts for Instagram & Facebook
- LinkedIn carousel scheduling: PDF document upload for swipeable carousel experience
- Improved cron error handling: publish failures are now always logged even when D1 times out
- Client approval — send a shareable link to clients so they can review, approve, or reject individual posts without logging in
- Approval badges on post cards reflect client decisions in real time
- GHL calendar integration — scheduled GoHighLevel posts now appear in the calendar view with per-channel error reporting
- Mobile-friendly — responsive layout for all screens: hamburger nav, stacked forms, single-column grids, larger touch targets
- Onboarding wizard — new users are guided through creating their first social posts step by step, one field per screen with explanations
- Parallel social post generation — campaign social posts now generate in parallel with images instead of waiting, so they always complete even if images fail
- Logo compression — logos are now automatically resized and compressed before upload (max 800px, JPEG). A 2 MB logo becomes ~50-100 KB, dramatically improving image generation reliability
- Timeout tuning — first-attempt timeout for multimodal requests increased from 25s to 45s
- Concurrency reduction — when a reference image is attached, batch size drops from 3 to 2 concurrent requests to avoid overloading the AI
- IDOR hardening — all API endpoints now enforce resource ownership checks; scheduling endpoints verify post ownership
- Image gen diagnostics — every failed generation attempt logs prompt size, ref image size, model, timeout, and error type to the error log
- Image type diversity — new imageType dimension (graphic, photo, meme, illustrated, cinematic, mockup, infographic, collage) for visually distinct ads
- Randomized variations — ad specs now shuffle all creative dimensions per campaign instead of deterministic assignment
- Server-side logo cap — oversized logos loaded from R2 (old uploads) are skipped to prevent worker timeouts during regeneration
- Crash-safe background tasks — top-level try/catch around all waitUntil bodies to ensure errors are always logged
- GHL calendar debug — new
/api/ghl/debug-postsendpoint returns raw GHL API response for diagnosing why scheduled posts don't appear in the calendar - Conflict checking — single-post scheduling on GHL, Meta, and LinkedIn now warns if another post is already scheduled at the same time
- Visual diversity overhaul — ad images are now dramatically more varied. Expanded from 5 layouts to 10, 5 styles to 8, 4 backgrounds to 8, and 10 palettes to 14
- New layouts — diagonal, asymmetric, poster, layered, typographic, floating — each producing distinct visual compositions
- New styles — retro (vintage/halftone), luxe (metallic/premium), handcrafted (brush strokes/organic)
- New backgrounds — texture (marble/metal/fabric), 3D (rendered shapes with lighting), duotone, bokeh (cinematic blur)
- New palettes — pastel (lavender/pink), earth (terracotta/sand), neon (electric accents on black), cream (warm ivory/copper)
- Creative prompts — Gemini now gets creative direction instead of rigid blueprints, producing more unique and eye-catching images
- HeyGen video scheduling — posts with HeyGen videos can now be scheduled to Instagram (as Reels), GHL, and Facebook. Previously, posts without images but with HeyGen videos were rejected at scheduling time
- Media fallback — GHL and Instagram scheduling now automatically falls back to HeyGen video when no image exists, instead of failing with "no image available"
- Instagram Reels — HeyGen videos are published as Instagram Reels via Meta's Content Publishing API
- Anti-repetition — each post now sees the actual text of prior posts in the series, so the AI avoids reusing sentences, phrases, and examples across posts
- Max characters setting — optional field to cap post length (e.g. 800 for shorter posts). Stored per session and used on regeneration too
- GHL scheduling fix — scheduling now fails with a clear error if the image hasn't been generated yet, instead of silently scheduling as text-only
- Calendar fix — calendar now shows all posts (pending, published, failed) instead of only pending, so past months are no longer empty
- Calendar error logging — all 4 data channels (IG, Facebook, GHL, LinkedIn) now log errors instead of silently failing
- Status badges — calendar events show colored status dots: green for published, red for failed, with reduced opacity on published posts
- Single-image regen resilience — 90s timeout per attempt (up from 25–60s), 4 attempts (up from 3), stays synchronous so the Worker gives Gemini the full request lifetime
- Image generation resilience — increased timeout (45s → 60s), 3s retry delay, reduced concurrency (3 → 2) to prevent Gemini overload cascades
- Logo preserved on retry — supporting image now included on fallback attempt 2 (Flash + logo), only dropped as last resort on attempt 3
- HeyGen error clarity — failure messages now show the actual reason (e.g. insufficient API credits) instead of generic errors
- HeyGen import fix — importing portal-generated videos by ID now falls back to v1 API when v2 returns 404
- Paste Text source option — replaced "None" with a textarea to paste articles, notes, or transcripts directly as source material
- No-images mode — new "No images — text only" option in the image model selector, skips image generation entirely for text-only or video-focused workflows
- Features & Changelog page — this page! Accessible via the info icon in the nav bar
- LinkedIn integration — OAuth connection, single & bulk post scheduling, calendar view, cron-based publishing with token refresh
- HeyGen integration — AI-generated talking-head videos from post text, avatar & voice selection, script generation, R2 storage
- Background image generation — campaigns and posts return instantly while images render in the background with live polling
- Gemini resilience — 3-attempt retry with timeout, automatic Pro → Flash model fallback, simplified prompt fallback
- Deep links — URL hash routing for sessions and campaigns (#session/N, #campaign/N) survives page refresh
- Campaign clone improvements — logo and ref_context carry over when cloning
- Error context logging — structured context data on all error log entries for easier debugging
- Initial release — ChannelCopy with campaign creation, social post pipeline, GHL & Meta scheduling, calendar view, admin panel, credit system
Selfie Library
Upload photos to use in Selfie Mode when creating social posts.
Settings
Manage your integrations and connected accounts.
Integrations