{"adoption": {"forks": 92, "observed_at": "2026-08-28T04:05:09.207244+00:00", "stars": 1596}, "canonical_url": "https://ross.abutalabs.com/products/rxviz", "card": {"archived": false, "artifact_type": "application", "description": "Rx Visualizer - Animated playground for Rx Observables", "domain": ["developer-tools", "web-development", "data-visualization"], "enriched": true, "function": ["data-visualization", "animation", "developer-tools"], "health_score": 20, "homepage": "https://rx-viz.vercel.app", "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["moroshko/rxviz"], "name": "moroshko/rxviz", "platform": ["browser"], "pushed_at": "2024-09-06T02:53:24+00:00", "repo": "moroshko/rxviz", "stars": 1596, "tags": ["rxjs", "reactive-programming", "observables", "marble-diagram", "playground", "react", "svg", "streams", "learning-tool"], "topics": ["rx", "observable", "rxjs", "reactive", "stream", "visualizer", "visualization", "svg", "animation", "react"], "urls": [], "use_cases": ["visualize rxjs observables as animated marble diagrams", "watch how an observable emits values over time", "debug or understand higher-order observables visually", "generate svg observable timelines for presentations", "learn reactive programming by experimenting with rxjs operators", "share runnable observable examples with others"], "what_it_is": "RxViz is an animated web playground that visualizes Rx Observables: you enter JavaScript whose last expression evaluates to an Observable, and it renders an animated SVG timeline of the values the Observable emits over time. It works as a hosted web app, can be run locally, and is also published on npm as React components for visualizing Observables.", "when_to_avoid": ["you need actively maintained tooling - the project is explicitly looking for maintainers", "you want production monitoring or observability of live streams inside your application, since this is a playground, not an APM tool", "you need to visualize reactive streams in languages other than JavaScript, since it evaluates JS code and subscribes to Observable-like values"], "when_to_choose": ["you want a zero-install, browser-based way to see an Observable's emission timeline animated", "you need copyable SVG marble diagrams of Observables for slides or documentation", "you are teaching or learning RxJS and want intuition for intervals, errors, and higher-order Observables"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rxviz", "repo": "moroshko/rxviz", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "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:05:09.207244+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:09.207244+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:54:04.376575+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1e21c30a5740d30052d29c00c72e2531aa954f8498ba9058487b81e59711f2e1", "fetched_at": "2026-08-28T04:05:09.207244+00:00", "kind": "readme", "missing": false, "url": "https://github.com/moroshko/rxviz"}, {"content_hash": "2319a022cfaa13b4aa280d847777451f6a668b0f1d191d7e56de912f3ef3be56", "fetched_at": "2026-08-29T11:25:09.053244+00:00", "kind": "homepage", "missing": false, "url": "https://rx-viz.vercel.app"}, {"content_hash": "3abd2a8a0b3b2d7d8214fdeed9b7a395a8f3296ae90c214831b124095708881f", "fetched_at": "2026-08-29T11:25:09.062346+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/rxviz"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3374, "days_push": 726, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}