No slides yet
Click "Add Slide" in the panel →
then drag photos into the grid cells.
Click "Add Slide" in the panel →
then drag photos into the grid cells.
Drop photos into the Photos library on the left, or click it to pick files. Click "+ Add Slide" in the Slides panel to add a slide, then drag a photo from the library into one of its cells. Pick a layout from the Layout row to change how a slide's cells are arranged.
A chain (the app calls it a span) is one photo continuing across several slides, so it reads as one unbroken image when the carousel is swiped. Apply a preset from the Spans row to start a chain from scratch, or shift-click a cell and then shift-click a cell on another slide to link them. "Join →" links the selected cell to the next slide; "Unjoin" breaks the link and hands the photo back to its cell.
When the active slide is part of a chain, the editor shows all of that chain's slides side by side, with dashed lines marking exactly where the export will cut between slides. Dragging the image pans the whole chain at once, keeping the seam continuous.
Drag a photo to pan it within its cell (or chain). Scroll over a photo to zoom, from 1x up to 8x, anchored on the cursor so the point under it stays put. The Zoom slider and its reset button live in the Slides panel and act on whichever cell or chain is selected. The zoom percentage turns amber when the export would have to upscale the source image past its native resolution.
Drag a slide in the Slides panel to reorder it. Slides linked by a chain move together as one unit and cannot be split apart by dropping another slide between them.
"Hidden area" means part of the chained image falls between the linked cells and will never be shown in the export. "Interrupted span" means the chained slides are not next to each other, so an unrelated slide breaks the sequence.
Pick a ratio and an export size in the header, then click "Export ZIP" to download one PNG per slide.
Your work saves automatically to this browser and reloads with the page. "New" clears it and starts over. Opening the file directly and serving it over localhost are different origins, so each keeps its own separately saved work.