thumbor is a free, open source photo & video editors project written in Python and released under MIT. It has 10,529 GitHub stars, 861 forks and 11 open issues, and was last pushed 16 hours ago. On this registry it ranks #19 of 85 tracked projects in Photo & Video Editors, with 5 head-to-head comparisons available.

What is thumbor?

thumbor is an MIT-licensed, Python-based on-demand image service from globo.com that crops, resizes, filters and optimises photos through URL path parameters, built for teams that need to generate thumbnails at scale without editing images by hand.

What it is

thumbor is an HTTP server that turns image manipulation into a URL. Rather than pre-generating and storing a fixed set of thumbnail sizes, an operator points a request at thumbor with the desired dimensions and crop strategy in the path — the README's example, http:///300x200/smart/thumbor.readthedocs.io/en/latest/_images/logo-thumbor.png, returns the thumbor logo at 300x200 — and the service fetches, transforms and returns the image. It is written in Python, distributed under the MIT licence, and sits in the Python packaging ecosystem, installable from PyPI, from the Debian and Ubuntu archives, or as a container.

The concrete problem it solves is the tedium and poor quality of automatic cropping. As the README puts it, cropping photos automatically "can be a frustrating experience with severed heads involved"; thumbor addresses this by applying AI-based detection algorithms to decide what part of an image matters before it cuts. That replaces the common alternative of hand-tuned crop coordinates or a stored library of pre-rendered variants, and it moves the work to request time so that any number of distinct images can be produced from one source by varying the path.

Key capabilities

  • On-demand transformation through URL path parameters, so size, crop mode and filters are expressed in the request rather than in stored derivatives.
  • Smart cropping driven by AI detection algorithms, including face and feature detection for glasses and interesting points.
  • Broad format support out of the box, covering JPEG, PNG, GIF, WebP and AVIF.
  • Caching for speed, paired with pluggable storage backends including local storage, AWS S3, Rackspace and Ceph.
  • Filters and optimisation, with watermarking among the transformations the project's topic list advertises.
  • A highly extensible architecture: filters, storages, engines and loaders can be added, and the awesome-thumbor list curates community extensions, Docker images and language integrations.
  • Operational tooling including an official image at ghcr.io/thumbor/thumbor and the thumbor-doctor diagnostic command, which accepts -c thumbor.conf and --nocolor.

Who uses it and how

  • Organisations serving image-heavy sites: the README states thumbor is trusted by hundreds of companies worldwide.
  • Teams integrating thumbnailing into an existing application, since the README describes integration with many programming languages and frameworks.
  • Operators who prefer container deployment, running docker run -p 8888:8888 ghcr.io/thumbor/thumbor:latest and reaching the service on port 8888.
  • Sites with large or distributed image libraries that need S3, Rackspace or Ceph-backed storage rather than a local disk.
  • Contributors and newcomers: the project carries the hacktoberfest topic and runs thumbor-bootcamp as a learning and contribution programme.

Getting started

Install with pip install thumbor (or pip install thumbor[all] for every dependency), with sudo apt install thumbor on Debian and Ubuntu, or run the official container with docker run -p 8888:8888 ghcr.io/thumbor/thumbor:latest. Start the server with the thumbor command and request an image at http://localhost:8888/unsafe/.

How it compares

The facts provided name no comparable tools and no list of paid products that thumbor replaces, so it stands alone in this registry on that evidence. Any comparison against commercial image-resizing services would have to rest on the two properties the facts do establish: an MIT licence and a self-hosted HTTP server that the operator runs themselves.

When to use it — and when not to

Choose thumbor if you are willing to operate an HTTP service plus a storage and caching backend — local disk, S3, Rackspace or Ceph — and want crop and resize logic expressed in URLs. It is a poor fit for anyone looking for a managed or hosted offering, since the README documents only self-hosted installation paths, and for teams unwilling to maintain a Python service and tune a thumbor.conf. The README also asserts speed and AI quality without quantifying either, so benchmark it against your own images before committing.

project readme (upstream, from github) — read inline

Join thumbor-bootcamp for a learning and contribution experience with ❤️ and 🤗 from the thumbor team

Crop, resize, transform and much more, all on-demand and AI Powered


thumbor is trusted by hundreds of companies worldwide

                   
and many more!

thumbor is a smart imaging service that enables on-demand cropping, resizing, applying filters and optimizing images.

Cropping photos automatically can be a frustrating experience with severed heads involved. thumbor uses AI for smart detection.

thumbor is an HTTP server and you can create as many different images as you want just by varying path parameters:

http://<thumbor-server>/300x200/smart/thumbor.readthedocs.io/en/latest/_images/logo-thumbor.png

You should see an image of the thumbor logo in 300x200.

Learn more about all you can do in thumbor's documentation.

⚙️ Installation

Decide which installation option you want to use.

Option 1: pip

# thumbor with main dependencies only
pip install thumbor

# thumbor with OpenCV dependency
pip install thumbor[opencv]

# thumbor with all dependencies
pip install thumbor[all]

Option 2: Binary

Available as a package in the official repositories of distributions such as Debian and Ubuntu.

sudo apt update
sudo apt install thumbor

Option 3: Docker

An official Docker image is available on GitHub Container Registry:

docker run -p 8888:8888 ghcr.io/thumbor/thumbor:latest

For more information about the Docker image and available tags, visit the GitHub Container Registry.

For more ways, please check out Installation.

Development

Sync the development environment, install the pre-commit hooks, and run the test suite:

make setup
make pre-commit  # only needed once per clone
make compile_ext
make test

make setup uses an existing uv installation or installs the pinned version into .uv-venv when uv is not available. The development environment is stored in .venv. Use make run to start thumbor from this environment.

The lockfile is managed with uv lock and should be committed when dependencies change.

Run

Running an installed copy is as easy as:

thumbor

From a development checkout, use make run instead.

After this, you can reach it on http://localhost:8888/unsafe/https://raw.githubusercontent.com/thumbor/thumbor/master/example.jpg

Troubles?

If you experience any troubles, try running:

thumbor-doctor

From a development checkout, run the same commands through uv run --locked thumbor-doctor.

If you have a thumbor.conf file, you can use that to help thumbor-doctor:

thumbor-doctor -c thumbor.conf

If you still need help, please raise an issue. Remember to send your thumbor-doctor output in the issue:

thumbor-doctor --nocolor -c thumbor.conf

🎯 Features

  • supports all common images formats out of the box
  • intelligent cropping and resizing
  • blazing fast using caching
  • supports many storages (local storage, AWS S3, Rackspace, Ceph, ...)
  • AI-powered cropping based on face and feature detection (glasses, interesting points, ...)
  • integrated with many programming languages and frameworks and many more...
  • highly extensible

🌟 Awesome Goodies

awesome-thumbor is a curated list of all things thumbor. There you can find filters, storages, engines, loaders, docker images, extensions in your favorite language and framework, and much more.

All of it with a clear indication of each project's quality. Have fun!

👍 Contribute

thumbor is an open-source project with many contributors. Join them contributing code or contributing documentation.

If you use thumbor, please take 1 minute and answer this survey? Only 2 questions!

Join the chat at https://gitter.im/thumbor/thumbor

👀 Demo

You can see thumbor in action at http://thumborize.me/

Frequently asked questions

Is thumbor free to use?

thumbor is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does thumbor do?

thumbor is an open-source photo thumbnail service by globo.com

What is thumbor written in?

thumbor is primarily written in Python. Its source is publicly available at https://github.com/thumbor/thumbor, and it has 10,529 GitHub stars.