Skip to content

Introduction

Uploadista is a modern upload and file processing platform for TypeScript. It provides a comprehensive solution for handling file uploads and building powerful file processing pipelines with a modular, type-safe architecture.

Upload Engine

  • Resumable uploads - Chunked uploads with automatic resume capability
  • Parallel uploads - Handle multiple files simultaneously
  • Progress tracking - Real-time progress updates via WebSocket and events
  • Framework agnostic - Works with Hono, Express, Fastify, and more

Flow Engine

  • DAG-based processing - Build directed acyclic graph file processing pipelines
  • Modular nodes - Image optimization, AI processing, storage, and many more to come…
  • Type-safe - Full TypeScript support for composable error handling
  • Visual flow builder - Create complex workflows with an intuitive UI (Uploadista Cloud)

First-class support for multiple storage backends:

  • AWS S3 / Cloudflare R2
  • Azure Blob Storage
  • Google Cloud Storage
  • Local filesystem

Ready-to-use client libraries for popular frameworks:

  • React - Hooks like useUpload, useMultiUpload, useFlow and <Flow> compound component
  • Vue 3 - Composables for Vue applications
  • React Native / Expo - Mobile upload support
  • Vanilla JavaScript - Browser-native client
  • Pluggable KV stores - Redis, IORedis, Cloudflare KV/DO, Memory, Filesystem
  • Data stores - Flexible storage backend configuration
  • Event system - WebSocket, Durable Objects, Redis pub/sub
  • Edge ready - Deploy to Cloudflare Workers, AWS Lambda, or traditional servers

Uploadista is built on a layered, modular architecture:

┌─────────────────────────────────────────────────────────────┐
│ Client Applications │
│ (React / Vue / React Native / Browser) │
└────────────────────────┬────────────────────────────────────┘
│ HTTP/WebSocket
┌─────────────────────────────────────────────────────────────┐
│ API Layer │
│ (Hono / Express / Fastify + Auth) │
└────────────────────────┬────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ Upload & Flow Processing │
│ (Chunked uploads, Flow Engine, DAG processing) │
└────┬────────────┬──────────────┬───────────────┬───────────┘
│ │ │ │
↓ ↓ ↓ ↓
┌──────────┐ ┌─────────┐ ┌──────────┐ ┌──────────────┐
│ Storage │ │KV Store │ │ Events │ │ Flow Nodes │
│ │ │ │ │ │ │ │
│ • S3 │ │• Redis │ │• WS │ │• Images │
│ • Azure │ │• Memory │ │• Emitter │ │• AI │
│ • GCS │ │• CF KV │ │• Pub/Sub │ │• Utilities │
└──────────┘ └─────────┘ └──────────┘ └──────────────┘
  • Upload Engine - Core business logic for managing file uploads and lifecycle
  • Flow Engine - DAG-based processor for building file processing pipelines
  • Data Stores - Pluggable storage backends for file persistence
  • KV Stores - State management for upload metadata and flow jobs
  • Event System - Real-time progress updates and notifications
  • Adapters - Framework-specific HTTP routing integration

Uploadista is perfect for applications that need:

  • User-generated content platforms - Handle profile pictures, media uploads, documents
  • Media processing workflows - Resize images, optimize videos, generate thumbnails
  • Document management systems - Store, process, and organize files
  • E-commerce platforms - Product images with automatic optimization
  • AI/ML pipelines - Process uploads through AI models and services
  • Multi-tenant applications - Isolated storage and processing per tenant
  • Type-safe - Full TypeScript support prevents runtime errors
  • Modular - Use only what you need, extend what you want
  • Production-ready - Built with Effect-TS for robust error handling
  • Developer-friendly - Great DX with comprehensive documentation
  • Framework-agnostic - Works with your existing stack
  • Scalable - From prototype to production, handles millions of uploads

Ready to get started? Head over to the Installation guide to set up Uploadista in your project.