Waterfall for Craft CMS

FAQ

What does it cost?

Lite is $59, Pro is $79, both licensed through the Craft Plugin Store. The installation page has the feature split.

Backups and restore are in Lite. Charging for the undo of a destructive operation is not a business model.

Does it change my original files?

Only if you ask it to.

A profile set to transforms or on demand never touches the stored file. A profile set to permanent rewrites it — and copies the original to the backup store first, refusing to write at all if that copy fails.

Can I undo it?

Yes, and it is one action: Restore original, on the asset, on a selection in the asset index, or from the console. The original is written back through Craft, so dimensions and transforms are refreshed with it.

The one thing that cannot be undone is a backup you have deleted. See the backup notes in Configuration before running a bulk apply on a server whose storage folder does not survive deploys.

Which mode should I use?

If the answer is "our images should not be reposted", transforms — every image on the site is marked, nothing on disk changes, and it costs you nothing to change your mind.

If the answer is "the file itself must carry the mark, wherever it ends up", permanent.

Most sites that need both use both: a permanent mark on the file, and a transforms profile so thumbnails and social images are covered too.

Will it watermark images that are already on the site?

Not by itself. Switching on permanent marks images from that point on. Waterfall → Apply covers what is already there, and it counts and explains before it writes anything.

transforms mode is different — it applies to every transform generated after you save the profile, including regenerated ones, so existing images are covered as their caches refill.

Does it work on a multi-site install?

Yes. Profiles are per-install, and the rules that scope them (volumes, conditions) are the same ones Craft uses everywhere. Text watermarks resolve {{ siteName }} and any element value against the site being rendered.

What about a CDN or an image service?

Pro ships four delivery providers — imgix, Cloudinary, ImageKit and a URL template driver for everything else. The mark is composited by the service at delivery time and no file is written on your server. See Usage for what each one supports.

Does it work with Imager-X?

Yes, both ways: automatically on Imager-X Pro, and by naming a profile in a transform's effects on any edition. The effect runs Waterfall's own compositor, so text, tiling and rotation work, which Imager-X's built-in watermark parameter cannot do.

Does it work with ImageOptimize?

Yes, with nothing to configure. Waterfall composites before ImageOptimize saves, so the optimized file and its .webp/.avif variants all carry the mark.

Is it slower?

Compositing is one paste onto an image that is already open and being written, so the cost lands where a transform was already being generated — not on every request. The mark itself is opened once per request and reused.

permanent bulk runs are genuinely heavy, which is why they can be counted first and are queued above a threshold you set.

Does it send anything anywhere?

No. Waterfall makes no outbound request unless you configure a delivery provider, in which case the only thing that happens is that the URLs in your HTML point at that service.

Can editors turn it off for one image?

With Pro, yes — add the Waterfall field to the asset layout and each asset can follow the profiles, refuse them, or name specific ones.

What happens to my images if I uninstall it?

Nothing. Transforms regenerate without the mark the next time they are cleared. Permanently marked files stay marked — the mark is in the pixels — so restore anything you want unmarked before you uninstall, while the ledger and the backups are still there.

Uninstalling drops waterfall_profiles and waterfall_applications and removes the profiles from project config. The backup files themselves are left on disk for you to delete.

Why "Waterfall"?

It watermarks, and every good plugin name is a bad pun.