/uppload

๐Ÿ“ JavaScript image uploader and editor, no backend required

Primary LanguageTypeScriptMIT LicenseMIT

Uppload

Uppload is a better JavaScript image uploader. It's highly customizable with 30+ plugins, completely free and open-source, and can be used with any file uploading backend.

โ€œThis might just be the easiest way to let your users upload content to your site โ˜๏ธโœจโ€ โ€” Product Hunt

Status
Build GitHub Actions Travis CI Azure Pipelines
Dependencies Dependencies Dev dependencies Vulnerabilities FOSSA Status
Documentation Netlify Website status Uptime Type definitions Articles
Community Contributors Code maintainability Codacy grade Product Hunt #1 of the day
Package npm package version npm downloads GitHub Languages semantic-release

View Uppload demo and docs โ†’

โญ Features

Screenshot of Uppload home Screenshot of local service
Screenshot of Unsplash service Screenshot of filter effects
Screenshot of GIPHY service Screenshot of Instagram effects

๐Ÿ›  Getting started

First, install Uppload using your package manager:

npm install uppload

Then, add styles, import Uppload and an uploader along with your language of choice and initialize the class:

import { Uppload, en, xhrUploader } from "uppload";
import "uppload/dist/uppload.css";
import "uppload/dist/themes/light.css";

const profilePicture = new Uppload({
  value: "https://via.placeholder.com/150",
  bind: ".uppload-image",
  call: ".uppload-button",
  lang: en,
  uploader: xhrUploader({
    endpoint: "https://example.com/upload"
  });
});

Finally, choose which services (ways to select a file), effects (ways to manipulate a file), and uploaders (ways to send the file to a server) you want. Then, import these classes and use the Uppload.use() function to create your package:

import { Uppload, en, Local, Unsplash, Crop, Brightness } from "uppload";

profilePicture.use([
  new Local(), // Select file from computer
  new Unsplash("your API key"), // Search and import from Unsplash
  new Crop({ aspectRatio: 16 / 9 }), // Let users crop image to 16:9
  new Brightness(), // Let users apply image filters
]);

๐Ÿ’ป Usage Docs

View Uppload docs โ†’

โ„น๏ธ Support

If you need help with using Uppload, check out the Getting started guide and the documentation. If you found a bug or have a feature request, open an issue. If you want to contribute to Uppload, read our Contributing guide.

Your organization can also request a custom build or get professional support. Request a quote for free โ†’

๐Ÿ‘ฅ Contributors

Uppload is built by El Niรฑo, a digital development studio in Enschede, the Netherlands, that builds custom web and mobile apps, webstores, and more, backed by 14+ years of experience.

We'd like to thank these wonderful people and teams for contributing (emoji key):

El Niรฑo
El Niรฑo

๐Ÿ’ผ ๐Ÿ’ต ๐Ÿš‡ ๐Ÿ“†
Anand Chowdhary
Anand Chowdhary

๐Ÿ› ๐Ÿ’ป ๐Ÿ“–
Teun Lassche
Teun Lassche

๐Ÿ› ๐Ÿ’ป ๐Ÿ›ก๏ธ
Victor
Victor

๐Ÿ’ป ๐ŸŒ ๐Ÿ“–
Rick van Gemert
Rick van Gemert

๐Ÿ› ๐Ÿ’ป
tomtenvoorde
tomtenvoorde

๐ŸŽจ
Matt
Matt

๐Ÿ› ๐Ÿ’ป
Rob
Rob

๐Ÿ›
Mihir Chaturvedi
Mihir Chaturvedi

๐Ÿ“–
Kevin Marrec
Kevin Marrec

๐Ÿ“–
Jordan Kniest
Jordan Kniest

๐ŸŒ
Bram Borggreve
Bram Borggreve

๐Ÿ’ป ๐Ÿ“ฆ
Alex Imbrea
Alex Imbrea

๐Ÿ“–
Achim Krรคmer
Achim Krรคmer

๐ŸŒ
Nikhil Sahukar
Nikhil Sahukar

๐ŸŽจ
Rohit Bhatia
Rohit Bhatia

๐Ÿ›
Zeke Nierenberg
Zeke Nierenberg

๐Ÿ› ๐Ÿ’ป
Brian Teeman
Brian Teeman

๐ŸŒ
Dmitry Ivakhnenko
Dmitry Ivakhnenko

๐ŸŒ
Orion Lu
Orion Lu

๐ŸŒ
Nisar Hassan Naqvi
Nisar Hassan Naqvi

๐Ÿ“–
Daan
Daan

๐ŸŒ
SIGMA Technology
SIGMA Technology

๐Ÿ›
Claudio Eyzaguirre
Claudio Eyzaguirre

๐ŸŒ
Netlify
Netlify

๐Ÿš‡
Cristiano AP
Cristiano AP

๐ŸŒ
Richard
Richard

๐Ÿ› ๐Ÿ’ป
MaximusBaton
MaximusBaton

๐Ÿ›
Quinn (they/them)
Quinn (they/them)

๐Ÿ›

This project follows the all-contributors specification. Contributions of any kind welcome!

๐Ÿ“„ License