ImageKit

imagekit.io

ALMOST

A weekend of work, and real gaps remain.

Images resized, converted and delivered from a network: you request a size and a format in the URL and it produces and caches it.

Promptfree, for everyone, and the only version there is
Build me the image pipeline I actually need instead of ImageKit.

**The transformations are the easy half and the delivery network is the expensive half.** A cheap network in front of your own resizer gets most of the value; skipping the network entirely does not.

STACK
- Node 20+ with Fastify
- sharp for every transformation
- SQLite through better-sqlite3 for the derivative index
- Object storage for originals and derivatives
- Bunny or Cloudflare in front for delivery — this is the part to buy rather than build
- Caddy in front of the origin

THE URL IS THE API
- /img/<signature>/<width>x<height>/<fit>/<path>.<ext>
- **Sign the parameters, or your origin is a free image-resizing service for the entire internet.** This is the failure that produces a surprise bill, and it is the first thing to write
- An allow-list of widths — a dozen values, not any integer. Unbounded widths mean unbounded renders of the same picture

THE PIPELINE
- Fetch the original once, store it, never modify it
- Derive on first request, write to storage, serve from cache ever after. The second request must never touch sharp
- AVIF, then WebP, then JPEG, chosen from Accept, with `Vary: Accept` set — **forget the Vary header and the network serves AVIF to a browser that cannot read it**
- Strip metadata, keep the colour profile, and honour EXIF orientation before resizing or half your portrait photographs arrive sideways
- Cap dimensions and megapixels on input. A crafted image is a memory exhaustion attack

DOING IT WITHOUT BREAKING THE PAGE
- Emit a srcset and sizes with your allow-listed widths, and set width and height so nothing shifts as it loads
- A tiny blurred placeholder generated at ingest, inline in the HTML
- Never serve an image larger than the container asked for; that is where the bandwidth goes

OPERATIONS
- A render queue with a concurrency cap; sharp is CPU-hungry and an unbounded burst takes the machine down
- **A stampede lock per derivative**: fifty simultaneous requests for one uncached image must produce one render
- Bytes served and renders per day recorded, so a bill or an abuse is visible
- A purge that changes the signature rather than trying to clear a cache you do not control

WHAT MATTERS MOST
Signed parameters and the width allow-list. Without them you have built an open image service on your own hosting bill.

What you lose

  • A global delivery network with edge caching, which is the expensive part
  • Format negotiation kept current as browsers change
  • Transformations you never have to think about again
  • Storage and origin fetching handled

If you would rather not build

  • Next.js or Astro image handling if you are already in one

The escape hatch

open source · no votes, no paid placement

imgproxy

$0

Fast image resizing and conversion over signed URLs; self-hosted.

imgproxy/imgproxyfree · open source

Thumbor

$0

Long-standing on-demand image transformation server.

thumbor/thumborfree · open source

Why this verdict

our own opinion · changed only by a person

55/100

Verdict kinda at 55: sharp does the work, and the network is the part worth paying somebody for. Signed URLs are non-negotiable — an open resizer is a bill waiting to happen.

History

tracked since 14 Aug 2026 · nothing is ever overwritten

Interest · last 30 days

Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.

Questions about ImageKit

answered from the record above

Is ImageKit free?

No — the plan we track is $89 a month. Performance plan at $89/month with bandwidth and transformations included; a free tier covers small sites.

Can you replace ImageKit by building your own?

ALMOST. A weekend of work, and real gaps remain. Replacement score 55 out of 100, build time a weekend. Read what you lose before you decide.

How much does ImageKit cost?

$89 a month on Performance — $1,068 a year. Recorded 14 Aug 2026.

What do you lose by replacing ImageKit?

A global delivery network with edge caching, which is the expensive part; Format negotiation kept current as browsers change; Transformations you never have to think about again; Storage and origin fetching handled. If any of those carry weight for you, keep paying.

Is there an open-source alternative to ImageKit?

Yes: imgproxy, Thumbor. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 29 in Design & website builders

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc