elninotech/uppload

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

TypeScript

1,879

1,698 commits

updated Nov 3, 2025

See the code

README

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
BuildGitHub Actions Travis CI Azure Pipelines
DependenciesDependencies Dev dependencies Vulnerabilities FOSSA Status
DocumentationNetlify Website status Uptime Type definitions Articles
CommunityContributors Code maintainability Codacy grade Product Hunt #1 of the day
Packagenpm package version npm downloads GitHub Languages semantic-release

View Uppload demo and docs β†’

⭐ Features

Screenshot of Uppload homeScreenshot of local service
Screenshot of Unsplash serviceScreenshot of filter effects
Screenshot of GIPHY serviceScreenshot 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):

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

πŸ“„ License

file-upload
hacktoberfest
image
javascript
plugin
uploader
widget

elninotech/uppload

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

TypeScript

1,879

1,698 commits

updated Nov 3, 2025

See the code

README

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
BuildGitHub Actions Travis CI Azure Pipelines
DependenciesDependencies Dev dependencies Vulnerabilities FOSSA Status
DocumentationNetlify Website status Uptime Type definitions Articles
CommunityContributors Code maintainability Codacy grade Product Hunt #1 of the day
Packagenpm package version npm downloads GitHub Languages semantic-release

View Uppload demo and docs β†’

⭐ Features

Screenshot of Uppload homeScreenshot of local service
Screenshot of Unsplash serviceScreenshot of filter effects
Screenshot of GIPHY serviceScreenshot 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):

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

πŸ“„ License

file-upload
hacktoberfest
image
javascript
plugin
uploader
widget

Project health

Overall

4.0/10

Maintained

0/10

Code review

6/10
OpenSSF Scorecard

Latest release

3.2.1 Β· Jun 13, 2020

Releases this year

0

Significant stargazers

Ian VanSchooten

282 followers Β· starred Nov 2021

Andrew Lisowski

431 followers Β· starred Feb 2020

Alan Hamlett

5,137 followers Β· starred Dec 2020

Liad Yosef

288 followers Β· starred Apr 2020