Cloud storage decision
UploadThing
Keep paying only if you need hosted convenience; otherwise self-hosting the open-source repo is realistic — the vendor provides an MIT repo so you can run a replacement yourself for modest engineering effort.
Visit website↗$10/mo
$120/yr
Read off the official pricing page.
$20one-off6 h to build
$19/mo3 h/mo upkeep
On cash alone, building overtakes the subscription at 3 seats.
Open-source builds that already do this
Every project below is open source and already does this job today. Fork one, self-host it, or take the parts you need - the build prompt further down assumes an empty file, and this is the shortcut past that. Licences differ; check the one on each card before you ship. All UploadThing alternatives, with the arithmetic →
What a replacement has to do
- Provide authenticated client upload button → accept upload metadata on server → generate/upload to object storage → record file metadata → show files in dashboard / trigger onUploadComplete hooks
What it still won’t have
- Managed multi-region storage and bandwidth optimizations
- Built-in audit log retention windows and UI (7/30 days tiers)
- Polished hosted dashboard, SLA, and commercial support
- Usage-based billing, team features and private-file hosting regions
What remains hard
- Product polish and ongoing maintenance
First-year cost
Keep paying
Paying is—cheaper in year one.
On cash alone, building overtakes the subscription at 3 seats.
Money you would actually spend
Time you would spend
—
What you would spend
What we assumed
The verdict above measures whether you could build it. This one is only about money.
Runnable build prompt
Build a self-hosted UploadThing-compatible file upload service using Node.js (Nest/Express), TypeScript, Postgres for metadata, and S3-compatible object storage (MinIO or AWS S3). Core features in scope: server auth middleware that validates user and returns signed upload parameters/URLs; a Typescript UploadButton client component that uploads files and calls a server onUploadComplete endpoint; storage adapter for S3 and local filesystem; a webhook/onUploadComplete handler that records file metadata in Postgres; a basic admin dashboard (list, filter, delete files). Out of scope: reimplementing advanced billing, multi-region storage orchestration, or commercial dashboard polish. Require TLS-enabled Docker deployment, environment-based config, error handling for upload failures, unit tests for server endpoints, and basic integration tests for full upload flow.
How we checked
How the score was reached
- Self-host verdict base92
- An open-source build was found+5
- 4 cited sources+3
- Price verified on pricing page+3
- 1/1 assessment runs agreed+4
- Evidence score99
The base comes from the verdict. Everything under it is a check that either happened or did not, and each one is a fact frozen in this record rather than a judgement made at render time - so the same evidence always produces the same number.
How scoring works →Cited sources · 4
Every page the run actually retrieved.
- official productUploadThing — official product & pricing page
- official pricingUploadThing — official product & pricing page (duplicate)
- open sourcecloudreve repository
- open sourceappwrite repository
Integrity checks
What held up, and what did not.





