File handling that just works.

Easily add S3 storage to your site, without lock-in, and using your storage bucket.

What is UploadWorks?

We bring missing features to S3, making development easier,
all while you maintain full control over your storage bucket.

You bring the storage bucket, we bring the APIs. A pefect match. 🤝

DEVELOPMENT

Middleware

React Library

Demo Repository

UPLOADING

Rest API

Presigned URLs

Webhooks

STORAGE

Platform Buckets

BYOB (R2 / AWS S3)

Unlimited Storage

DELIVERY

Global CDN

Signed URLs

Try us out

Seeing is believing. Upload any image!

$

profilePictures: f({

maxFileSize: 10000000, // 10mb

directory: "/"

mime: "image/*"

})

.middleware(async ({ req, metadata }) => {

return { metadata: {}, fileKey: metadata.key};

})

.onUploadComplete(async ({ file }) => {

// run logic to save file key to database

})

Drag & drop or click to choose an image

Max file size: 10MB

Bring-Your-Own-Bucket

The best way to store files is in your own storage bucket. You benefit from uploadWorks features, while having full uninterrupted access to your files.
Amazon S3 and Cloudflare R2 supported.

Signed Safety

Generate client-safe signed endpoints to upload files, and include middleware for auth, file size, type, and more. We'll even let you know when files are successfully uploaded by the client.

Pricing

Our Hobby plan is for personal, non-commercial use and will always be free.
Pro is designed for commercial use and contains all of our features.

Hobby

Includes one byob, unlimited file uploading, and access to our API.

Free

Free for life

Pro

Includes advanced features alongside unlimited byob, and full access to our platform.

3 Days Free

Then $7.99/month

Compare Plans

FeatureHobbyPro
Unlimited File Uploading
Bring-Your-Own-Bucket (S3 & R2)
React Library
Rest API
No Vendor Lock-in
Restricted Uploads
Unlimited Buckets
Free Provided Bucket
Priority Support
Commercial Usage

Questions? Answers.

Files are hard, we just make them easy.

Add safe file uploading to your website in minutes, not days.