Why the App Isn't Called 'Nextcloud Cleaner': A Trademark Rename Story
The Nextcloud app store rules say plainly: apps must not use 'Nextcloud' in their name. The app was built as Nextcloud Cleaner, renamed to Photo Sweep, and the app id itself changed along the way.
The commit log has the whole story in two lines, four commits apart:
6af7e56 Take an application id that is actually ours
0b9b306 Rename the app id to nextcloud_cleaner
7ce0d51 Call it Nextcloud Cleaner everywhere
765e5ba Rename to Photo Sweep: the store forbids Nextcloud in an app nameThe app was built, named, and had its app id set — nextcloud_cleaner — before anyone checked the Nextcloud app store's actual publishing rules. Then someone did.
The store rule is explicit: apps must not use 'Nextcloud' in their name — hence Photo Sweep, not Nextcloud Cleaner.
The rule, stated plainly
The app publishing guidelines say: "Apps must not use 'Nextcloud' in their name." Not "discouraged," not "reviewed case by case" — a rule that, per the same guidelines, can get an app "blocked from the app store altogether." The trademark guidelines go further still, and specifically call out mobile platforms: for Google Play and the App Store, "you can NOT use the term 'Nextcloud' in the name of your app." That last part is what made the Android client's rename non-optional too — its label and package id both carried the same problem the server app had.
What the rules do allow is describing compatibility rather than claiming the name: "for Nextcloud," "compatible with Nextcloud." That's exactly why the README, the summary, and the publishing docs all say "Nextcloud" freely throughout, while the name — the one string that appears in the store listing, the app menu, and both app stores' URLs — does not.
Three names, and only one of them was actually load-bearing
The rename forced a distinction that's easy to blur when you're naming a project for the first time: which of these names is permanent, versus just what people currently call it?
| Name | Value | Changeable? |
| App id | photosweep | No — it's the certificate's CN, the store registration, the required directory name, and the URL of every OCS endpoint |
| Display name | Photo Sweep | Yes — <name> in info.xml, shown in the store and the app menu |
| Repository | photo-sweep | Yes — GitHub only, Nextcloud never sees it |
The app id is the one that actually matters structurally, because changing it later isn't a rename — it's a new certificate, a new store registration, and to every existing user, a different app entirely that happens to do the same thing. That's why nextcloud_cleaner as an app id had to go before any real release, not after: fixing a display name post-launch is a changelog entry, fixing an app id post-launch is asking users to migrate.
What the rename actually touched
Beyond the obvious — <name> in info.xml, the README title, the store listing copy — the id constraint itself ([a-z]+[a-z0-9_]*[a-z0-9]+, no hyphens, 32 characters max) is what forced the repository to be named photo-sweep while the app id stayed photosweep: the hyphen that reads naturally in a GitHub repo name simply isn't legal in the id at all. Two related commits cleaned up the fallout — e7fd969 Point at the renamed repository and 65691c5 Repair the mangled names section in PUBLISHING.md — which is the ordinary tax of a rename touching more surface than the first pass catches.
The lesson
Trademark rules for a platform you're publishing to are worth reading before you name the project, not after you've built a README, a repository, and an app id around a name that turns out to be a launch blocker. It cost this project a rename, a re-signed certificate, and a patched publishing doc — all avoidable by reading one page first.
Series: Photo Sweep.