Mosaic Collage Maker
Everything below covers the app in depth. For quick answers to common questions, see the Support page instead — this guide is for when you want the full picture.
The whole workflow starts with two steps:
A handful of settings in the sidebar shape what Generate actually produces — worth setting these deliberately rather than leaving them at their defaults:
From there, every page is fully editable — nothing about the automatic layout is locked in. Think of Generate as a fast, high-quality starting point, not a final answer.
Crucially, how much gets trimmed varies from one manufacturer to the next — there's no single set of margins that's right everywhere, so treat any specific values as a starting point and run your own small test print before committing to a large order.
There are two ways to approach this, and one is considerably better than the other:
If you're starting a new book, go with the first approach — matching the service's own size from the outset saves a great deal of guesswork about what will survive the trim. The sizes and margins I've tested for each service are listed under Photobook page sizes.
There are four buttons for getting images into your library, and they differ along two separate lines:
So, put simply: use Load Photos to start a project from a folder, Add Photos to fold in another folder later, and the two Files variants when you'd rather hand-pick individual images than point at a folder.
Click any frame to select it. A small toolbar appears above it with icons for:
Alt and drag the frameAdd a text box from the toolbar, then click it to edit. Each text box has two parts:
Style controls cover font, size, colour, alignment, line height, letter spacing, background, and drop shadow — all found in the side panel once a text box is selected.
Frame Border (in settings) has two independent toggles — one for photos, one for text boxes — sharing a single thickness slider. Turn on just the one you want; they don't have to match.
Reshuffle rearranges the current page into a fresh mosaic. By default everything on the page is fair game — every frame gets a new size and position.
Pinning is how you tell it what to leave alone. Pin a frame or a text box and it keeps its exact position and size, while the mosaic re-tessellates around it instead of landing on top.
That makes it easy to anchor a fixed element — a title, a logo, a caption panel, a favourite photo — and then keep reshuffling until the rest of the page falls into place around it.
Text boxes that came from a template are pinned for you automatically, since a template's text is usually fixed branding you don't want photos landing on top of.
Page size options include standard sizes (A3, A4, A5, US Letter), square formats (8×8", 10×10"), and a fully custom size in millimetres. If you use a custom size often, save it as a named preset so it's available in the dropdown from then on.
Photobook services rarely use exact ISO paper sizes. Each one specifies its own trim dimensions, so an "A3" photobook usually isn't 420×297 mm at all. What you need is the size the service asks for, entered as a custom size in millimetres at 300 DPI — and worth saving as a named preset once you've got it right, so you can reach for it again.
It's also worth establishing whether a service wants a single page or a double-page spread. A spread is two pages side by side, so it's wider. For the Photobox A3 book, for instance, a single page is 392×300 mm and the full layflat spread is 782×297 mm — and note that's not simply double, which is exactly why it pays to check the service's own figure rather than work it out yourself. Getting single-versus-spread the wrong way round is the single easiest mistake to make.
These are sizes I've tested myself:
| Service | Page size | Margins |
|---|---|---|
| Photobox — A3, single page | 392 × 300 mm | 20 mm all round |
| Photobox — A4, single page | 300 × 216 mm | 20 mm all round |
| Photobox — A3 layflat spread | 782 × 297 mm | 20 mm all round |
| Colorland — A4 | 300 × 216 mm | 20 mm all round |
| Colorland — A3 | 423 × 303 mm | 20 mm all round |
| Printerpix — A3 | 400 × 300 mm | 20 mm all round |
| Mixbook | US Letter and square formats | 20 mm all round |
Photobox and Colorland both offer A3 and A4 books; the Photobox A3 single page also scales down neatly to fit their A4, so a layout built at A3 can be reused at the smaller size. Mixbook works with the standard US Letter and square sizes already in the page-size dropdown, so there's no custom size to set up at all.
On a double-page spread, remember the binding runs down the middle rather than along an outer edge — so it's the centre of the page you want to keep faces and text clear of, not just the outside.
Margins, gap between frames, and snap distance are all adjustable, and can be saved as your personal defaults (⚙ Defaults) so every new project starts exactly how you like it. If you're printing through a photobook service rather than at home, see the margin/binding tip in Getting Started before settling on your margin values.
Each margin slider shows its size in millimetres underneath it. Those are genuine physical measurements: a given slider value is the same real-world size whatever page size you're working at, whatever screen you're on, and whatever size the app window happens to be when you set it.
That matters most on a long project built over several sittings — a photobook assembled across months, perhaps on more than one computer. Every section you produce gets identical margins, gaps and border widths, so the finished book stays consistent from cover to cover rather than drifting section by section.
The page background isn't limited to black or white — choose any colour you like. Frame border contrast adjusts automatically, so borders stay visible against whatever background you pick.
You can also import your own background image. It's scaled to cover the page and sits behind the mosaic, and it's baked into the exported JPEG — so what you see on screen is what you get in the file.
Photo fit (in the Layout panel) decides how each photo sits in its frame. Fill frame — the default — crops the photo so it completely fills the frame: no gaps, but the edges may be trimmed. Fit whole photo shows the entire photo inside the frame with nothing cropped, letting the page background show around it wherever the photo's shape doesn't match the frame's. Fit is the one to reach for when the whole of every shot matters, or paired with a background colour or image for a deliberately airy look.
By default the mosaic fills the whole page. The Coverage slider lets you shrink it so more of the page background — a colour, or your imported image — shows through between the photos. At 100% it fills the page exactly as it always has; lower it for an airier, more spacious result. It pairs naturally with a background image or a bold background colour.
Pinned frames keep their full size (see Pinning & Reshuffle), so you can hold a title photo large while everything else breathes around it.
Coverage takes effect when you Generate or Reshuffle, and there's an ↔ Apply coverage to existing pages button to try different amounts on a layout you've already built.
Pressing Generate rebuilds everything from scratch, which throws away the arrangement you've worked on. Five buttons let you change your mind about a setting and apply it to the pages you already have instead — your photos, their zoom, pan and rotation, and all your text stay exactly as they are:
All five can be undone, so they're safe to experiment with.
Where the new size has the same proportions — A4 to A3, for instance — the result is lossless: everything simply scales up or down, and it happens straight away.
Where the new size is a different shape — A4 to a square format, say — the layout can't simply scale, so the app asks how you'd like it filled:
Pinned frames and text are preserved either way, so pin anything you want kept before resizing.
The mosaic is built by repeatedly dividing the page, and each division is made independently — so occasionally two frames end up with edges a couple of millimetres apart where the eye expects a straight line. It's too small to look deliberate and just reads as untidy.
↔ Tidy frame alignment nudges those near-miss edges into exact alignment. Nothing is rearranged and pinned frames don't move — only edges that were a hair out shift at all, and running it a second time changes nothing. It's most useful on projects built with an earlier version, since newer pages are laid out with this correction already applied.
There are three distinct ways to save, and they solve different problems:
| Option | What it saves | Best for |
|---|---|---|
| Save | The layout only, as a small JSON file — photos are referenced by filename, not included | Quick saves during a session on the same computer |
| Archive | The layout and a full copy of every photo used, bundled into one ZIP | Moving a project between computers, or long-term safekeeping |
| Save as Template | The layout only, with every photo reference deliberately removed | Reusing a favourite design with a completely different set of photos |
A plain Save is small and fast, but it only remembers your photos by name — it depends on those exact files still being in the same folder, with the same names, whenever you come back to restore it. If you reorganise your photo library, rename files, or move to a different computer, a plain Save can leave you hunting for the right folder.
Archive avoids that problem entirely, because your photos travel inside the file itself. Restoring an archive doesn't require finding anything — everything needed is already there in the ZIP. That makes it the more genuinely reliable option, especially for a project you care about keeping long-term, or one you might want to reopen on a different computer.
A reasonable approach: use Save for your regular day-to-day working file, and make an Archive once a project is finished, or before any major reorganisation of your photo folders — that way you always have one fully self-contained, future-proof copy, without paying the file-size cost on every single save.
Save as Template stores a layout with every photo reference deliberately stripped out — the design, the text, the pinned branding, but none of your pictures. Restore it later and you get that design back, empty and ready for a fresh set of photos.
🗂️⚡ From Template takes that further: it repeats the loaded template's design across as many pages as you ask for, pouring your photos into the frames as it goes.
It's the quickest way to build a long, visually consistent run of pages — a travel book, a yearbook, a catalogue — where every page should share a family resemblance without being a carbon copy of the last.
Ready-made template packs to restore and build from — including film-style contact sheets — are available to download.
Use Restore to reopen a saved session. If any referenced photos aren't currently loaded, the app asks you to select the folder containing them — and if your project drew photos from more than one folder, it keeps asking, letting you load folder after folder until everything's found (or you choose to continue with gaps).
If some photos genuinely can't be found, the sidebar shows their exact filenames under a "Missing" heading — rather than just a bare count — so you have something concrete to search for.
If you later load or add photos that match a missing name, they're automatically placed back into their original frame, at the same crop, zoom, and rotation they had when you saved — no manual re-placing needed.
Export Page and Export All save your pages as JPEG images (a ZIP of JPEGs when exporting multiple pages).
Print (labelled Save for Printing in the app) prepares your page(s) as JPEG and asks where to save them — open the saved file(s) in your photo viewer (Preview on Mac, Photos on Windows) and print from there with Cmd+P (Mac) or Ctrl+P (Windows). This two-step approach is necessary because neither platform's native app framework allows an app like this one to open a live print dialog directly, but it gives you full control over paper size and scaling through your photo viewer's own print options.
The app has been tested with libraries in the range of 1,000+ photos across 400+ pages, so don't hesitate to work at real scale. A few things worth knowing at that size:
Saving, Archiving, and Exporting all write to disk at a similar rate — measured at roughly 10–11 MB/s during testing. That figure is IPC round-trip overhead, not raw disk or CPU speed, so it's a reasonable planning number across different machines.
| Photos in library (~6MB each) | Approx. Archive size | Approx. write time |
|---|---|---|
| 100 | 600MB | ~1 minute |
| 500 | 3GB | ~5 minutes |
| 1,000 | 6GB | ~9–10 minutes |
| 1,500 | 9GB | ~14 minutes |
For Export Page, Export All, and Print, a single rendered page at 300 DPI is far smaller than a full Archive — roughly 8–16MB for A4 (2480×3508px) and 18–30MB for A3 (3508×4961px), depending on how busy the layout is. At the write speed above, that's only 1–3 seconds of actual disk time per page. For a large multi-page export, most of the total time is spent rendering each page (drawing every photo into its frame and encoding the JPEG) rather than writing it to disk — rendering speed scales with photos-per-page and your computer's processor, not disk throughput, so it isn't covered by the figures above.
This means that photo is being stretched beyond what looks sharp at print size in that particular frame — the badge shows the approximate effective resolution. Zoom out slightly, use a higher-resolution photo, or use a smaller frame or page size.
HEIC/HEIF (the default iPhone photo format) requires native decoding support. macOS provides this, so HEIC/HEIF photos work normally on Mac. Windows does not, so on Windows these photos are skipped (and, when restoring an Archive, the app will tell you how many were left blank for this reason). If you're seeing HEIC photos skipped, convert them to JPEG first — most photo apps offer this as an export option.
This was a known issue in earlier versions, now fixed — text and photo positioning both account for border thickness. If you're seeing this, make sure you're on the latest version.