react-file-browser
Storage-agnostic React file manager published on npm. One component drives S3, Cloudflare R2, Supabase Storage, or any backend through a small adapter, with resumable multipart uploads.
the problem
Most apps that store user files end up rebuilding the same file manager, and most off-the-shelf options are tied to one storage provider or ship their own server.
→ the approach
- Shipped UI and client logic only, with zero server code. Storage access goes through a host-provided adapter.
- Gated every control on adapter capabilities, so an adapter without rename simply has no rename button and there are no config flags to keep in sync.
- Built a session-scoped transfer manager with multipart uploads, a floating progress widget, and a resume prompt after a hard refresh.
what shipped
- Published as @harryy/react-file-browser with a live demo
- Adapters for S3, Cloudflare R2, Supabase Storage, and in-memory
- Grid and list views, search, sort, drag-and-drop move, multi-select, keyboard shortcuts, preview, and bulk download
- Upload policies by MIME type, size, quota, or custom validator