Product
Storage
Stackap keeps uploaded files in a Cloudflare R2 bucket in your own account and serves them through the open-source Supabase storage service, so code written for that API keeps working.
What it does
Files live in an object-storage bucket you control, not on the server's disk, so a deploy or a rebuilt server does not lose them. The storage service in front of the bucket is the official open-source Supabase storage API, which means an app that already uploads and downloads through the standard client does not need new code.
Buckets can be public or private, as they are in the original product. Public buckets give files a stable URL; private ones require a signed request.
The bucket sits in your Cloudflare account, so the encryption keys, the billing and the delete button are yours. R2 does not charge for data leaving it, which keeps the cost of serving files predictable.
How it works
The first real use is a Next.js site. Its buckets held 93 objects. All 93 were downloaded, checksummed, uploaded to the new storage and verified one by one. Sixty URLs stored in database columns were then rewritten to point at the new storage host, and the sampled images loaded from it.
The storage service is deployed by an operator script per project, and it uses the project's own database for its metadata. The metadata schema is included in the project's database backup, which has been restored and checked.
Early-access scope
- Only one project uses it so far, and it is set up by the operator with a script, not by a switch in the dashboard.
- R2 is the single durable copy of your files. There is no second copy elsewhere, so if you need one, replicate the bucket yourself.
- There is no content delivery network in front of file URLs, and the server is in Germany, so distant visitors see more latency.
- Image transformations that the hosted product offers have not been enabled or tested.
- The CLI has no storage commands.
Questions
Can I use the S3 API directly?
What if I want to leave?
Stackap is in early access. Tell us what you run and we will reply with a straight answer about whether it fits.
Ask for an invitationLast updated .