{"adoption": {"forks": 17, "observed_at": "2026-08-28T04:04:42.894660+00:00", "stars": 1431}, "canonical_url": "https://ross.abutalabs.com/products/datatype", "card": {"archived": false, "artifact_type": "library", "description": "Datatype is a variable font that turns text into charts.", "domain": ["data-visualization", "web-development", "frontend", "developer-tools"], "enriched": true, "function": ["data-visualization", "charts", "ui-components"], "health_score": 85, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["franktisellano/datatype"], "name": "franktisellano/datatype", "platform": ["cross-platform", "windows", "python"], "pushed_at": "2026-05-02T01:06:01+00:00", "repo": "franktisellano/datatype", "stars": 1431, "tags": ["variable-font", "opentype", "sparklines", "bar-charts", "pie-charts", "typography", "no-javascript", "inline-charts", "font", "web-server", "macos", "linux"], "topics": [], "urls": [], "use_cases": ["embed inline charts in text without javascript", "render sparklines in a web page using only css and a font", "add bar charts to desktop documents via opentype ligatures", "show a percentage pie chart inline in a paragraph", "style chart thickness and spacing with variable font axes"], "what_it_is": "Datatype is a variable OpenType font that renders inline charts (bar charts, sparklines, pie charts) from simple text expressions using ligature substitution, requiring no JavaScript. It is built with Python tooling and ships as TTF/WOFF2 files for web and desktop use.", "when_to_avoid": ["you need interactive charts with tooltips or animations", "you need more than 20 data points per chart", "your target environment does not support OpenType ligatures or variable fonts"], "when_to_choose": ["you need lightweight inline data visualization with no JavaScript runtime", "you want charts that work in any app supporting OpenType ligatures", "you need charts that inherit text styling like weight and width"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/datatype", "repo": "franktisellano/datatype", "role": "main", "score": 64}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "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:42.894660+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:42.894660+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:37:07.118705+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b61a7bc5e524e28f9e9c8bd8c2d233464738ae371e8e9534dcd6ce17010a1c85", "fetched_at": "2026-08-28T04:04:42.894660+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franktisellano/datatype"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 80, "longevity": 14, "rhythm": 72}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 199, "days_push": 124, "days_rel": 191, "gap_med": 3, "n_releases_24m": 4}, "score": 64, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}