/socialforge:render-carousels — Carousel Renderer

SkillWeb & browsing

Render multi-slide carousels from HTML templates via Playwright — slide content injected, brand styling applied, assembled to platform-ready images or PDF. Triggers on \"/render-carousels\", \"render the carousel\", \"carousel for P04\", \"build the slides\", \"multi-slide post\", \"carousel from this outline\", or any calendar post whose content_type is carousel. Local rendering, no API cost.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the /socialforge:render-carousels — Carousel Renderer skill

What this skill tells your AI

The instructions your AI receives, as published by indranilbanerjee/socialforge in skills/render-carousels/SKILL.md and read by ahel’s review.

Produce multi-slide carousel images from HTML/CSS templates using Playwright headless rendering.

Supported Templates

Pass the key to render_carousel.py --template (argparse rejects anything outside this list; --list-templates prints it).

KeySlidesBest ForTemplate File
generic8General purposegeneric-8slide.html
comparison10Feature comparisonscomparison-10slide.html
case-study10Client success storiescase-study-10slide.html
tips5Quick tipstips-5slide.html
playbook8Step-by-step playbooksplaybook-8slide.html
recap6Event/month recapsrecap-6slide.html
data6Data-driven infographicsdata-infographic-6slide.html
quote1Single quote cardsquote-card-single.html

Process

  1. Select template based on post's carousel_type
  2. For each slide:
    • Inject content (title, body, data points, statistics)
    • Apply brand colors via CSS variables (--brand-primary, --brand-secondary, etc.)
    • Apply brand fonts
    • If slide needs background image: generate or compose via image-compositor
  3. Render each slide via Playwright (headless Chromium → PNG, 1080x1080)
  4. Show first and last slide to user for approval
  5. Compile all slides into PDF (for LinkedIn document upload)
  6. Resize slides for other platforms if needed

Rules

  • First slide = hook/title with brand identity
  • Last slide = CTA with brand logo and contact info
  • Max text per slide: 40 words (LinkedIn) | 25 words (Instagram)
  • All slides use brand fonts and colors from brand-config.json
  • Slide dimensions: 1080x1080 default (configurable per brand)

Scripts Used

  • render_carousel.py — Playwright HTML→PNG rendering

Timeout & Fallback

  • Per-slide render: 15-second timeout. If Playwright hangs, retry without custom fonts.
  • Full carousel: 3-minute timeout for 10 slides.
  • If Playwright unavailable: flag for manual rendering, save populated HTML for export.

Signals

GitHub stars
38
Forks
6
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
render-carousels
Source
github.com/indranilbanerjee/socialforge