uppy/examples/reactrouter
Prakash d9d44ce5e5
upgrade to express v5 (#6304)
exact copy of #6175 

- I will point the uppy deps upgrade pr to this PR's branch
- no other changes needed in this branch as #6175 was reviewed and all
the comments were resolved

this should be the order of merge : 

1. #6300
2. uppy deps upgrade ( yet to be raised ) 
3. merge this to main
4. merge biome changes #6244 

@mifi let me know if you think otherwise.

---------

Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2026-05-21 11:14:23 +08: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 upgrade to express v5 (#6304) 2026-05-21 11:14:23 +08:00
README.md @uppy/examples: Add new examples (#5942) 2025-09-10 21:46:19 +05:30
server.ts upgrade to express v5 (#6304) 2026-05-21 11:14:23 +08:00
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