Skip to content
Now in public beta

Image infrastructure
for modern SaaS

Upload, transform, and deliver images, PDFs, and binary files from a global edge network.

Zero egress feesOne SDKShips in minutes
terminal

$ npm install @imgbt/core

$ npx imgbt upload ./hero.png --vault my-vault

✓ https://assets.myapp.com/hero.png?w=800&format=webp

# Delivered in < 50ms from 300+ edge nodes

Everything you need to ship media

Built on Cloudflare's edge stack. No servers to manage, no egress to pay.

Image Transforms

Resize, crop, format-convert, and adjust quality on the fly via URL parameters. WebP, AVIF, JPEG, PNG — serve the right format automatically.

PDF-Native

First-class PDF manipulation: page-to-image rendering, merge, split, and form-fill. Treat PDFs like images — transform them at the edge.

3-Level Key System

Organize assets with partition → collection → channel hierarchy. Scope API keys to any level. Perfect for multi-tenant SaaS architectures.

Signed URLs & Access Control

HMAC-SHA256 signed URLs with configurable expiry. Password-protected links. Revoke individual assets without rotating keys.

Custom Domains & Auto SSL

Bring your own domain with one DNS record. SSL provisioned automatically via Cloudflare for SaaS. No certificate management.

Edge Delivery

Zero egress fees on R2. Assets cached at 300+ Cloudflare edge nodes worldwide. Sub-50ms delivery, globally. No CDN configuration required.

How it works

From upload to global delivery in three steps.

1
01

Upload

Upload any file via SDK, REST API, or CLI. Files go directly to R2 — no intermediate hops. Metadata indexed instantly.

Buffer · Blob · ReadableStream · URL

2
02

Transform

Request transformations via URL query parameters. imgbt applies them at the edge on first request and caches the result globally.

Resize · Crop · Format · Quality · Rotate

3
03

Deliver

Assets served from the Cloudflare edge node closest to your user. Cache-first delivery with zero egress fees.

300+ edge nodes · < 50ms p95 · zero egress

@imgbt/core

One SDK.
Every platform.

Hand-written TypeScript SDK with full type safety, auto-pagination, retry logic, and large-file support out of the box. Works in Node.js and the browser.

  • Zero-config start with env var fallbacks
  • Typed errors with .status and .code
  • Auto-detects files >100MB, uses presigned URLs
  • React, Next.js, Vue, Svelte adapters
upload.ts
import Imgbt from '@imgbt/core'

// Initialize with your API key
const imgbt = new Imgbt({
 apiKey: 'pk_live_xxx',
 vault: 'my-vault',
})

// Upload a file
const asset = await imgbt.upload({
 file: fileBuffer,
 partition: 'acme-corp',
 collection: 'avatars',
 filename: 'jane.png',
})

// Generate a transformed URL
const url = imgbt.url('acme-corp/avatars/jane.png', {
 width: 200,
 height: 200,
 fit: 'cover',
 format: 'webp',
 quality: 80,
})
// → https://assets.myapp.com/acme-corp/avatars/jane.png
//     ?w=200&h=200&fit=cover&format=webp&q=80

Simple, transparent pricing

Start free. Scale as you grow. No egress fees ever.

Free

$0forever

For side projects and evaluation.

  • 1 vault
  • 1 GB storage
  • 10K requests/month
  • Community support
Get Started
Most Popular

Pro

$29/month

For growing SaaS products.

  • 5 vaults
  • 50 GB storage
  • 1M requests/month
  • Custom domains
  • Email support
Start Free Trial

Scale

$99/month

For high-volume products.

  • Unlimited vaults
  • 500 GB storage
  • 10M requests/month
  • Custom domains
  • Priority support
Start Free Trial