From 100,000 files to a million

Every app has a number its developers quietly design around. Ours was 100,000 files—until real users showed up.

A phone gallery expanding into a vast field of organized photo thumbnails

A target that felt generous

When we started building SyncGallery, we chose a clear performance target: the app had to stay fast with 100,000 media files on a device. We wrote every algorithm with that number in mind and tested with libraries of roughly that size.

At the time, 100,000 files seemed generous. At 30 photos a day, every day, it would take about nine years to reach that total. We were confident no one would keep more than that on a phone.

Users proved us wrong

Shortly after the first release, we learned how wrong that assumption was. Real libraries were far bigger than our ceiling: years of camera archives, photos migrated from older phones and computers, and entire family collections stored on large memory cards. Many Android phones still accept 512 GB or even 1 TB memory cards—room for libraries many times larger than our original target.

The app did not suddenly fall over at file 100,001—performance limits are rarely that polite. Instead, operations that should feel instant took noticeably longer, and the experience kept getting worse as a library grew beyond the target. For people with the biggest libraries—arguably those who need a backup app the most—that was not good enough.

What changes at ten times the scale

Many shortcuts that are harmless at 100,000 files become problems at a million. The pattern is always the same: a cost quietly grows with the library.

These are not exotic bugs. They are ordinary engineering decisions that stop working one order of magnitude later.

Rebuilding for one million

We raised the target to one million files and went back through the app with that number as the new bar. A few rules now shape everything we build:

Fast is a habit, not a milestone

The most important change was not any single fix. It was making the million-file question part of how we evaluate every new feature: What happens to this screen, scan, or cache when the library is ten times bigger than we expect?

Somebody will exceed whatever number we choose, and we would rather be ready this time.

If you have a huge library, this work was made for you. If SyncGallery ever feels slow with your collection, tell us—real libraries teach us more than synthetic benchmarks.

Try SyncGallery

A gallery app with cloud sync you control, for Android.

Get it on Google Play