Upload once. Resize, crop, format-shift, watermark — with one
URL parameter. Backed by sharp. The full-quality original
lives forever; everything else is generated and cached at edge.
Cloudinary and Imgix charge per-transform AND per-bandwidth AND per-storage. We charge per-month, flat. Your originals are never re-encoded; your variants are cached.
libvips-fast resize, format conversion, watermark composition. Faster than ImageMagick, lighter than GraphicsMagick.
What you upload is what we store, byte-perfect. Variants are generated on demand and cached. Re-encode the source = lose detail. We don’t.
Format-shift via URL: ?fmt=avif. Auto-negotiate via
Accept header when you let us. Modern formats are
30–60% smaller than JPEG with no visible loss.
cover / contain / fill /
inside / outside. Crop with focal-point
detection so faces stay in frame.
HMAC-signed URLs lock variant access to your domains. Stop random sites from running their CSS on your bandwidth.
GPS coordinates, camera serial numbers, timestamps — all gone before delivery. Original retains EXIF; only the variant strips it.
When the API tier opens, uploads are one POST. JSON in, ID out. Use the URL however you want.
# Upload an image. Returns { id, url }. curl -X POST 'https://api.jandgstudios.fun/v1/images' \ -H 'Authorization: Bearer $JG_API_KEY' \ -F 'file=@photo.jpg'
const form = new FormData(); form.append('file', fs.createReadStream('photo.jpg')); const res = await fetch('https://api.jandgstudios.fun/v1/images', { method: 'POST', headers: { 'Authorization': `Bearer ${process.env.JG_API_KEY}` }, body: form, }); const { id, url } = await res.json();
import os, requests r = requests.post( 'https://api.jandgstudios.fun/v1/images', headers={'Authorization': f'Bearer {os.environ["JG_API_KEY"]}'}, files={'file': open('photo.jpg', 'rb')}, ) image = r.json()
<!-- Drop the URL anywhere --> <img src="https://img.domainless.fun/abc123?w=800&fmt=webp" srcset="https://img.domainless.fun/abc123?w=400&fmt=webp 400w, https://img.domainless.fun/abc123?w=800&fmt=webp 800w, https://img.domainless.fun/abc123?w=1600&fmt=webp 1600w" sizes="(min-width: 768px) 50vw, 100vw" alt=""/>
No per-transform charge. No bandwidth-overage shock-bill. The tier you pick is the tier you pay.
We’ll email you when the Image Transform API opens. Waitlist members get permanent early-bird rates.