Teach Your Claude Code to Design LinkedIn Carousels
Organize slide HTML in a JSON structure, apply your brand system, preview in a local studio, and export to PDF. All from plain English prompts.
Built with one prompt in Claude Code
This carousel was generated from a single prompt. 10 slides, neo-brutalist branding, exported as PDF for LinkedIn. Here's the cover slide.
"Clone Any Website in 2 Minutes" — 10-slide LinkedIn carousel built with Claude Code
Everything lives in carousel.json
One JSON file is the entire carousel — theme, components, and every slide's HTML. No external assets. No database. Just a file in your repo.
{
"id": "website-remaker-2026",
"title": "How to Clone Any Website with AI",
"format": "carousel", // 1080x1350, 4:5 portrait
"theme": {
"primary_color": "#FEBB02",
"font_family": "Space Grotesk",
"css_stylesheet": "/* .slide, .card, .pill-tag, .terminal-card, .footer */"
},
"components": [
{ "component_type": "footer", "html_template": "{{index}}/{{total}}" }
],
"slides": [
{
"id": "slide-01-cover",
"slide_index": 0,
"body_content": "<div class='slide-content'>...</div>",
"alternatives": []
},
// ... 9 more slides
]
} format Sets slide dimensions — "carousel" is 1080x1350 (4:5), "presentation" is 1920x1080 (16:9) theme Controls the brand — colors, fonts, and the full CSS stylesheet for every slide class components Reusable HTML fragments — footer appears on every slide via template variables slides[] Ordered array of slide content — each has body_content (HTML) and alternatives[] for A/B versions departments/marketing/carousels/
solostack-repo-2026/
carousel.json # Source of truth
.history/ # Auto-snapshots on every save
slides/
0/alternatives/ # A/B test versions per slide Every carousel inherits from packages/brand/
Your brand system lives in the repo as design tokens, CSS variables, and a Tailwind preset. Carousels pull from the same source as your landing pages, emails, and ebooks.
| Token | Value | Preview |
|---|---|---|
Primary | #FEBB02 | |
Accent | #F25F29 | |
Font (heading) | Space Grotesk | Aa |
Font (code) | JetBrains Mono | 0x |
Borders | 3-4px solid #000 | |
Shadows | 6-10px hard shadow |
Component library
Pre-built CSS classes Claude uses when building slides. Consistent branding without manual design work.
Replace HubSpot
CRM + email in your repo
$50/mo → $3/mo.card Content cards with borders and shadows $ claude "build me a CRM" ✓ contacts table created .terminal-card Code blocks and CLI mockups .pill-tag Category badges and labels .footer Author info + slide counter HTML → PDF, step by step
The core of the system is a pipeline that turns plain English into a LinkedIn-ready PDF. Each step is deterministic and inspectable.
You describe the carousel topic in plain English
Topic, audience, number of slides, visual style. That's the input.
Claude Code generates structured HTML slides in carousel.json
Theme CSS, reusable components, and every slide's body_content as semantic HTML with inline styles.
composeSlideHTML() combines theme + components + content
Each slide becomes a full HTML document — fonts loaded, CSS applied, footer injected, template variables resolved.
Carousel Studio renders each slide in an iframe at 1080x1350
A local Vite + React app. Auto-refreshes every 2 seconds. You watch slides appear in real time as Claude generates them.
Export: screenshot each slide, combine into multi-page PDF
Puppeteer captures each iframe at full resolution. Slides get stitched into a single PDF. Upload to LinkedIn.
// How slides get composed into full HTML documents
const fullHTML = composeSlideHTML({
theme: carousel.theme,
components: carousel.components,
bodyContent: slide.body_content,
slideIndex: slide.slide_index,
totalSlides: carousel.slides.length
});
// Returns a complete <!DOCTYPE html> document:
// - Fonts loaded via @import
// - Theme CSS injected into <style>
// - body_content placed inside .slide container
// - Footer component appended with {{index}}/{{total}} resolved From idea to LinkedIn post in 5 steps
Describe your topic
"Create a LinkedIn carousel about how SoloStack replaces $415/mo in SaaS tools. 10 slides, neo-brutalist, yellow + black."
Claude generates carousel.json
Claude creates the complete JSON with theme, components, and all slides. One file, version-controlled, diffable.
Preview in Carousel Studio
cd tools/carousel-studio && pnpm dev → localhost:5173 Edit or request alternatives
"Generate an alternative for slide 3 with a terminal-card layout"
Export and post
Export as multi-page PDF. Upload to LinkedIn as a document post. Done.
Watch Claude build a carousel
Describe your content in plain English. Claude generates every slide, applies your brand theme, and saves everything as a single JSON file.
Created departments/marketing/carousels/ai-tools-marketing-2026/carousel.json: ✓ Theme: Neo-brutalist, #FEBB02 primary, Space Grotesk ✓ Cover slide: "7 AI Tools That Replaced My Marketing Stack" ✓ Slides 2-8: One tool per slide with cost savings ✓ Slide 9: Total savings recap ($492/mo → $13/mo) ✓ Slide 10: CTA — "Comment STACK for the full list" ✓ Footer component: @handle + slide counter ✓ 10 slides generated in 1m 48s → Open Carousel Studio to preview: pnpm studio
Generated alternative for slide 3:
Original: Plain card layout with tool description
Alternative: Terminal-card style with code snippet showing
the Claude Code prompt that replaces the tool
✓ Added to slides[2].alternatives[] (id: alt-e7a91b3c)
✓ Original body_content preserved
✓ Compare both versions in Carousel Studio
→ 2 versions available for slide 3. Pick your favorite in the studio. Updated cover slide hook: Before: "7 AI Tools That Replaced My Marketing Stack" After: "I Cancelled $492/mo in SaaS. Here's What I Use Instead." ✓ body_content updated for slide 0 ✓ Snapshot saved to .history/2026-02-15T143000Z.json ✓ Previous version preserved — rollback available → Cover slide updated. Refresh Carousel Studio to preview.
8 rules for high-performing carousels
Hook slide is everything
Lead with a bold number, controversial claim, or question. If slide 1 doesn't stop the scroll, slides 2-10 don't matter.
One idea per slide
Don't cram. Each slide should have a single takeaway. If you need two points, use two slides.
Use slide 2 to set stakes
Create emotional investment. "Here's why this matters to you." People who swipe past slide 2 will finish the carousel.
End with a clear CTA
One action, not three. "Comment REPO" or "Follow for more." A confused reader does nothing.
8-12 slides is the sweet spot
Enough to deliver value, short enough to finish. Completion rate drives the LinkedIn algorithm.
High contrast
Bold colors, heavy fonts. LinkedIn is a noisy feed — subtlety gets skipped.
Large text
Body text 22px+, headlines 48px+. Most people view LinkedIn on mobile — small text is invisible.
Consistent layout
Same header, same footer, same color scheme across all slides. Consistency signals quality.
Get the carousel design playbook
Download the full carousel skill file — a complete guide to building LinkedIn carousels with Claude Code. Includes the JSON schema, component reference, content strategy tips, and example prompts.
Common questions
Level up your content game
Related Solutions
More tools and workflows from across SoloStack
SaaS Compression Thesis
The SaaS compression thesis: apps collapse into markdown, companies into repos, taste becomes the moat.
LearnMarketing Funnel
Learn how TOFU, MOFU, and BOFU content drives revenue.
Free ToolFree CRM
Unlimited contacts, zero per-seat pricing. AI-managed CRM in your repo.
Free ToolFree Email Marketing
Send campaigns with Resend API. No monthly fees, no subscriber limits.
Ready to build carousels from your terminal?
Join the waitlist and get early access to SoloStack's full carousel toolkit — plus every other skill file in the marketplace.
Join Waitlist →