{"adoption": {"forks": 19, "observed_at": "2026-08-28T04:04:09.317754+00:00", "stars": 1256}, "canonical_url": "https://ross.abutalabs.com/products/roblillack-spot", "card": {"archived": false, "artifact_type": "framework", "description": "React-like desktop GUI toolkit for Go", "domain": ["desktop-applications", "cross-platform", "developer-tools"], "enriched": true, "function": ["gui", "ui-components", "state-management", "desktop-framework"], "health_score": 27, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["roblillack/spot"], "name": "roblillack/spot", "platform": ["windows", "go", "cross-platform"], "pushed_at": "2024-12-19T08:19:21+00:00", "repo": "roblillack/spot", "stars": 1256, "tags": ["reactive-ui", "native-widgets", "react-like", "cocoa", "fltk", "declarative-ui", "hooks", "component-based", "macos", "linux", "desktop"], "topics": ["cocoa", "fltk", "golang", "gui"], "urls": [], "use_cases": ["build a desktop gui app in go", "reactive ui framework for golang", "native widgets cross-platform desktop toolkit", "declarative component-based gui without code generation", "usestate hooks for go desktop apps", "cocoa gui toolkit for macos in go"], "what_it_is": "Spot is a React-like reactive GUI toolkit for Go that lets developers build desktop applications using declarative components and hooks such as UseState. It renders to native widgets via platform backends built on Cocoa (macOS) and FLTK (Linux/Windows), producing self-contained binaries.", "when_to_avoid": ["you need pixel-perfect custom drawing or a fully custom-drawn UI rather than native widgets", "you require mobile (iOS/Android) or web targets - Spot is desktop-only", "you need a very large ecosystem of third-party components, themes, or tooling that more mature GUI frameworks provide", "your project depends on advanced widget features not yet covered by Spot's control list"], "when_to_choose": ["you want to write desktop GUIs in pure Go with no code generation or extra tooling", "you need native look-and-feel widgets on macOS (Cocoa) and Linux/Windows (FLTK)", "you prefer a React-style reactive programming model with immutable component trees and hooks", "you want a single self-contained binary as the final application artifact"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/roblillack-spot", "repo": "roblillack/spot", "role": "main", "score": 15}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "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:09.317754+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.317754+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:07:17.435762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4f3f171b99707a7fe66e1d557050d0b21119fc3af8531560d8c40da5f1521316", "fetched_at": "2026-08-28T04:04:09.317754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/roblillack/spot"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 60, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 842, "days_push": 622, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 15, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}