{"data":{"slug":"uploadthing","name":"UploadThing","tagline":"File uploads that do not make you cry","category":"nextjs","categoryName":"Next.js","url":"https://uploadthing.com","github":"https://github.com/pingdotgg/uploadthing","pricing":"freemium","hook":"UploadThing turns file uploads into twenty lines of code.","whatsGood":"The API is elegant: define file routes with validation, use the React components, done. TypeScript inference flows through the entire stack. Built-in image optimization, middleware hooks for auth, and presigned uploads handle the common cases.","theCatch":"You are depending on a third-party service for a core feature. Storage costs scale with usage, and egress gets expensive.","verdict":"Delightful until you need S3-level control.","addedAt":"2026-08-18","featured":false,"domain":"Next.js","subSpecialty":"Files & Email","capabilities":["uploads"],"surfaces":["Hosted"],"ecosystem":["Node.js","Browser"],"licenseModel":"Freemium","githubStars":5319},"related":[{"slug":"vercel","name":"Vercel","tagline":"The platform that made Next.js deployment trivial"},{"slug":"prisma","name":"Prisma","tagline":"Type-safe database access with killer DX"},{"slug":"drizzle","name":"Drizzle ORM","tagline":"TypeScript ORM that feels like SQL"},{"slug":"trpc","name":"tRPC","tagline":"End-to-end typesafe APIs without codegen"},{"slug":"clerk","name":"Clerk","tagline":"Auth that actually ships with your UI"}],"links":{"self":"/api/gems/uploadthing","html":"/gems/uploadthing","markdown":"/gems/uploadthing.md","category":"/api/gems?category=nextjs","categoryPage":"/stacks/nextjs"}}