Something embarrassing happened to me recently. I was at a networking event and I was excited to show someone my website and passion project Jamroom. As soon as I pulled them up, I remembered how long it'd been since I created these projects. The UI/UX I'd built a couple of years ago felt stale, and there were unpolished edges I never went back to.
So I spent last weekend to revamp the UI, rethink some of the UX, and I even finally recorded a demo for Jamroom1 to showcase on my website!
A new challenge I was presented with then was where to host the demo video. In the past I'd always reach for the quick and dirty solutions like hosting on Vimeo, YouTube's unlisted videos, or GitHub even. This time I decided it was time for change, I wanted to host my assets on my own infra. To do this I came up with two requirements:
1) The solution needs to be free/dirt cheap
2) The setup can't take more than a few minutes, time is money!
Did some research and landed on Cloudflare R2, they offer a generous free tier. But mid-onboarding I realized in order to use the free tier, I'd have to either:
1) Switch my DNS provider to Cloudflare, having to migrate all my DNS records, which would absolutely take more than a few minutes.
2) Setup URL pre-signing on my backend to provide public access to the videos in my private bucket. Which would be unnecessary work for my needs at this time.
So I kept digging and voila! Enter Vercel Blob storage, their free tier offers free public access to your assets, albeit it's very limited. But it's good enough for now! There'll come a time when I'll have to finally setup the URL pre-signing to take advantage of the more generous free services out there, but till then I can invest my time in more pressing projects.
Here are my realistic options, optimizing for ease of setup/use and cost.
| provider | cheapest tier | tier limits | public URL access |
|---|---|---|---|
| Backblaze B2 | forever free | 10GB storage, unlimited free egress, 1M writes + 10M reads/mo | Yes—public buckets support direct URLs , but cannot map custom domain without Cloudflare workaround |
| Supabase Storage | free forever | 1GB file storage, 5GB bandwidth, 50K MAUs | Yes—public buckets provide direct asset URLs without auth |
| DigitalOcean Spaces | $5/month | 250GB storage, 1TB outbound transfer | Yes—files can be set to public permissions with direct URLs |
| Vercel Blob | free (Hobby) | 1GB storage, 10GB Blob Data Transfer/month | Yes—native public access with permanent URLs |
| AWS S3 | free 12mo | 5GB storage, 20K GET + 2K PUT requests/month, 100GB data transfer out | Yes via public bucket or presigned URLs |
Links
Demo video
Jamroom Website
My Website
-
Jamroom is a passion project I built a couple of years ago to teach myself about real time messaging systems and experiment with music. You can join a room with your friends and play virtual instruments (keyboard and drums) together in real time. ↩
Top comments (0)