For Supabase & Cloudflare R2 users

Drop-in file uploads for Supabase & R2.
Set up in 5 minutes.

One component. It handles storage policies, signed URLs, and CORS — so you never re-read the docs on your next project.

Join the waitlist See the difference

Before vs. after

Every new project starts the same way. It doesn't have to.

Before: the config dance
-- 1. create the bucket
insert into storage.buckets (id, name)
values ('uploads', 'uploads');

-- 2. RLS: who can upload?
create policy "users can upload"
on storage.objects for insert
to authenticated
with check (bucket_id = 'uploads');

-- 3. ...and who can read? (another policy)
-- 4. ...restrict to own folder? (another policy)
-- 5. CORS: separate dashboard tab
-- 6. signed URLs: mind the expires_in math
-- 7. frontend: input, progress bar, retries
-- 8. compress images yourself (another lib)
~40 lines of policy + CORS + signed-URL code, plus 3 pages of docs you'll never want to read again.
After: DropUp
{/* React, Vue, or vanilla JS */}
<Upload bucket="uploads" />
One line. Policies, signed URLs, CORS, and image optimization handled with sensible defaults — overridable when you need control.

What you get

Boring infrastructure, done right, in your language.

$16–29/mo

Early pricing. Waitlist members lock in the founding rate when we launch.

Get early access

We're validating this before building. Join the list — tell us which backend you use.

You're on the list.

Thanks — we'll email you when early access opens.

No spam. One email when we launch, that's it.