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.

2GB App

Everything you need to start uploading!

$0/month

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

100GB App

Theo's Fav

For those with teams or more than 2 gigs of files

$10/month

  • 100GB of storage
  • Up to 10 developers
  • Regions
  • Private Files
  • Dark Theme

Unlimited App(s)

Need more gigs? More devs? More help convincing your boss? Hit us up

Custom

Schedule a call
  • Usage based pricing
  • Unlimited storage & devs
  • Dedicated support
  • Self Hosting (Coming soon™)

All Prices in USD