{"adoption": {"forks": 174, "observed_at": "2026-08-28T04:08:32.338929+00:00", "stars": 4012}, "canonical_url": "https://ross.abutalabs.com/products/imagor", "card": {"archived": false, "artifact_type": "service", "description": "Fast, secure image processing server and Go library, using libvips", "domain": ["image-processing", "web-development", "self-hosted", "media"], "enriched": true, "function": ["image-processing", "http-server", "web-framework"], "health_score": 100, "homepage": "https://imagor.net", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["cshum/imagor"], "name": "cshum/imagor", "platform": ["self-hosted", "go", "cross-platform"], "pushed_at": "2026-08-26T05:48:16+00:00", "repo": "cshum/imagor", "stars": 4012, "tags": ["libvips", "thumbor-compatible", "image-resizing", "on-the-fly-thumbnails", "watermarking", "webp", "avif", "image-server", "docker", "linux"], "topics": ["docker", "jpeg", "png", "libvips", "resize-images", "crop-image", "watermark", "gif", "webp", "avif", "golang", "jxl", "image-processing", "image", "jpeg-xl", "image-server"], "urls": [], "use_cases": ["resize and crop images on the fly via URL", "generate web-optimized thumbnails for a website", "convert images to webp or avif automatically", "add watermarks to images served over HTTP", "replace thumbor with a faster drop-in image server", "serve animated gif crops and transformations", "self-host an image processing service behind a CDN"], "what_it_is": "imagor is a fast, secure image processing server and Go library built on libvips, exposing on-the-fly image transformations via a thumbor-compatible URL syntax. It ships with first-class Docker support and streaming-based parallel processing for high-throughput thumbnail generation.", "when_to_avoid": ["you only need simple one-off local image edits in a GUI", "your stack requires a managed SaaS image API", "you need heavy video processing beyond thumbnails (see imagorvideo instead)"], "when_to_choose": ["you need a high-performance, self-hosted image transformation server", "you want a thumbor-compatible drop-in replacement with better speed", "you need Docker-first deployment with S3/storage loader support", "you want a Go library for libvips-based image processing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/imagor", "repo": "cshum/imagor", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.338929+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:24:00.842975+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e971981c76a44da56a06af71ace3a0f3a9b65eb633abe985e1d40e5910348757", "fetched_at": "2026-08-28T04:08:32.338929+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cshum/imagor"}, {"content_hash": "ac0ef2ff264670d2c021effa633041188bbcc6ed30419e99f94d2fd194006477", "fetched_at": "2026-08-29T09:16:56.480273+00:00", "kind": "homepage", "missing": false, "url": "https://imagor.net"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.483792+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.485738+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net"}, {"content_hash": "db9417efe266c61bad60a0ada5eabfa292ff754e56288fa8e90482c3a0fb1003", "fetched_at": "2026-08-29T09:16:56.487508+00:00", "kind": "site_page", "missing": false, "url": "https://docs.studio.imagor.net/"}, {"content_hash": "64d2b025f8b1b7f8bfb90fbd5dee4c25d2f30c56ab538cb45e7f8c179dac0c74", "fetched_at": "2026-08-29T09:16:56.489087+00:00", "kind": "site_page", "missing": false, "url": "https://docs.imagor.net/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1936, "days_push": 7, "days_rel": 8, "gap_med": 5.5, "n_releases_24m": 47}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}