{"adoption": {"forks": 66, "observed_at": "2026-08-28T04:07:24.704395+00:00", "stars": 2839}, "canonical_url": "https://ross.abutalabs.com/products/unovis", "card": {"archived": false, "artifact_type": "library", "description": "Modular data visualization framework for React, Angular, Svelte, Vue, and vanilla TypeScript or JavaScript", "domain": ["data-visualization", "frontend", "web-development"], "enriched": true, "function": ["data-visualization", "charts"], "health_score": 100, "homepage": "https://unovis.dev", "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["f5/unovis"], "name": "f5/unovis", "platform": ["cross-platform"], "pushed_at": "2026-08-26T20:26:07+00:00", "repo": "f5/unovis", "stars": 2839, "tags": ["charts", "maps", "network-graphs", "react", "angular", "svelte", "vue", "solid", "tree-shakable", "css-variables", "web-server", "typescript"], "topics": ["data-visualization", "charts", "maps", "graphs", "angular", "react", "svelte", "vue", "solid"], "urls": [], "use_cases": ["add line and bar charts to a React app", "render network graphs in Angular", "build interactive maps with TopoJSON in Svelte", "create stacked area charts in Vue", "visualize data in vanilla TypeScript without a UI framework", "keep bundle size small with tree-shakable chart components", "customize chart styling with CSS variables"], "what_it_is": "Unovis is a modular, framework-independent data visualization library providing charts, maps, and network graphs. It ships a core TypeScript package plus wrappers for React, Angular, Svelte, Vue, and Solid, with tree-shakable imports and CSS-variable-based styling.", "when_to_avoid": ["you need a huge variety of statistical plot types like matplotlib or plotly", "you are on an end-of-life Angular version", "you need server-side static chart image generation", "you prefer a batteries-included dashboard framework"], "when_to_choose": ["you need charts, maps, or network graphs across multiple frontend frameworks", "bundle size matters and you want individual component imports", "you want a TypeScript-first visualization library with active maintenance", "you need consistent styling via CSS variables"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/unovis", "repo": "f5/unovis", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "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:24.704395+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:24.704395+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:37:18.663654+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "978cef2fca6faf8a589ef7074c4ee79be86d1b9cf7af9894730fea3354f9fa49", "fetched_at": "2026-08-28T04:07:24.704395+00:00", "kind": "readme", "missing": false, "url": "https://github.com/f5/unovis"}, {"content_hash": "3306d371b1ce373cbb2b43dfad8556de025ec9d1dd8e5cfbe6c461f9ffa37ab3", "fetched_at": "2026-08-29T09:53:14.494194+00:00", "kind": "homepage", "missing": false, "url": "https://unovis.dev"}, {"content_hash": "bd84aacfe2cd362d3d031edd9f199e940400fa6ac2828ebfdc43363d39a04518", "fetched_at": "2026-08-29T09:53:14.505236+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/intro"}, {"content_hash": "efd1ca63b0a93c5bba8784af78f174aa0020eca23bb09169f5d9060fdc06446c", "fetched_at": "2026-08-29T09:53:14.509355+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/docs/quick-start"}, {"content_hash": "26f2ddad2733e1b7a1d530086e94582d84e5ea2e18f4377948af5e955354e4a0", "fetched_at": "2026-08-29T09:53:14.503387+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases/1.7-angular"}, {"content_hash": "d7f1253d9fa18fb4a2ddd3d8fc0394462674a7f73c26d22ca9f38737d83ef5d7", "fetched_at": "2026-08-29T09:53:14.506943+00:00", "kind": "site_page", "missing": false, "url": "https://unovis.dev/releases"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 99, "rhythm": 83}, "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": 1399, "days_push": 7, "days_rel": 35, "gap_med": 69, "n_releases_24m": 10}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}