{"adoption": {"forks": 33, "observed_at": "2026-08-28T04:03:58.268986+00:00", "stars": 1201}, "canonical_url": "https://ross.abutalabs.com/products/satteri", "card": {"archived": false, "artifact_type": "library", "description": "High-performance Markdown and MDX processing for the JavaScript ecosystem", "domain": ["web-development", "parsers", "documentation", "frontend"], "enriched": true, "function": ["parser", "serialization", "plugin-system", "developer-tools"], "health_score": 100, "homepage": "https://satteri.bruits.org", "language": "Rust", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["bruits/satteri"], "name": "bruits/satteri", "platform": ["rust", "wasm", "cross-platform", "browser", "windows"], "pushed_at": "2026-08-24T23:55:32+00:00", "repo": "bruits/satteri", "stars": 1201, "tags": ["markdown", "mdx", "commonmark", "gfm", "napi", "remark-alternative", "ast", "html-rendering", "nodejs", "macos", "linux"], "topics": ["markdown", "mdx", "commonmark", "gfm", "parser"], "urls": [], "use_cases": ["convert markdown to html in node.js fast", "parse mdx documents with plugins", "replace remark/rehype with a faster rust parser", "render markdown in the browser via wasm", "transform markdown ast with typescript plugins", "extract frontmatter from markdown files", "process gfm tables and math in markdown"], "what_it_is": "Sätteri is a high-performance Markdown and MDX processing pipeline with the parser and AST implemented in Rust and a typed plugin layer exposed to JavaScript via napi-rs. It supports GFM, frontmatter, math, and directives, and also ships a WASM/WASI build for browsers and edge runtimes.", "when_to_avoid": ["you rely on existing remark or rehype plugins, which are not API-compatible", "you need a drop-in unified replacement", "you work outside the JavaScript or Rust ecosystems"], "when_to_choose": ["you need faster markdown/mdx parsing than unified/remark in a JavaScript project", "you want a remark-like plugin model with typed visitors but don't need existing remark/rehype plugins", "you need markdown rendering in browsers or edge runtimes via WASM"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/satteri", "repo": "bruits/satteri", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "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:03:58.268986+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:58.268986+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:20:39.965806+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "556a6f44ffa71e224c0f0cafda6e8a6e7c359473818c280b8c2da55b759bf850", "fetched_at": "2026-08-28T04:03:58.268986+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bruits/satteri"}, {"content_hash": "80728b671b6b4430352ddb252140c188012e16c7d2d8009fd47de6e6fca8638e", "fetched_at": "2026-08-29T12:27:47.809986+00:00", "kind": "homepage", "missing": false, "url": "https://satteri.bruits.org"}, {"content_hash": "0bf64197699e1316feead87d2c0ca696639a08bab693d8cf65c30d89c9a36ade", "fetched_at": "2026-08-29T12:27:47.812405+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs"}, {"content_hash": "245168a55e254d48d0ede328b27c0032ecb228d30c9235f09e37f48afc7b2a28", "fetched_at": "2026-08-29T12:27:47.814390+00:00", "kind": "site_page", "missing": false, "url": "https://satteri.bruits.org/docs/quick-start"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 11, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 164, "days_push": 9, "days_rel": 14, "gap_med": 0.0, "n_releases_24m": 75}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}