instagram-carousel
Skill9 starsChanged 7 months agoMITView on GitHub
Design Instagram carousel posts as self-contained HTML files in the user's own brand. Runs a one-time brand setup on first use (name, handle, subtitle, photo, accent color, style preference). 4 design styles: Bold Impact (dark premium), Tweet Post (minimal text), Clean Editorial (light/white), Product Showcase (soft gradient). Fixed 420x525px slides, Poppins font, progress bar, arrow indicators, white CTA slide, PNG + PDF export. Triggers: instagram carousel, carousel design, ig carousel, create carousel, design carousel, carousel post, make a carousel, instagram post design, carousel html, slide deck for instagram, visual carousel
5 other projects use a version of this.
Adopted by
Most recently taken up by
- aya-taleb/instagram-boost-skillstheir own version, first seen Nov 15, 2026
- alandaitch/instagram-carousel-skilltheir own version, first seen Nov 8, 2026
- scayver/marketing-skillstheir own version, first seen Oct 13, 2026
- plushyta/Awesome-Marketing-Skillstheir own version, first seen Apr 27, 2026
- marcolang/Marketing-Skillstheir own version, first seen Apr 7, 2026
Other versions5 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 5
- marcolang/Marketing-Skills★ 61same name
- alandaitch/instagram-carousel-skill★ 17same name
- plushyta/Awesome-Marketing-Skills★ 13same name
- scayver/marketing-skills★ 8same name
- aya-taleb/instagram-boost-skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
- claude-aiSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. 0 are common, 9 are distinctive, and 6 are very specific to this project.
0
Common
Most of the 4 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 18
Every slide is a fixed 420x525px box.
- Distinctive: line 61
Follow these phases in order.
- Distinctive: line 67
If it exists: Read it and use those values for all brand elements.
- Distinctive: line 68
If it does NOT exist: Run the brand onboarding below before doing anything else.
- Distinctive: line 72
Ask the user these 6 questions (can be asked all at once):
- Very specific: line 87
After collecting answers, save carousels/brand-config.json:
- Distinctive: line 116
Profile photo fallback: If user skips or file doesn't exist, use a circle with their initials in the accent color.
- Very specific: line 126
Check carousels/ for any past carousels — scan titles/filenames to avoid repeating topics
- Distinctive: line 131
Follow these copy rules:
- Very specific: line 157
Every slide: width: 420px.
- Very specific: line 158
Use brand.accent_color for all accent/highlight elements
- Very specific: line 159
Use brand.name, brand.handle, brand.subtitle in profile header and watermark
- Distinctive: line 161
All images: base64 encoded inline (self-contained HTML)
- Very specific: line 185
Run the Python export script from references/export-guide.md.
- Distinctive: line 200
Before presenting the carousel, verify:
“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Instagram Carousel Designer
Generate Instagram carousel posts as self-contained HTML files in your brand. Each carousel is a single HTML file with fixed-dimension slides (420x525px) that export as pixel-perfect 1080x1350px PNGs via Playwright.
This skill handles both copy and design. Give it a topic, pick a style, and it writes the slides + builds the visual — using your colors, your photo, your name.
Architecture
Fixed Dimensions
Every slide is a fixed 420x525px box. Not responsive. Fixed pixel dimensions.
Design: 420 x 525px (what you see in browser)
Export: 1080 x 1350px (what gets uploaded to Instagram)
Scale: 2.5714x (via Playwright device_scale_factor)
Ratio: 4:5 (Instagram carousel standard)Modular Reference Files
| File | Contains |
references/design-system.md | Dimensions, typography, color tokens, slide architecture |
references/components.md | Profile header, progress bar, arrow, watermark, CTA slide, IG frame |
references/styles.md | All 4 visual styles with complete CSS |
references/export-guide.md | Playwright export script, critical rules, common mistakes |
4 Design Styles
| Style | Name | Best For | Vibe |
| 1 | Bold Impact | Numbered insights, shifts, mistakes, tips | Dark, massive text, accent color, film grain, premium |
| 2 | Tweet Post | Hot takes, opinions, quotes, wisdom | Minimal, clean, zero effects, conversational |
| 3 | Clean Editorial | Frameworks, tutorials, case studies, listicles | White bg, grid overlay, coral accent, educational |
| 4 | Product Showcase | Tool reviews, comparisons, curated lists | Soft warm gradient, app cards, pagination dots |
Style Selection Logic
- Explicit request — user says "bold impact", "tweet style", "editorial", "product showcase"
- Auto-detection by content:
- Hot take / opinion / conversational / quote → Tweet Post
- List of tools / product comparison / category breakdown → Product Showcase
- Framework / tutorial / educational / how-to / case study → Clean Editorial
- Everything else (numbered insights, tips, shifts, mistakes) → Bold Impact (default)
- If ambiguous — ask 1 question max, default to Bold Impact
Workflow
Follow these phases in order.
Phase 0: Brand Setup (First Use Only)
Check if carousels/brand-config.json exists in the current working directory.
- If it exists: Read it and use those values for all brand elements. Skip to Phase 1.
- If it does NOT exist: Run the brand onboarding below before doing anything else.
Brand Onboarding Interview
Ask the user these 6 questions (can be asked all at once):
Before we build your first carousel, I need to set up your brand. This only runs once.
1. What's your full name? (shown on every slide as the profile name)
2. What's your @handle? (watermark on every slide, e.g. @yourname)
3. What's your subtitle or tagline? (e.g. "Paid Media | Growth Marketing")
4. Path to your profile photo? (e.g. carousels/photo.jpg — or type "skip" to use initials)
5. What's your brand accent color? (paste a hex code like #6EE421, or describe: green / coral / blue / purple / orange)
6. Default style preference? (dark / light / minimal — or type "auto" to let me decide per content)Saving Brand Config
After collecting answers, save carousels/brand-config.json:
{
"name": "User's Full Name",
"handle": "@userhandle",
"subtitle": "Their Tagline Here",
"profile_photo": "carousels/photo.jpg",
"accent_color": "#HEXCODE",
"initials": "XX",
"default_style": "dark",
"setup_complete": true
}Accent color mapping (if user describes instead of hex):
| Description | Hex |
| green | #6EE421 |
| coral / orange-red | #e8553d |
| blue | #3b82f6 |
| purple | #8b5cf6 |
| orange | #f97316 |
| pink | #ec4899 |
| teal | #14b8a6 |
| yellow | #eab308 |
Initials: Extract first letter of first name + first letter of last name. If only one name, use first two letters.
Profile photo fallback: If user skips or file doesn't exist, use a circle with their initials in the accent color.
Create the carousels/ folder
Also create carousels/[year]/[month]/ structure if it doesn't exist.
Phase 1: Research
- Check
carousels/for any past carousels — scan titles/filenames to avoid repeating topics - Determine style (see selection logic above)
Phase 2: Write Slide Copy
Follow these copy rules:
Voice:
- Direct and opinionated — clear stances, not wishy-washy
- Experience-backed — real examples, real specifics
- Anti-fluff — no corporate speak, no filler words
- Punchy — fragments fine, contrast wins
Banned words: "just", "really", "actually", "basically", "simply", "literally"
Hook formulas (Slide 1):
- Contrarian: "Your [strategy] is backwards."
- Number promise: "5 [topic] mistakes burning your [resource]."
- Challenge: "I bet you're still doing this in [year]."
- Bold statement: "[Thing] didn't kill [people]. [Behaviour] killed [people]."
Slide count: 5-10 slides (7 is the sweet spot). Every slide readable in 3-4 seconds.
Phase 3: Build HTML
Generate a single self-contained HTML file using brand config values. Read all reference files:
references/design-system.md— dimensions, fonts, colorsreferences/components.md— shared componentsreferences/styles.md— chosen style's CSS and layout
Critical build rules:
- Every slide:
width: 420px; height: 525px;— FIXED, never responsive - Use
brand.accent_colorfor all accent/highlight elements - Use
brand.name,brand.handle,brand.subtitlein profile header and watermark - Profile photo: if
brand.profile_photofile exists → base64 encode and embed; else → initials circle usingbrand.initialsandbrand.accent_color - All images: base64 encoded inline (self-contained HTML)
- Always use Python to generate HTML — never shell/bash (corrupts special characters)
- IG preview frame wraps carousel for in-browser preview
- Navigation: touch swipe + mouse drag + keyboard arrows
- Export buttons: PNG per slide + PDF (all slides)
- Save to:
carousels/[year]/[month]/carousel-XX-topic.html - MANDATORY — accent color sanitisation: The reference files contain example hex values (
#6EE421,#85F040,#5BC01C) from a sample brand. After generating the full HTML string, run a global replace in Python before writing the file:
# Replace all sample accent colors with the user's brand color
SAMPLE_ACCENTS = ["#6EE421", "#85F040", "#5BC01C", "#6ee421", "#85f040", "#5bc01c"]
for sample in SAMPLE_ACCENTS:
html = html.replace(sample, brand["accent_color"])This guarantees no one else's carousel ever shows your design's green.
Phase 4: Preview and Iterate
Show the carousel. Present a slide-by-slide summary. Ask if any slides need changes.
Phase 5: Export
Primary (Playwright — pixel-perfect):
Run the Python export script from references/export-guide.md. Produces 1080x1350px PNG per slide.
Fallback (Browser): HTML file includes Export buttons using html2canvas + jsPDF.
Phase 6: Save and Suggest
- Save to
carousels/[year]/[month]/carousel-XX-topic.html - Suggest an Instagram caption with relevant hashtags
- Present file path and next steps
Quality Checklist
Before presenting the carousel, verify:
- Brand config was read (not hardcoded values)
- Poppins font loads via Google Fonts CDN
- Every slide is exactly 420x525px — no responsive widths
- Slide count is 5-10 (ideally 7)
- Every slide readable in 3-4 seconds
- Hero slide has a scroll-stopping hook
- Profile header on every slide (photo or initials fallback)
- Progress bar on every slide
- Arrow indicator on every slide EXCEPT CTA
- Handle watermark on every slide
- CTA slide uses white/textured design
- Accent color used correctly throughout (not hardcoded green)
- Text sized correctly for style
- Visual effects applied correctly per style
- Navigation works (touch / mouse / keyboard)
- IG preview frame wraps carousel at exactly 420px
- PNG + PDF export buttons present and functional
- File saved to correct path
- Instagram caption suggested
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

