Skip to content
Blur Placeholder
Esc
navigateopen⌘Jpreview
On this page

Quickstart

Install Blur Placeholder in an Umbraco CMS 17 project, configure the output format, and verify the generated property.

This is the complete first-time setup path. Stay on this page from installation to a verified placeholder.

1. Check the prerequisites

Blur Placeholder supports Umbraco CMS 17.1 through 18.x on .NET 10. Nothing else is required: the package generates placeholders from the media already in your library and needs no external service.

2. Install the package

Add the package to the Umbraco web project:

dotnet add package TheBuilder.BlurPlaceholder

The package registers its services and backoffice extension automatically. To work against local source instead, add a project reference to src/TheBuilder.BlurPlaceholder.

3. Configure the output

The defaults produce a tiny WebP data URL, so you can skip this step entirely and restart the application. To change the output, add the BlurPlaceholder section to appsettings.json:

{
  "BlurPlaceholder": {
    "Enabled": true,
    "Algorithm": "Webp",
    "DecodeToDataUrl": true,
    "BackfillExisting": true,
    "RetryInterval": "12:00:00",
    "Webp": { "MaximumDimension": 16, "Quality": 60 },
    "BlurHash": { "MaximumDimension": 32, "ComponentsX": 4, "ComponentsY": 3 },
    "ThumbHash": { "MaximumDimension": 100 },
    "DecodedDataUrl": { "WebpQuality": 60 }
  }
}

Every value above is the default. See the settings reference below for what each one changes.

4. Restart the application

The first startup installs the string data type and adds the blurPlaceholder property to the default Image media type. With BackfillExisting enabled, a background pass then processes the images already in the library.

5. Verify the result

Upload or replace an Image media item and save it. The read-only Blur placeholder property appears after the standard image fields and shows the generated preview, its representation, and its stored size. The value is a plain string you can copy straight out of the backoffice.

If the property is missing or empty, see Operations for the migration, health-check, and retry behavior behind it.

Settings reference

Setting Default Purpose
Enabled true Enables save-time generation and maintenance. Disabling it preserves existing values.
Algorithm Webp Selects Webp, BlurHash, or ThumbHash.
DecodeToDataUrl true Converts native hashes to browser-ready WebP data URLs. WebP output is always a data URL.
BackfillExisting true Runs one existing-image pass for each output-settings fingerprint.
RetryInterval 12:00:00 Sets how often maintenance scans for missing placeholders and retries transient failures. Minimum one minute.
Webp.MaximumDimension 16 Longest edge of direct WebP output. Accepts 16 to 64.
Webp.Quality 60 Direct lossy WebP quality. Accepts 1 to 100.
BlurHash.MaximumDimension 32 Longest input edge passed to BlurHash. Accepts 16 to 100.
BlurHash.ComponentsX/Y 4 / 3 BlurHash detail grid. Each axis accepts 1 to 9.
ThumbHash.MaximumDimension 100 Longest input edge passed to ThumbHash. Accepts 1 to 100.
DecodedDataUrl.WebpQuality 60 WebP quality after decoding BlurHash or ThumbHash. Accepts 1 to 100.

An invalid value fails application startup and names the configuration key and its accepted range.

Settings that change the generated bytes feed the backfill fingerprint. Changing one permits a single new pass over existing images rather than starting a recurring media-library scan.

Next steps

  • Delivery API: request the property and render it in Next.js or Nuxt.
  • Overview: compare the output formats and their measured payloads.
  • Operations: backfills, retries, schema ownership, and troubleshooting.

Was this page helpful?