Waterfall for Craft CMS

Installation

Requirements

  • Craft CMS 5.3 or later
  • PHP 8.2 or later
  • GD or ImageMagick — whichever Craft is already using

That is the whole list. Waterfall has no runtime dependencies beyond Craft's own, no build step, and makes no outbound HTTP request unless you deliberately point a profile at a delivery service.

ImageMagick is worth having. Waterfall works on GD, and everything documented here is tested on both, but Imagick gives you blend modes and slightly better text rendering. Craft picks the driver with the imageDriver config setting; Waterfall follows whatever Craft has loaded.

Install

composer require justinholtweb/craft-waterfall
php craft plugin/install waterfall

Or find Waterfall in the Plugin Store and install it there.

Installing creates two tables — waterfall_profiles and waterfall_applications — and adds a Waterfall item to the control panel navigation. Nothing is written to project config until you save a profile.

Editions

Lite — $59Pro — $79
Watermark profilesOneAs many as you like, stacked
Image watermarks
Text watermarks
Nine positions, offsets, scaling, opacity
Tiling, rotation, blend modes
Into transforms · permanently · on demand
Backups and restore
Volume, file type, transform and size rules
Asset conditions
imgix, Cloudinary, ImageKit, URL template
Imager-X and ImageOptimize integration
Per-asset Waterfall field
Console commands

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

Check the server first

php craft waterfall/doctor

Worth running once on any new server, because watermarking fails quietly more often than it fails loudly. It prints the image driver, whether text can be drawn at all (GD compiled without FreeType cannot), whether blend modes are available, where backups will go, and what it can and cannot promise alongside Imager-X or ImageOptimize.

Your first watermark

  1. Upload the mark itself as an asset — a PNG with transparency gives the best result.
  2. Waterfall → Profiles → New profile.
  3. Give it a name and a handle, choose An image, and pick the asset.
  4. Leave the size at 25% of the image width and the position at bottom right.
  5. Under Apply, tick To generated transforms.
  6. Save.

The preview beside the form shows the result on a sample image — light on one side, dark on the other, so you can see whether the mark survives both.

Now load a page that renders a transform of any image in your site. It is watermarked. Nothing was changed in a template to make that happen: Waterfall composites the mark while Craft is generating the transform, so asset.getUrl({ width: 1200 }) returns a marked image and the original file on disk is untouched.

Where to go next

  • Configuration — everything a profile can say, and the plugin settings behind it
  • Usage — the three apply modes, Twig, the console, and the two integrations
  • Troubleshooting — when the mark does not appear, or appears wrong