React-first scope
Uplofile focuses on UI state management, lifecycle orchestration, composable primitives, and predictable component behavior.
Composable file upload components for React, accessible, and easy to integrate.
Actively maintained and constantly being improved.
Philosophy
Upload complexity mostly lives in infrastructure. Uplofile is built around a simple idea: uploads are infrastructure concerns disguised as UI problems.
Instead of coupling upload mechanics to a specific engine, protocol, or backend, Uplofile gives you composable UI and lifecycle building blocks while your application defines what uploading means.
Uplofile focuses on UI state management, lifecycle orchestration, composable primitives, and predictable component behavior.
Transport strategy, backend choice, retries, and resumable protocol logic are infrastructure decisions, not component decisions.
Build keyboard and screen-reader friendly upload experiences without sacrificing composition or design-system control.
Uplofile deliberately does not dictate how files are transported, which backend you use, which protocol you adopt, or how retries and resumable logic work. You bring your own upload logic.
Minimal uploader with a clean file list.
No files selected
Headless primitives — Root, Trigger, Preview, Dropzone, HiddenInput — so you can compose any UI while Uplofile handles state and actions.
Keyboard and screen-reader friendly. Works without drag-and-drop.
Unstyled by default. Use your own CSS, Tailwind, or design system; render-props give full control over markup, classes, and interactions.
Learn more in the uplofile docs.