Skip to content
harryy.me

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
built withReactTypeScriptnpmS3Cloudflare R2