Skip to content

ShuttleLab/image-shuttle

Repository files navigation

Image Shuttle

Image Shuttle

Free, Private & Browser-Based Image Studio

Compress, edit, resize, collage and design images directly in your browser — no uploads, no servers, no watermark.

Next.js React TypeScript Tailwind CSS

About

Image Shuttle is a privacy-first image studio — compressor, photo editor, collage maker and design studio in one that processes everything entirely within your browser using the Canvas API and WebAssembly. Unlike traditional online image tools that upload your files to remote servers, Image Shuttle keeps your images on your device — making it safe for personal photos, confidential designs, and sensitive business assets.

Key Features

  • 100% Private: All processing happens client-side via Canvas API and WebAssembly. No file uploads to external servers.
  • Four Formats: JPEG, PNG, WebP, and AVIF — compress within a format or convert between any of them.
  • WebAssembly PNG Quantization: PNG compression uses libimagequant-wasm for 50-80% size reduction while preserving transparency.
  • Batch Processing: Compress dozens of images in parallel using Web Workers (auto-tuned to your CPU core count).
  • Before/After Comparison: Real-time visual comparison slider to verify quality before downloading.
  • Photo Editor: FotoJet-style adjustments, 12 filters, crop with aspect presets, and exact-pixel Resize (type 512 → export 512×512).
  • Collage Maker: 20 programmatic grid layouts, adjustable spacing/radius/background, per-cell pan & zoom.
  • Design Studio: layered canvas with templates, gradients, and FREE custom sizes (64–4096 px).
  • Offline-Capable PWA: Install to your home screen and compress images without an internet connection.
  • Bilingual UI: Native English and Chinese interfaces with full SEO localization.

Tech Stack

Getting Started

Prerequisites

  • Node.js 18.17 or later
  • npm, yarn, or pnpm

Installation

  1. Clone the repository

    git clone https://github.com/ShuttleLab/image-shuttle.git
    cd image-shuttle
  2. Install dependencies

    npm install

    The postinstall script automatically copies the libimagequant WASM binary into public/wasm/.

  3. Start the development server

    npm run dev
  4. Open your browser Navigate to http://localhost:3000 to see the application running.

Available Scripts

Command Description
npm run dev Start the Next.js dev server
npm run build Compile and type-check for production
npm run lint Run ESLint
npm run preview Build with OpenNext and run locally via Wrangler
npm run deploy Build with OpenNext and deploy to Cloudflare Workers

Deployment

Image Shuttle is deployed on Cloudflare Workers using OpenNext.

npm run deploy

The Service Worker (public/sw.js) precaches the application shell, all Layer 4 tool pages, both locales, and the libimagequant WASM module — enabling full offline operation after the first visit.

Acknowledgments

PNG quantization is provided by @fe-daily/libimagequant-wasm, a WebAssembly port of libimagequant.

License

Licensed under the GNU Affero General Public License v3.0 — see LICENSE.

Free to use, modify, and self-host. If you run a modified version as a network service, you must open-source your modifications (AGPL §13). For commercial licensing without copyleft obligations, contact support@shuttlelab.org.

Relicensed from MIT to AGPL-3.0 in June 2026 (sole copyright holder). Versions published before this change remain available under MIT per their original grant.


Built by ShuttleLab

About

The free, private image studio— compress, convert, edit, resize, collage and design

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors