WeTransfer is $12/mo (Pro). Saddlebag is a self-hosted alternative at $0.99/mo. Here's when each makes sense.
| Saddlebag | WeTransfer | |
|---|---|---|
| Hosting | Self-hosted, your infra | Managed SaaS (cloud only) |
| Data location | Your server, your disk | WeTransfer's cloud |
| Free tier | 1GB storage | Paid only |
| Pro pricing | $0.99/mo | $12/mo (Pro) |
| Dependencies | None (single binary + SQLite) | N/A (managed) |
| Setup time | ~30 seconds | Account signup |
| Dashboard | Built-in at /ui | Cloud dashboard |
| License | BSL 1.1 | Proprietary SaaS |
Saddlebag is a single Go binary with embedded SQLite. Install it with one command, and you are running in under a minute. Your data stays on your server.
curl -fsSL https://stockyard.dev/saddlebag/install.sh | sh
Before choosing between Saddlebag and WeTransfer, consider what happens when you need to leave. WeTransfer exports vary in completeness — some fields, some history, some metadata may not come with you. Saddlebag stores everything in a single SQLite file. Leaving means copying that file. This is not a hypothetical concern: the average team changes tools every 18 to 24 months.
Architecturally, Saddlebag and WeTransfer could not be more different. WeTransfer runs on distributed cloud infrastructure with load balancers, managed databases, CDNs, and redundancy across availability zones. Saddlebag is a single process writing to a single file on a single disk. That sounds fragile until you realize that SQLite handles more concurrent readers than most web applications will ever need, and WAL mode means reads never block writes.
Moving from WeTransfer does not have to be all-or-nothing. Some teams run Saddlebag for new data while keeping WeTransfer as a read-only archive of historical records. The API makes it straightforward to build a sync script if you need both systems to reflect the same data during a transition period.
Single binary. Free to start. $0.99/mo for Pro.