picfit
picfit is a free, open-source Go server for image manipulation, including resizing and thumbnail generation.
What picfit is
picfit is a free, open-source Go server for image manipulation, including resizing and thumbnail generation. It can also flip or rotate images, overlay another image, and apply blur. Supported formats are JPEG, PNG, GIF, BMP, and WebP, with dimension-based resizing and quality controls. The server proxies requests to a storage engine and is intended to sit behind an HTTP cache such as Varnish or a CDN. Storage options include a filesystem, Amazon S3, DigitalOcean S3, Google Cloud Storage, and HTTP-loading variants. Generated image keys can use an in-memory cache, Redis, Redis Cluster, or Redis replicas with round-robin reads. The project documents Ansible for provisioning, Sentry with Raven for error reporting, and a Go client library. Optional request signing uses an HMAC-SHA1 digest of the client key and query string. Uploads are disabled by default, and the README warns against exposing the upload endpoint without a security mechanism. Configuration can restrict output sizes, source dimensions, concurrent operations, and access to selected endpoints by IP. Installation instructions describe building with Go and Git or using Docker build integration.
Good
- Supports JPEG, PNG, GIF, BMP, and WebP.
- Offers resizing, thumbnails, rotation, overlays, and blur.
- Supports filesystem, cloud storage, and HTTP sources.
- Can limit image sizes and endpoint access by IP.
- Uploads are disabled by default.
Watch out
- Designed to run behind an HTTP cache.
- Requires a Go build or Docker build integration.
- Exposing uploads without security is unsafe.
Who it suits
picfit suits developers or operators who need a self-hosted Go service for image transformations and can configure storage and caching. Its documented backends and deployment options support varied infrastructure setups.
Verdict
picfit provides image transformations and multiple storage and cache options for self-hosted deployments. Operators should plan for the HTTP cache layer and keep the upload endpoint protected if enabling it.
The facts
Each one read from picfit's own pages, with the date it was checked.
What it does
- Access controls
- The README describes restricting generated image sizes and maximum source dimensions, and restricting selected endpoints by IP address.checked 10 Oct 2026
- Client and production use
- The README lists a Go client library and names Ulule, a European crowdfunding platform, as using picfit in production.checked 10 Oct 2026
- Deployment
- The README recommends running picfit behind a CDN for larger applications or Varnish for smaller ones.checked 10 Oct 2026
- Deployment model
- The server acts as a proxy to a storage engine and is intended to run behind an HTTP cache system.checked 4 Oct 2026
- HTTP methods
- The service provides display, redirect, and get methods; display stores generated images asynchronously while redirect and get generate synchronously.checked 10 Oct 2026
- Image formats
- The README lists JPEG, PNG, GIF, BMP, and WebP as supported formats.checked 10 Oct 2026
- Image operations
- Supported operations include resize, thumbnail, flip, rotate, overlay with a flat image, and blur effect.checked 10 Oct 2026
- Installation
- The README documents building a binary with Go and git and provides a Docker build integration; it says Debian packages will be provided when the project is stable.checked 10 Oct 2026
- Integrations
- The README documents Varnish or a CDN for caching, Ansible for provisioning, Sentry with Raven for error reporting, and a Go client library.checked 4 Oct 2026
- Key-value integrations
- Key-value options include in-memory cache, Redis, Redis Cluster, and Redis with replica round-robin reads.checked 10 Oct 2026
- Key-value stores
- Generated image keys can use an in-memory cache, Redis, Redis Cluster, or Redis replicas with round-robin reads.checked 4 Oct 2026
- Observability
- Logging to stderr and stdout is enabled by default, and Sentry error reporting can be configured.checked 10 Oct 2026
- Operational limits
- The server can limit source image dimensions and the number of concurrent resize, thumbnail, and fit operations.checked 4 Oct 2026
- Proxy
- It acts as a proxy to a storage engine and is intended to run behind an HTTP cache such as Varnish.checked 10 Oct 2026
- Purpose
- picfit is a reusable Go server for manipulating images, including resizing and thumbnail generation.checked 10 Oct 2026
- Request security
- Optional request signing uses an HMAC-SHA1 digest of the client key and query string when a secret_key is configured.checked 10 Oct 2026
- Storage backends
- Storage options include a filesystem, Amazon S3, DigitalOcean S3, Google Cloud Storage, and HTTP-loading variants.checked 4 Oct 2026
- Storage integrations
- Storage backends listed include filesystem, Amazon S3, DigitalOcean S3, Google Cloud Storage, and HTTP-based filesystem or S3 sources.checked 10 Oct 2026
- Support and contributions
- The README invites users to send patches or improvements and points to the project's GitHub issues for its roadmap.checked 4 Oct 2026
- Upload safety
- Uploads are disabled by default, and the README warns that exposing the upload endpoint without a security mechanism is unsafe.checked 10 Oct 2026
- Upload security
- Image upload is disabled by default, and the README warns that exposing the upload endpoint without a security mechanism is unsafe.checked 4 Oct 2026
- Use in production
- The README lists Ulule, described there as a European crowdfunding platform, as using picfit in production.checked 4 Oct 2026
The company
- Founded
- 2014checked 28 Sep 2026
Alternatives to picfit
- 1
imgproxy
Free planOpen sourceAndroidiOSWebAPI8.6Free plan - 2

Topaz Gigapixel
AndroidiOSWebAPI7.5From $149 a year - 3
Converseen
Free planOpen sourceLinuxmacOSWindows7.3Free plan - 4

Fotosizer
Free planWindows7.3$13.88 one-time - 5

PixelMod
Free planWebmacOSWindows7.2From $7 a month - 6
BatchPhoto
macOSWindows7.1$29.95 one-time
