Hi,πŸ‘‹ we have updated the app and fixed multiple bugs. We are lacking funds, request to free user not to use Adblock. Ads are non intrusive. 😊

Carousel Studio

Repurpose X Threads into LinkedIn & Instagram Carousels

Canvas & Ratio

Choose your destination platform format


Layout Template

Choose a content structure for your slides


Preset Themes


Typography & Sizing

Title Font Size36px
Body Font Size18px
Header & Footer Size12px

Brand Kit Customization

AGENCY

Configure brand assets for headers & footers

MULTI-PROFILES (AGENCY)
AGENCY
SAVE PRESETS (AGENCY)

Outro Slide CTA

Customize your closing call-to-action slide

#1
#2
#3

Background Pattern

Source Content

Build Your Carousel

Drag and drop any post card below onto a slide, or use the quick buttons to insert content/images instantly!

Drag Post #1
Johnny Slack
@johnnycartelle

We recently shipped Shopify Design. 

 Here's a technical breakdown of how I built it. 🧡

VIDEO
Apply Image
Drag Post #2
Johnny Slack
@johnnycartelle

Three.js doesn't own the layout β€” CSS does. Opted-in [data-layout] elements are batched-read (init + resize) and mapped to world space. Children are inferred from parent boxes when possible. That same pass pulls computed styles and detects line breaks, so WebGL text wraps exactly the same. SDF keeps smaller text sharp at any scale. Headlines go further: opentype.js extracts glyphs β€” each letter becomes its own extruded mesh with independent depth. WebGL syncs to native scroll. DOM vs WebGL ↓

VIDEO
Apply Image
Drag Post #3
Johnny Slack
@johnnycartelle

Ortho to perspective in 16 floats. 

 In flat mode the camera uses orthographic projection β€” mirrors the DOM.
 On press-and-hold, all 16 matrix values lerp toward perspective with a cubic ease. Content lifts, FOV widens. One lerp gives a webpage depth.

VIDEO
Apply Image
Drag Post #4
Johnny Slack
@johnnycartelle

Each photo is downsampled and split into 3–6 mesh planes by brightness β€” darks, mids, highlights.
 As you dive, they separate in depth. Block-noise β€œdata moshing” displaces UVs per slice, while each color channel is sampled at slight offsets β€” creating the chromatic tearing through the image.

VIDEO
Apply Image
Drag Post #5
Johnny Slack
@johnnycartelle

The dive is layered with shader-driven effects: RGB channel splitting tears through images, barrel warp bends the viewport, Voronoi cell noise pulses through the wireframe grid, and a particle field fills the space between.

VIDEO
Apply Image
VIDEO
Apply Image
VIDEO
Apply Image
VIDEO
Apply Image
Drag Post #6
Johnny Slack
@johnnycartelle

The dive effect is driven by a post-process shader: edge detection + a noise-warped radial sweep + oscillating glow. Noise octaves control the crackle (scaled per GPU tier).
 Additional passes layer in radial zoom blur, barrel distortion, and vignette β€” all synced to the transition.

VIDEO
Apply Image
Drag Post #7
Johnny Slack
@johnnycartelle

The reveal mask reuses the electric edge's shape to cut the canvas β€” transparent outside, WebGL inside. It's the final pass that pulls everything together, hiding any misalignment between DOM and 3D geometry right where the crackling edge sits.
 The effect isn't just aesthetic, it's structural.

 Final result slowed down ↓

VIDEO
Apply Image
Apply Image
Apply Image
Apply Image
Drag Post #8
Johnny Slack
@johnnycartelle

See it live and don't forget to take the πŸ’Š β†’ <a target="_blank" href="https://shopify.design/" color="blue">shopify.design</a>