Skip to content
smallPict
Start Free

Smaller images for WordPress, and for anything that can call an API.

smallPict converts each upload to WebP or AVIF and picks the quality per image. On Free and Starter, images are processed and not kept; on Pro and Business, optional Cloud Offload keeps your originals in encrypted cloud storage and serves the optimized files from the CDN.

Start freeFree plan: 20 MB of images a month, no card.
Live demoEncoded in your browser. Nothing is uploaded.
OriginalWebP · q72
Runs withWordPressNext.jsReactLaravelDjangoRailsGoRustSpring Boot

Pick where it runs

Same engine behind all three. The plugin is the shortest path if your site runs on WordPress.

WordPress plugin

Converts the media library and every new upload.

WordPress admin
1 Plugins → Add New: search "smallPict", install and activate
2 Settings → smallPict: paste your API key sp_wp_xxxxxxxx
3 New uploads are optimized automatically
4 Existing images: run the Bulk Optimizer in the plugin

REST API

One POST with the image, get the smaller file back.

curl
# SIG = hex(HMAC-SHA256(secret, "POST\n/v1/optimize\n$TS\n$BODY_SHA256"))
curl -X POST https://api.smallpict.app/v1/optimize \
-H "X-API-Key: $SMALLPICT_API_KEY" \
-H "X-Timestamp: $TS" -H "X-Signature: $SIG" \
-H "Content-Type: application/json" \
-d '{"filename":"header.jpg","mime_type":"image/jpeg",
"filesize":184320,"options":{"format":"webp"}}'

SDKs

Node, PHP, Python, Go, Ruby, Rust, Java.

node
// npm install @smallpict/sdk (signs every request for you)
import { SmallPict } from "@smallpict/sdk";
import fs from "node:fs";
 
const sp = new SmallPict({
apiKey: process.env.SMALLPICT_API_KEY, secretKey: process.env.SMALLPICT_SECRET_KEY,
});
const out = await sp.optimize(fs.readFileSync("header.jpg"), { format: "webp" });
console.log(out.url, out.savingsPercentage);

What comes out

The CDN reads the browser's Accept header and sends the smallest format it can display.

AVIF

about half

the size of the JPEG. Chrome, Edge, Firefox, Safari 16.4+.

WebP

25–35% smaller

than the JPEG. All current browsers.

JPEG / PNG

kept

as the fallback for everything else.

Questions people ask before installing

Read the docsContact support

Will people notice the images look different?

At the default setting, almost never. The conversion is lossy, so the file is smaller because detail the eye does not pick up is removed. You can compare any image side by side in Assets & Preview.

What happens in browsers without WebP or AVIF?

On Pro and Business, the plugin writes AVIF and WebP next to the original and serves them with a <picture> tag: AVIF to browsers that accept it, WebP to the rest, the original to anything older. On Free and Starter, each image is converted to one format (WebP, or AVIF on Starter), which all current major browsers can display.

Does smallPict keep my original files?

It depends on your plan. On Free and Starter, smallPict keeps no copy: each upload sits in temporary encrypted storage only while it is processed and is deleted within 24 hours, and the converted file replaces the original on your site, so keep your own backup if you need the originals. On Pro and Business, turn on Cloud Offload to keep originals in encrypted cloud storage and serve images from the smallPict CDN. Leave it off and everything stays on your WordPress server. On the Velocity and Momentum API plans, smallPict keeps your originals in secure, encrypted cloud storage for as long as your account is active. If you connect your own storage, the files live in your own account and you are responsible for them.

Do I need to write code?

No. Install the plugin from WordPress.org, paste your key, and new uploads convert automatically. Run a bulk conversion for the existing library.

Which languages have an SDK?

Node, PHP, Python, Go, Ruby, Rust and Java, plus the REST API for anything else.

What counts toward my quota?

The size of the files you upload for conversion. Serving the converted files from the CDN is counted separately, as bandwidth.

Try it on your own images.

20 MB a month free. About two minutes to set up on WordPress.