UploadKit
SDK@uploadkitdev/react

UploadKanban

A Trello/Linear CI/CD-style pipeline board where files move through Queued → Uploading → Complete columns.

Files move through visible pipeline stages rendered as columns. Drop files into the Queued column, watch them animate into Uploading, and land in Complete. Failed files get their own Error column with retry buttons.

Design inspiration: Trello, Linear issues, Vercel deployment pipeline.

motion is an optional peerDependency. Without it, cards appear in the correct column instantly. pnpm add motion for smooth layoutId cross-column transitions.

Queued

0

Uploading

0

Complete

0

Trello · Linear — kanban pipeline

Basic usage

import { UploadKanban } from '@uploadkitdev/react';

export default function Page() {
  return (
    <UploadKanban
      route="documentUploader"
      maxFiles={10}
      onUploadComplete={(results) => {
        console.log('Pipeline complete:', results.length);
      }}
    />
  );
}

Props

PropTypeDefaultDescription
routestringRequired. Route name from your file router.
acceptstring[]Accepted MIME types.
maxSizenumberMaximum file size in bytes.
maxFilesnumberMaximum number of files.
metadataRecord<string, unknown>Metadata forwarded to the server.
onUploadComplete(results: UploadResult[]) => voidCalled after all files upload.
onUploadError(error: Error) => voidCalled on failure.
classNamestringAdditional CSS class(es).

Columns

ColumnAccentContent
Queued--uk-borderFiles waiting to upload
Uploading--uk-primaryActive uploads with progress bar
Complete--uk-successSuccessfully uploaded files
Error--uk-errorFailed files with retry button

The Error column only appears when there are failed uploads.

Accessibility

  • Queued column and container accept drag-drop and click
  • Cards have role="listitem" semantics
  • Respects prefers-reduced-motion

On this page