{"adoption": {"forks": 765, "observed_at": "2026-08-28T04:10:20.850110+00:00", "stars": 8393}, "canonical_url": "https://ross.abutalabs.com/products/flowgramai", "card": {"archived": false, "artifact_type": "framework", "description": "FlowGram is an extensible workflow development framework with built-in canvas, form, variable, and materials that helps developers build AI workflow platforms faster and simpler.", "domain": ["web-development", "frontend", "artificial-intelligence", "developer-tools"], "enriched": true, "function": ["workflow-automation", "frontend-framework", "ui-components", "form-handling", "state-management", "data-visualization", "agent-framework"], "health_score": 99, "homepage": "https://flowgram.ai", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["bytedance/flowgram.ai"], "name": "bytedance/flowgram.ai", "platform": ["browser"], "pushed_at": "2026-08-20T04:16:09+00:00", "repo": "bytedance/flowgram.ai", "stars": 8393, "tags": ["node-based-ui", "flow-canvas", "visual-workflow-editor", "low-code", "no-code", "react", "diagram-editor", "variable-scope", "coze", "bytedance", "ai-agents", "automation", "nodejs", "web-server", "typescript"], "topics": ["flow", "flowchart", "graph", "javascript", "node-based-ui", "react", "typescript", "typescript-library", "workflow", "ai", "diagram", "visualization", "automation", "data-flow", "integration-framework", "no-code", "workflow-automation", "coze"], "urls": [], "use_cases": ["build a custom AI workflow platform with a visual node editor", "create a node-based flow canvas in React", "add drag-and-drop workflow orchestration to my app", "build a low-code automation builder with forms and variables", "embed an LLM pipeline editor in a web app", "alternative to ReactFlow for workflow-specific use cases", "visualize and edit data-flow graphs in the browser"], "what_it_is": "FlowGram is a TypeScript/React workflow development framework and toolkit from ByteDance for building AI workflow platforms. It provides a visual flow canvas (free and fixed layouts), node configuration forms, a variable scope engine, and ready-made materials like LLM, Condition, and Code Editor nodes.", "when_to_avoid": ["you only need simple static diagram rendering or flowchart display", "you want a ready-to-use end-user workflow platform rather than a framework to build one", "your stack is not React/TypeScript", "you need a backend workflow execution engine only, without a visual editor"], "when_to_choose": ["you need a full workflow editor with canvas, forms, and variable management out of the box", "you are building an AI agent or LLM orchestration platform like Coze", "you want workflow-specific features (variable scope chains, node forms, validation) that generic graph libraries lack", "you prefer a React/TypeScript stack with MIT licensing"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/flowgramai", "repo": "bytedance/flowgram.ai", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "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:10:20.850110+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:20.850110+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:27:19.721070+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f99fae28fe6cdd88c42b082b16bfdc2a8c2b8cd2927fe6578cc47c4a411ec9e0", "fetched_at": "2026-08-28T04:10:20.850110+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bytedance/flowgram.ai"}, {"content_hash": "f28d9cbf5a6cce28db707740909cbcfba0cf183974e7e71b81e2183431061598", "fetched_at": "2026-08-29T08:27:39.672893+00:00", "kind": "homepage", "missing": false, "url": "https://flowgram.ai"}, {"content_hash": "ad36b0cffbc4ee5f745dcd53a130ae26c5228e9f77d102ff7b69ab474ab63eba", "fetched_at": "2026-08-29T08:27:39.682076+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction.html"}, {"content_hash": "44b554f913a62815065bd30675b637443165b93e69b4e83e97c10f64afce4d1d", "fetched_at": "2026-08-29T08:27:39.684662+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/auto-docs/index.html"}, {"content_hash": "b4272a8c23dddbdbe333771eb7d367a4c4879cdcf0e5b345a23f7c55d2e2da55", "fetched_at": "2026-08-29T08:27:39.686368+00:00", "kind": "site_page", "missing": false, "url": "https://flowgram.ai/guide/getting-started/introduction"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 40, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 562, "days_push": 13, "days_rel": 13, "gap_med": 2.0, "n_releases_24m": 97}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}