Better file uploadsfor developers

Developers deserve better than S3. That's why we made UploadThing, the easier (and safer) alternative. From the button to the server, we've got you covered.

Your Auth. Our Bandwidth.

The right balance of security and simplicity.

Authentication happens on your server, the upload happens on ours.

server.ts
export const fileRouter = {
  imageUploader: f({ image: { maxFileSize: "4MB" } })
    .middleware(async ({ req }) => {
      // This code runs on your server before upload
      const user = await auth(req);
 
      // Throw to block uploading
      if (!user)
        throw new UploadThingError("Unauthorized");
 
      // Return metadata to client
      return { userId: user.id };
    })
    .onUploadComplete(async ({ metadata, file }) => {
      // ...
    }),
} satisfies FileRouter;
client.tsx
<UploadButton
  endpoint="imageUploader" // Typesafe btw
  onClientUploadComplete={(response) => ...}
  onUploadError={(error) => ...}
/>
Theo

I asked for a better S3 for years. UploadThing exists because we got tired of waiting.

Theo (t3dotgg)

YouTuber, Creator of T3 Stack, CEO @ UploadThing

Easily manage your files.

A powerful, intuitive dashboard for developers to securely manage and track all uploaded files.

Worry about your app,
not your bill.

We wanted pricing to be as simple as possible. No calculator needed. Need something else? Let's chat!

2GB App

Everything you need to start uploading!

$0/month

  • 2GB of storage *
  • 7 days of audit log retention
  • Unlimited uploads and downloads
  • (Probably) cheaper than a cup of coffee
  • * Storage shared between all apps

100GB App

For those with teams or more than 2 gigs of files

$10/month

  • 100GB of storage
  • 30 days of audit log retention
  • Regions
  • Private Files

Usage Based

Usage based pricing, starting at $25/mo for 250GB of included storage

$25/month

  • 250GB of included storage
  • 30 days of audit log retention
  • $0.08 per GB over 250GB
  • Regions
  • Private Files

All Prices in USD