{"adoption": {"forks": 57, "observed_at": "2026-09-03T02:15:05.006985+00:00", "stars": 1162}, "canonical_url": "https://ross.abutalabs.com/products/episteme", "card": {"archived": false, "artifact_type": "application", "description": "A multi-platform document and e-book reader.", "domain": ["files", "pdf", "developer-tools", "cross-platform", "privacy"], "enriched": true, "function": ["pdf-viewer", "file-system", "internationalization"], "health_score": 100, "homepage": null, "language": "Kotlin", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["Aryan-Raj3112/episteme"], "name": "Aryan-Raj3112/episteme", "platform": ["windows", "cross-platform"], "pushed_at": "2026-09-02T04:01:52+00:00", "repo": "Aryan-Raj3112/episteme", "stars": 1162, "tags": ["ebook-reader", "kotlin-multiplatform", "jetpack-compose", "offline-first", "epub", "pdf-annotation", "comics", "foss", "android", "linux", "desktop"], "topics": ["foss", "jetpack-compose", "kotlin", "opensource", "pdf", "reader", "android", "ebook", "epub", "linux", "windows"], "urls": [], "use_cases": ["read epub books on android", "open pdf files with annotations", "read comics on desktop", "offline ebook reader without tracking", "read mobi and azw3 files", "customize fonts and typography while reading", "manage a local ebook library"], "what_it_is": "Episteme Reader is an offline-first, privacy-focused document and e-book reader built with Kotlin Multiplatform and Compose, available for Android and desktop. It supports many formats including PDF, EPUB, MOBI, DOCX, and comic archives, with annotations, typography customization, and library management.", "when_to_avoid": ["you need cloud sync of books and progress across devices", "you need DRM-protected ebook support like Kindle or Adobe DRM", "you need collaborative annotation or sharing features"], "when_to_choose": ["you want a free, open-source, offline-first reader across Android and desktop", "you need broad format support including PDF, EPUB, MOBI, DOCX, and comic archives", "you care about privacy and want no proprietary online services", "you want deep typography, theme, and layout customization"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/episteme", "repo": "Aryan-Raj3112/episteme", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-03T02:15:05.006985+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:31:59.632796+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5df75402ad927e18c8b3449a5b61e9bdc9eb4db0eb1ec68f438482607f176ed9", "fetched_at": "2026-09-03T02:15:05.006985+00:00", "kind": "readme", "missing": false, "url": "https://github.com/Aryan-Raj3112/episteme"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 13, "rhythm": 100}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 190, "days_push": 0, "days_rel": 1, "gap_med": 5.0, "n_releases_24m": 25}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 3, "stale_scrape": false}}