{"adoption": {"forks": 81, "observed_at": "2026-08-28T04:04:31.039811+00:00", "stars": 1364}, "canonical_url": "https://ross.abutalabs.com/products/hrconvert2", "card": {"archived": false, "artifact_type": "service", "description": "A self-hosted, respource aware file conversion server supporting 488 formats in 26 languages.", "domain": ["files", "self-hosted", "privacy", "media", "pdf", "developer-tools"], "enriched": true, "function": ["image-processing", "ocr", "pdf", "compression", "audio-processing", "video-processing", "self-hosted", "http-server"], "health_score": 100, "homepage": "https://github.com/zelon88/HRConvert2", "language": "PHP", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["zelon88/HRConvert2"], "name": "zelon88/HRConvert2", "platform": ["self-hosted", "php"], "pushed_at": "2026-08-25T06:23:00+00:00", "repo": "zelon88/HRConvert2", "stars": 1364, "tags": ["file-conversion", "file-converter", "format-conversion", "document-conversion", "ebook-conversion", "archiver", "antivirus-scanning", "multilingual", "no-tracking", "resource-aware", "linux", "web-server", "docker"], "topics": ["converter", "server", "php", "conversion", "image", "pdf-converter", "archiver", "extractor", "format", "multilingual", "ocr", "ocr-recognition", "file-sharing", "document-conversion", "file-converter", "antivirus", "ebook", "bootable-iso"], "urls": [], "use_cases": ["convert pdfs to word documents without uploading to third-party sites", "self-host a private online file converter", "extract and convert archive files on my own server", "run ocr on scanned documents locally", "convert images, audio, and video formats privately", "convert ebooks and comics between formats", "host a file conversion service for my team behind the firewall"], "what_it_is": "HRConvert2 is a self-hosted, resource-aware file conversion server written in PHP that supports 488 file formats across documents, images, audio, video, archives, ebooks, CAD, and more. It runs entirely on hardware you control with no accounts, cookies, database, or tracking, automatically deleting user files on a configurable timer.", "when_to_avoid": ["you need a client-side library to embed conversion in your own application", "you require a managed cloud service with SLAs and scaling", "you cannot run PHP or Docker on your infrastructure", "you need conversions of formats outside its supported 488-format list"], "when_to_choose": ["you need to convert sensitive files without sending them to online converters", "you want a privacy-focused converter with no accounts, cookies, or tracking", "you need broad format support (488 formats) including documents, media, archives, and CAD", "you want a lightweight converter that runs on a Raspberry Pi or low-resource server", "you want automatic cleanup of converted files with isolated per-user scratch space"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hrconvert2", "repo": "zelon88/HRConvert2", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "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:04:31.039811+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:31.039811+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:41:23.013361+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2fa4a074c2a232a29e9f66e403c7d6186ef8241eefb0ce561988daad53804204", "fetched_at": "2026-08-28T04:04:31.039811+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}, {"content_hash": "9336d30b70645ac2b3360986d31598e389210d509164407ae76df35e13038656", "fetched_at": "2026-08-29T11:58:46.275569+00:00", "kind": "homepage", "missing": false, "url": "https://github.com/zelon88/HRConvert2"}], "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": 3112, "days_push": 8, "days_rel": 8, "gap_med": 0.5, "n_releases_24m": 9}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}