v1.0 · 5 GB free forever

File uploads
for developers,
done right.

Open-source TypeScript SDK, 40+ premium React components, and managed storage on Cloudflare R2 — or bring your own bucket. Ship uploads in an afternoon.

MIT licensed BYOS · S3 · R2 · GCS · B2 Works with Next, Remix, Vite
<UploadDropzone route="media" />
Drop files here or browse
PNG · JPG · MP4 · PDF up to 32 MB
route=mediamax 4 filespresigned
Used by solo devs shipping fast
◆ Linear-ish
⎈ helmet.io
∿ driftwood
◉ orbit.dev
▲ vercel-ish
⬡ honeycomb
✺ novastack
Batteries included

Everything between
file picker and object storage.

Stop stitching together pre-signed URLs, progress state, retry logic, and IAM policies. UploadKit is the one import.

Presigned uploads

Files go directly from the browser to storage. No proxy hop, no memory ceilings.

// direct-to-bucket

Multipart + resumable

Ship 5 GB video uploads with chunked transfer and pause/resume out of the box.

// up to 5 TB per file

Type-safe file routes

Define allowed MIME types, size caps, and metadata once — get end-to-end types.

// FileRouter API

Bring your own storage

Same SDK, your bucket. AWS S3, Cloudflare R2, GCS, Backblaze B2. Credentials server-side.

// BYOS mode

MCP-native

Install an MCP server and let Claude Code, Cursor, and Windsurf wire the whole thing up.

// @uploadkitdev/mcp

40+ premium components

Glass, terminal, brutal, neon, aurora — themeable via CSS custom properties, dark mode default.

// @uploadkitdev/react
40+ components

Pick a dropzone. Ship an hour later.

From quiet defaults to loud opinions — each component is MIT-licensed, dark-mode out of the box, and works with or without motion as a peer.

01@uploadkitdev/react
UploadButton
The classic. One line, opinionated defaults.
Upload file
02@uploadkitdev/react
UploadDropzone
Drag, drop, done. Themeable via CSS custom properties.
drop files here
03@uploadkitdev/react
UploadProgressRadial
Circular progress with live percentage readout.
04@uploadkitdev/react
UploadAvatar
Crop, preview, and replace. Optimized for profile photos.
05@uploadkitdev/react
UploadGalleryGrid
Masonry grid with lazy loading and reordering.
06@uploadkitdev/react
UploadProgressStacked
Multi-file progress with per-file speed and ETA.
Browse all 40+ components
Live previews

Every component, interactive.

From minimal Stripe-style dropzones to 3D envelopes and vinyl records. Themeable, accessible, motion-aware.

Drop files here or click to browse

Apple Intelligence-style animated border beam1 / 17
Zero to uploading

Three ways in. Pick whichever hurts least.

Add to an existing project

Most people land here with a Next.js app already running. Install the packages, drop in a route handler, wrap your layout — done.

pnpm add @uploadkitdev/next @uploadkitdev/react

Use the CLI

Detects your framework, installs deps, creates the route handler, wraps your layout — one command.

$npx uploadkit init

Starting fresh

Scaffold a new Next.js, SvelteKit, Remix, or Vite app with UploadKit pre-wired.

$npx create-uploadkit-app my-app
BYOS · bring your own storage

Your bucket. Our SDK.
Zero vendor lock-in.

Use the same components and hooks against your own bucket. Credentials stay server-side. Switch providers by changing six lines of code.

R2
Cloudflare R2
$0 egress
S3
AWS S3
classic
G
Google Cloud
GCS
B2
Backblaze B2
cheap
import { createUploadKitHandler } from '@uploadkitdev/next';
import { createR2Storage } from '@uploadkitdev/next/byos';

export const { GET, POST } = createUploadKitHandler({
  router,
  storage: createR2Storage({
    accountId:       process.env.R2_ACCOUNT_ID!,
    accessKeyId:     process.env.R2_ACCESS_KEY_ID!,
    secretAccessKey: process.env.R2_SECRET!,
    bucket:          process.env.R2_BUCKET!,
  }),
});
AI-Native

Your AI already knows UploadKit.

Install the official MCP server and Claude Code, Cursor, Windsurf, or Zed gain first-class knowledge of every component and scaffold. No API key. No config. Runs locally.

$npx -y @uploadkitdev/mcp
  • Knows all 40+ components by name
  • Scaffolds the Next.js route handler
  • Wires the UploadKitProvider
  • Generates BYOS config (S3 · R2 · GCS · B2)
Claude CodeCursorWindsurfZedContinue
Pricing

Simple, transparent pricing

Free

$0/forever

Perfect for side projects and early-stage apps.

  • 5 GB storage
  • 2 GB bandwidth / mo
  • 4 MB max file size
  • 1,000 uploads / mo
  • 2 projects
  • Community support
Most Popular

Pro

$15/per month

For production apps that need reliable infrastructure.

  • 100 GB storage
  • 200 GB bandwidth / mo
  • 512 MB max file size
  • 50,000 uploads / mo
  • 10 projects
  • Priority email support

Team

$35/per month

For growing teams with higher volume and more projects.

  • 1 TB storage
  • 2 TB bandwidth / mo
  • 5 GB max file size
  • 500,000 uploads / mo
  • 50 projects
  • Dedicated support