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](/_next/image?url=https%3A%2F%2Fs40vlb3kca.ufs.sh%2Ff%2F7d4d6329-6677-4fe4-8bc0-15d1d826ddae-r9vr3s.jpg&w=1080&q=75)
I asked for a better S3 for years. UploadThing exists because we got tired of waiting.
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