{"adoption": {"forks": 311, "observed_at": "2026-08-28T04:07:30.800246+00:00", "stars": 2934}, "canonical_url": "https://ross.abutalabs.com/products/papermerge", "card": {"archived": false, "artifact_type": "application", "description": "Open Source Document Management System for Digital Archives (Scanned Documents)", "domain": ["pdf", "files", "self-hosted", "developer-tools"], "enriched": true, "function": ["ocr", "search-engine", "pdf", "self-hosted"], "health_score": 66, "homepage": "https://papermerge.com", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["ciur/papermerge"], "name": "ciur/papermerge", "platform": ["self-hosted", "python"], "pushed_at": "2025-11-23T11:52:05+00:00", "repo": "ciur/papermerge", "stars": 2934, "tags": ["document-management", "digital-archives", "scanned-documents", "django", "full-text-search", "dms", "web-server", "docker"], "topics": ["scanned-documents", "ocr", "django", "dms", "scan", "pdf", "paperless", "document-management", "archives"], "urls": [], "use_cases": ["manage a digital archive of scanned documents", "OCR scanned PDFs and make them searchable", "organize scanned bills and receipts with tags and folders", "full text search across scanned documents", "long term storage of digitized paperwork", "self-host a paperless document management system"], "what_it_is": "Papermerge is an open source document management system (DMS) designed for scanned documents and digital archives. It performs OCR on PDF, TIFF, JPEG, and PNG files, indexes the extracted text, and provides a web-based, desktop-like file browser with folders, tags, versioning, and full text search.", "when_to_avoid": ["you mainly manage born-digital office files rather than scans", "you need a desktop offline application instead of a web server deployment", "you want a fully automated pipeline like paperless-ngx with heavy consumption automation", "you cannot run a web server or Docker environment"], "when_to_choose": ["you need a self-hosted DMS focused on scanned documents", "you want OCR plus full text search out of the box", "you prefer a web UI with folders, tags, and document versioning", "you need an OpenAPI REST API to integrate with other tools"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/papermerge", "repo": "ciur/papermerge", "role": "main", "score": 59}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "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:07:30.800246+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:30.800246+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:47:38.690629+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "14761750888a831d5e0234e0e0538ec2e0845fd7353a45f448fa71172db90025", "fetched_at": "2026-08-28T04:07:30.800246+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ciur/papermerge"}, {"content_hash": "488e332cbede0f254afe3ddd21cd6b33db8fb4855cedf0b9fa53aa1f35abc0fa", "fetched_at": "2026-08-29T09:48:35.708256+00:00", "kind": "homepage", "missing": false, "url": "https://papermerge.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 53, "longevity": 100, "rhythm": 43}, "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": 2431, "days_push": 283, "days_rel": 380, "gap_med": 25, "n_releases_24m": 6}, "score": 59, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}