Where should our data and images live?
Three options compared on our real numbers: staying on Supabase, moving images to Cloudflare R2, or self-hosting everything on our own server.
Stay on Supabase
Upgrade the database from 1 GB to 2 GB RAM. Nothing moves.
Supabase + R2 for images
Database stays on Supabase. New images go to R2 on our own domain. R2 costs about $0.
Self-host everything
~$26 until old images are moved off Supabase. Everything runs on our one server.
Side by side
| A · Stay | B · + R2 | C · Self-host | |
|---|---|---|---|
| Work to switch | 10 minutes | 2–3 days | 1–2 weeks + upkeep |
| Downtime | ~2 min restart | None | ~20 min |
| Fixes Monday's database stall | Yes | Yes, with the upgrade | Yes |
| Image resizing | Over quota, ~$1–6/mo | Free | Free with R2 |
| Image speed | OK | Fast, global edge | Fast with R2 |
| Backups | Handled for us | Handled for us | We build them, none today |
| If it breaks at 3am | Supabase fixes it | Supabase fixes it | We fix it |
| Tied to Supabase | Fully | Database only | No |
What happens to images
| A · Stay | B · + R2 | C · Self-host | |
|---|---|---|---|
| New images | Supabase link, as today | Our domain | Our domain |
| Old images on customer sites | Keep working | Keep working | Break when Supabase closes |
| Posts customers edited or disconnected | Fine | Fine | Can't be fixed |
| Logo in emails already sent | Fine | Fine | Breaks |
| Social posts waiting to publish | Fine | Fine | Needs a careful switch |
Old images point at a supabase.co address, and only Supabase controls it. In B, Supabase stays up for the database anyway, so old images never break.
What switching looks like
A · Stay
- Upgrade to the 2 GB plan
- 2 min restart at a quiet hour
- Done
B · + R2
- Create R2 + images.thestacc.com
- One upload helper for all images
- Copy the 12 GB across
- Point saved links at the new domain
- Thumbnails via Cloudflare
C · Self-host
- Offsite backups + a restore test
- Lock down the server's open ports
- Copy database and users over
- Rehearse, then switch ~20 apps
- Re-sync all posts, close Supabase
Do A now, then B.
About $30 a month. Nothing breaks, the stall is fixed today, and new images move to our own domain within a week. Self-hosting saves ~$29 a month at most, and only once the old images are gone, in exchange for running backups and outages on one old disk.