thumbor
An HTTP server that crops, resizes and filters images on demand via URL parameters.
- Stars
- 10.5k
- Forks
- 861
- Licence
- MIT
- Language
- Python
- Last update
- 4 days ago
- Type
- App
What it is
thumbor is an image service you run yourself. You request an image through a URL that describes the size and edits you want, and it returns the transformed picture on the fly. It can detect faces and features to pick a sensible crop, and it supports many storage backends such as local disk and AWS S3. Websites use it to serve correctly sized images without storing every variant.
- Generate a 300x200 smart-cropped thumbnail by changing the URL path
- Serve resized product or article images from an S3 bucket
- Run thumbor in Docker to provide image transformations to a website
- Add custom filters or loaders through its extension points
Great for
- Web teams that need many image sizes generated on demand
- Sites serving user uploads in multiple thumbnail sizes
- Developers who want image resizing hosted on their own infrastructure
- Projects that store images in S3 or similar storage
Not ideal for
- People who only need to resize a few images once (a desktop image editor is simpler)
- Teams that do not want to run and secure a server themselves
- Anyone needing a fully managed hosted service, since the README describes a self-hosted server
How to get it
- 1
Install with a package manager
You'll need: Python (version not specified in the README excerpt) · pip, or Docker if using the container image
Install with pip
pip install thumborRun the Docker image
docker run -p 8888:8888 ghcr.io/thumbor/thumbor:latest - 2
Run it
- Install thumbor with pip or start the Docker image
- Run the thumbor command to start the server
- Open http://localhost:8888/unsafe/ followed by an image URL in your browser
- If something fails, run thumbor-doctor to diagnose the setup
- 3
Get the most out of it
- Use a thumbor.conf file to configure storage and behavior
- Use smart cropping by including the smart keyword in the URL path
- Explore awesome-thumbor for filters, storages and loaders
- Use thumbor-doctor with -c thumbor.conf when troubleshooting
Downloads
Strengths
- Transforms are described in the URL, so one original image can yield many variants
- Supports many storage options and common image formats per the README
- Open-source under the MIT license with an active project and a large star count
Trade-offs
- You must install, host and maintain the server yourself
- Smart cropping relies on detection features whose quality and setup the README does not detail
- Some optional features depend on extra installs such as OpenCV
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| thumbor (this) | 10.5k | App | intermediate | 4 days ago | Web teams that need many image sizes generated on demand |
| SDWebImage | 25.6k | Library | intermediate | 7 months ago | iOS or macOS app developers who need to show remote images in lists or grids |
| blind_watermark | 14.8k | Library | intermediate | 8 months ago | Python developers who want to add a hidden ownership or tracing mark to images |
| traefik | 65.4k | App | intermediate | 4 days ago | Teams running many microservices in Docker, Swarm, or Kubernetes |
| full-stack-fastapi-template | 46.1k | Framework | intermediate | 4 days ago | Developers starting a new full-stack web app with a Python backend and React frontend |
| FlareSolverr | 16.1k | App | intermediate | 13 days ago | Developers whose scripts are blocked by Cloudflare challenges on pages they are allowed to access |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.