NewNow billed per origin image, the same unit as Supabase

Stop overpaying for Supabase image transformations

Keep your bucket and change one URL. ProdKit serves resized AVIF and WebP from Cloudflare's global network, billed in the same unit as Supabase for up to 62% less.

  • Free plan, no card
  • Works on Supabase Free
  • Five-minute setup

Example request

Before: xyz.supabase.co/storage/v1/…/avatars/cory.png

After: img.prodkit.cloud/acme/avatars/cory.png?width=256

200 OKimage/avifcache HIT
2.4 MB original → 18 KB delivered−99%

Monthly bill at 4,000 origin images

Supabase$19.50ProdKit$9

Plain image URLs work in every stack

Why switch

Same images, a smaller bill

Supabase's transformations are convenient, but they bill every origin image, only exist on paid plans, and push all image traffic through your egress quota.

Supabase image transformations

  • $5 per 1,000 origin images after the first 100
  • Only on paid plans, not available on Supabase Free
  • Output capped at 2,500px per side
  • Every image view counts toward your egress quota

ProdKit

  • From $0, and paid plans cost 54–62% less at their included volume
  • Works with public buckets on every Supabase plan, including Free
  • Resize up to 4,096px, with AVIF and WebP chosen per browser
  • Repeat views come from ProdKit's edge cache, not your Supabase egress
  • One paid plan covers every project you ship

How it works

Live in five minutes

There's no pipeline to build and nothing new to host. Storage stays where it is.

  1. Public bucket URL

    xyz.supabase.co/storage/v1/object/public/avatars

    Verified xyz / avatars

    01

    Connect your bucket

    Paste your public bucket URL. ProdKit checks it and gives the project an endpoint.

  2. xyz.supabase.co/…/avatars/cory.png

    img.prodkit.cloud/acme/avatars/cory.png

    02

    Replace one URL

    Swap the storage base URL for your endpoint. Paths and filenames stay exactly the same.

  3. AVIF256 × 256cache HIT18 KB

    Fraction of the original bytes

    03

    Serve optimized images

    Images come back resized, in AVIF or WebP, from Cloudflare's cache near your users.

Built on Cloudflare

Cloudflare's edge, none of the setup

Every image request runs on Cloudflare's network. ProdKit adds the parts Cloudflare leaves to you: no account or zone to configure, one URL per project, and a bill per image instead of per size.

GET

img.prodkit.cloud/acme/avatars/cory.png?width=640

  1. ProdKit Images

    Your endpoint, usage dashboard, and per-image billing

  2. Cloudflare Workers

    Routes every request to your bucket and meters usage

  3. Cloudflare Images

    Resizes each image and converts it to AVIF or WebP

  4. Cloudflare R2

    Keeps generated sizes so none is transformed twice

  5. Your Supabase bucket

    Originals stay where they are. ProdKit only reads them

Savings calculator

See what you'd save every month

Set your monthly volume to compare Supabase's per-image pricing with a flat plan. At 4,000 images, Supabase charges $19.50 and Starter is $9.

10,000
250500k
500,000
10k25M

An origin image is one source file in your bucket, counted once a month however many sizes it's served at. That's the unit Supabase bills: $5 per 1,000 after 100 included on paid plans. Supabase pricing

Supabase

$49.50

transformations / mo

ProdKit

$27

Starter + $18 overage

You save

$22.50

45% · $270/yr

~30 GB/month of image traffic moves off your Supabase egress quota.

Assumes ~60 KB per optimized image. Originals are fetched from Supabase only when a new size is generated.

Features

Everything production images need

Focused on one job: delivering the images your app already has, faster and for less.

AVIF and WebP, automatically

Each browser gets the smallest format it supports. Originals stay untouched in your bucket.

Responsive sizes

Request any width up to 4,096px with one URL parameter. Up to five sizes of each image are included.

Cloudflare's edge cache

Generated sizes are cached across Cloudflare's network, close to your users, so repeat views are fast and never billed.

Face-aware crops and effects

Crop around faces or a focal point, blur, sharpen, or cut out the background (beta). Each is a Cloudflare Images feature and one URL parameter.

Usage you can see

Track origin images, sizes, bandwidth, cache hit rate, and savings against Supabase pricing.

Built for coding agents

Clear docs and a ready-made prompt let Claude Code, Cursor, or Codex migrate your image URLs in one pass.

Agent workflow

One prompt migrates your whole app

Point your coding agent at the project with your endpoint and bucket. It finds Supabase Storage URLs, rewrites them, sizes each image for how it's displayed, and hands you a diff to review.

Prompt

Claude Code · Cursor · Codex

Optimize every image in this project with ProdKit.
Endpoint: https://img.prodkit.cloud/acme  Bucket: avatars
Rewrite Supabase Storage URLs, size each image for
how it's displayed, and show me the diff.

components/avatar.tsx

− src={`${SUPABASE_URL}/storage/v1/object/public/avatars/${id}.png`}

+ src={`https://img.prodkit.cloud/acme/avatars/${id}.png?width=96`}

Pricing

Pricing that pays for itself

Billed per origin image, like Supabase, so every comparison is like for like. Paid plans cover unlimited projects.

Free

For side projects and trying ProdKit on a real app.

$0

/ month

1,000 origin images / month

Stops at the limit, never billed

Supabase doesn't include image transformations on its Free plan.

  • 1 project
  • Every size and format included
  • Global CDN and edge caching
  • Works in any stack

Starter

Best place to start

For a production app replacing its Supabase transformation bill.

$9

/ month

4,000 origin images / month

$3 per 1,000 extra images

Supabase for 4,000 images
$19.50
You save
$10.50/mo
  • Unlimited projects
  • Every size and format included
  • Usage dashboard and request logs
  • Email support

Pro

For growing apps with bigger catalogs and more traffic.

$29

/ month

15,000 origin images / month

$2.50 per 1,000 extra images

Supabase for 15,000 images
$74.50
You save
$45.50/mo
  • Everything in Starter
  • Lower overage rate
  • Priority email support

Scale

For image-heavy products serving at serious volume.

$249

/ month

130,000 origin images / month

$2 per 1,000 extra images

Supabase for 130,000 images
$649.50
You save
$400.50/mo
  • Everything in Pro
  • Lowest overage rate
  • Custom limits and invoicing

Compare plans in detail

FAQ

Questions, answered

What counts as an origin image?

One source file in your bucket, counted once per calendar month however many sizes and formats it's served in. It's the same unit Supabase bills, and repeat views from cache are free.

Do I need Supabase Pro?

No. ProdKit works with public buckets on any Supabase plan, including Free, where Supabase doesn't offer image transformations at all.

Do my images move?

No. Files stay in your Supabase bucket. ProdKit fetches an original only when it needs to generate a new size, then serves cached copies.

What happens if I go over my plan?

Paid plans keep serving and bill extra images at the plan's overage rate. The Free plan stops at 1,000 images and serves your originals instead, so there's never a surprise bill.

Can I use private buckets?

Not yet. ProdKit works with public Supabase buckets today. Signed URLs for private buckets are on the roadmap.

How many projects can I connect?

One on the Free plan and unlimited on paid plans. Every project gets its own endpoint, and they all share one plan's included images.

What is ProdKit built on?

Cloudflare. A Cloudflare Worker routes each request to your bucket, Cloudflare Images resizes and converts it, and Cloudflare R2 keeps the sizes it generates. ProdKit handles setup, metering, billing, and the dashboard around them.

Why not use Cloudflare Images directly?

You can, and the raw transformation fees are usually lower. Doing it yourself means putting a domain on Cloudflare, enabling transformations for the zone, allowlisting your storage host, writing URLs or a loader, and paying for every size of every image. ProdKit does that setup once, bills per image, and adds per-project endpoints and usage tracking.

Is ProdKit affiliated with Supabase or Cloudflare?

No. ProdKit is an independent service built on Cloudflare's developer platform that works with Supabase Storage. Supabase and Cloudflare are trademarks of their respective owners.

Your images are one URL away from a smaller bill

Start on the free plan, connect a public bucket, and see the difference before you pay anything.