uppy/examples/reactrouter
Merlijn Vos e6e1466ac8
Fix useless security warnings (#6132)
We are not vulnerable but we keep getting warning about it so let's
updrade deps regardless
2026-01-12 11:16:15 +01:00
..
app @uppy/examples: Add new examples (#5942) 2025-09-10 21:46:19 +05:30
public @uppy/examples: Add new examples (#5942) 2025-09-10 21:46:19 +05:30
.gitignore @uppy/examples: Add new examples (#5942) 2025-09-10 21:46:19 +05:30
package.json Fix useless security warnings (#6132) 2026-01-12 11:16:15 +01:00
README.md @uppy/examples: Add new examples (#5942) 2025-09-10 21:46:19 +05:30
server.ts @uppy/examples: Add new examples (#5942) 2025-09-10 21:46:19 +05:30
tsconfig.json @uppy/examples: Add new examples (#5942) 2025-09-10 21:46:19 +05:30
vite.config.ts @uppy/examples: Add new examples (#5942) 2025-09-10 21:46:19 +05:30

React Router v7 + Uppy Upload Examples

Complete showcase of Uppy Dashboard with TUS (resumable), XHR (standard), and Transloadit (with processing) uploads in React Router v7 framework mode.

Quick Start

npm install
npm run dev

Visit http://localhost:3000 to explore three upload methods:

  • TUS uploads: Resumable, perfect for large files
  • XHR uploads: Standard HTTP, ideal for regular files
  • Transloadit uploads: With powerful file processing capabilities

What You'll Learn

This example demonstrates three upload approaches with Uppy in React Router v7:

  1. TUS server setup with Express middleware for resumable uploads
  2. XHR uploads using React Router's native resource routes
  3. Transloadit uploads with signature generation and file processing

Transloadit Setup

To use Transloadit uploads, you need to:

  1. Sign up at transloadit.com
  2. Get your credentials from your account dashboard
  3. Create a template for your processing needs
  4. Set environment variables:
export TRANSLOADIT_KEY="your_key_here"
export TRANSLOADIT_SECRET="your_secret_here"
export TRANSLOADIT_TEMPLATE_ID="your_template_id_here"

Or create a .env file:

TRANSLOADIT_KEY=your_key_here
TRANSLOADIT_SECRET=your_secret_here
TRANSLOADIT_TEMPLATE_ID=your_template_id_here