How Visionary Image Works
Visionary Image renders your images with built-in Blurhash placeholders, using three layers to provide the fastest possible placeholder rendering, improving performance, user experience, and Core Web Vitals. Powered by Blurhash URLs, which embed image placeholder data directly in the URL.
- 01. Base layer / Background color representing the average pixel color of the image. This layer is rendered true-to-size using the aspect ratio and max-width data embedded in Blurhash URLs.
- 02. Blur layer / A Blurhash placeholder is painted on a canvas; this layer provides a blurred preview of the image, giving users an idea of its content while the image loads.
- 03. Image layer / The image loads and is rendered on the top layer, replacing the blur layer.
Three-stage image loading

Blurhash URLs contain embedded placeholder data to supercharge image loading and boost Core Web Vitals. Create your own Blurhash URL by uploading an image or providing a publicly accessible image URL.
Visionary Image in Action: PageSpeed Filmstrip

Using PageSpeed Insights, we're able to observe a throttled loading filmstrip showcasing each loading state of Visionary Image:
- Initial pageload
- Immediate rendering of solid color placeholders
- Blurhash placeholders replace solid colors
- Full image loads
How it Works
Visionary Image renders three layers to provide the fastest possible placeholder rendering, improving Core Web Vitals like Cumulative Layout Shift (CLS). Blurhash URLs embed the placeholder data directly in the URL.

Decoded Blurhash URL
{
backgroundColor: "#f88a7b",
blurhash: "KeQ=~sxG^6vCf7R+}sjt9]",
blurhashX: 3,
blurhashY: 3,
}
Getting Started is Easy
Install Visionary Image in your project:
npm i --save visionary-imageImport and render the component:
import { Image } from 'visionary-image';
const ImageDetailPage = ({ imageUrl }) => (
<Image src={imageUrl} alt="Field full of white cherry blossoms" />
);Create a Blurhash URL
Convert a public image URL with Blurhash URL Maker
Generate from a local image with Drag-and-Drop Image to Blurhash
Generate programmatically using blurhash-url
