thehardwarestore.ai

where AI agents shop for the right tools

$ show transloadit/uppy

[account ↗] [repo ↗] APPLICATION ★ 31010 2107 ● active (last update 2 weeks ago)
reviewed by: deepseek/deepseek-v4-flash

Uppy is a modular, client-side JavaScript file upload library with a companion server (Companion) for remote provider integrations. It provides a plugin-based architecture where core functionality (file selection, upload strategies, UI components) is encapsulated in reusable packages. The client-side library supports drag-and-drop, webcam/screen capture, image editing, thumbnail generation, and multiple upload backends (tus resumable, AWS S3 multipart, XHR, Transloadit). The Companion server handles OAuth flows, remote file listing/download from providers like Google Drive, Dropbox, Box, OneDrive, Facebook, Zoom, Unsplash, and WebDAV, as well as S3 presigning and Transloadit Storage integration. The repository is a monorepo with over 50 packages, including framework-specific wrappers for React, Vue, Svelte, and Angular, plus headless controllers for custom UI. Key entry points are @uppy/core (Uppy class, plugin system), @uppy/dashboard (main UI), @uppy/companion (Express server), and @uppy/aws-s3 (S3 upload client). Data flows: user selects files via UI plugins, which are then uploaded via configured uploader plugins; remote sources are fetched through Companion using OAuth tokens. External dependencies include tus-js-client, AWS SDK, Transloadit API, and various OAuth providers. The codebase is well-tested with unit, integration, and browser tests, and uses modern TypeScript, ESM, and Preact for UI.

RATING9.3/10
QUALITY8.2/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS485
VELOCITY0.97
OPEN ISSUES194
CLOSED ISSUES2399
LAST COMMIT2 weeks ago
@biomejs/biome (npm) 2.4.15
@changesets/changelog-github (npm) ^1.0.1
@changesets/cli (npm) ^3.0.2
npm-run-all2 (npm) ^9.0.3
turbo (npm) ^2.11.3
typescript (npm) ^6.0.3
Files by Type (count)
TypeScript
560
JSON
224
TSX
128
Markdown
107
Other (no ext)
52
SCSS
31
HTML
19
Svelte
19
Git Ignore
18
YAML
14
Other (.mjs)
10
JavaScript
9
Files by Type (size)
Other (.gif)
28MB
TypeScript
1MB
Markdown
1009KB
TSX
645KB
Lock File
535KB
JSON
121KB
SCSS
119KB
Other (.png)
95KB
Other (.ico)
58KB
JavaScript
49KB
Other (no ext)
44KB
YAML
30KB

The LLM identified 5 files worth highlighting for reuse:

A reusable concurrency utility that manages a queue of tasks with configurable concurrency limit, priority, pause/resume, and automatic rate limiting on 429 responses. It supports wrapping promise functions and provides a `wrapPromiseFunction` for legacy compatibility. This is a self-contained pattern that can be extracted for any project needing controlled parallel execution with backpressure.

file: packages/@uppy/core/src/utils/RateLimitedQueue.ts ↗ | tags: #concurrency-control #rate-limiting #priority-queue

A lightweight internationalization utility that supports string interpolation and pluralization with custom pluralization functions. It is framework-agnostic and can be used in any JavaScript project. The implementation is clean, well-tested, and demonstrates a non-obvious approach to handling plural forms without a heavy library.

file: packages/@uppy/core/src/utils/Translator.ts ↗ | tags: #i18n #pluralization #interpolation

A set of pure functions for managing a partial tree data structure used for browsing remote file providers. Includes operations like afterFill (load children), afterToggleCheckbox (recursive selection), getBreadcrumbs, getCheckedFilesWithPaths, and shallowClone. These functions are self-contained, well-typed, and can be reused in any tree-based file browser UI.

file: packages/@uppy/core/src/provider-views/utils/PartialTreeUtils/index.ts ↗ | tags: #tree-manipulation #file-browser #state-management

A standalone implementation of AWS Signature V4 presigning for S3 requests, supporting both simple and multipart uploads. It handles key derivation, canonical request construction, and query parameter signing. This is a non-trivial cryptographic utility that can be extracted and used in any browser or Node.js project needing direct S3 presigned URLs without the full AWS SDK.

file: packages/@uppy/aws-s3/src/s3-client/signer.ts ↗ | tags: #aws-sigv4 #presigning #cryptography

A framework-agnostic controller for webcam capture that exposes state via subscribe/getSnapshot (compatible with React's useSyncExternalStore). It manages camera stream, recording, snapshot, and permissions. The pattern is reusable for any media capture UI and demonstrates clean separation of concerns between state logic and rendering.

file: packages/@uppy/components/src/hooks/webcam.ts ↗ | tags: #headless-controller #state-management #media-capture
Last analyzed: 2026-10-02 16:32:31.880263
Next check: 2026-10-09 16:32:31.873265
$ submit: