{"adoption": {"forks": 438, "observed_at": "2026-08-28T04:08:36.291647+00:00", "stars": 4151}, "canonical_url": "https://ross.abutalabs.com/products/circle", "card": {"archived": false, "artifact_type": "application", "description": "UI - Project management interface inspired by Linear. Built with Next.js and shadcn/ui, this application allows tracking of issues, projects and teams.", "domain": ["web-development", "frontend", "developer-tools"], "enriched": true, "function": ["ui-components", "frontend-framework", "state-management", "routing"], "health_score": 78, "homepage": "https://circle.lndev.me", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["ln-dev7/circle"], "name": "ln-dev7/circle", "platform": ["cross-platform"], "pushed_at": "2026-08-10T09:42:04+00:00", "repo": "ln-dev7/circle", "stars": 4151, "tags": ["project-management", "linear-clone", "nextjs", "shadcn-ui", "tailwindcss", "issue-tracking", "template", "open-source-ui", "web-server", "nodejs"], "topics": ["linear", "shadcn-ui", "template"], "urls": [], "use_cases": ["self-host a Linear-style issue tracker", "track issues, projects, and teams with a modern UI", "use as a Next.js + shadcn/ui template for building dashboards", "demo or learn how to build a project management interface", "customize an open-source alternative to Linear"], "what_it_is": "Circle is an open-source project management web application inspired by Linear, built with Next.js, TypeScript, shadcn/ui, and Tailwind CSS. It provides a modern, responsive interface for tracking issues, projects, teams, and cycles.", "when_to_avoid": ["you need a full production project management suite with backend integrations out of the box", "you prefer a managed SaaS without self-hosting", "you need enterprise features like SSO or advanced permissions"], "when_to_choose": ["you want a free, self-hosted Linear-like interface", "you need a polished Next.js/shadcn/ui starter template", "you want to customize your own issue tracking UI"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/circle", "repo": "ln-dev7/circle", "role": "main", "score": 64}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "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:08:36.291647+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:36.291647+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:22:54.073854+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "13a447e5d35b9f8707149aa82b39dbfea38b08780e09d16893a6be0da26d3de0", "fetched_at": "2026-08-28T04:08:36.291647+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ln-dev7/circle"}, {"content_hash": "aceada06fb6367b42a2aeb518bf2561ac6ed5c03b3f464f1ed0fd95855ae43c7", "fetched_at": "2026-08-29T09:14:07.420402+00:00", "kind": "homepage", "missing": false, "url": "https://circle.lndev.me"}, {"content_hash": "ad4ace7a5f5a1057ee7e842d9d749b5fba0b01ea9e11b1bd5cfb4e390e15d8f2", "fetched_at": "2026-08-29T09:14:07.429586+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-772"}, {"content_hash": "150aeaf75b5ff721c498835a3d0de2d020c1621b2498ea5d5c647dcdad53bd0a", "fetched_at": "2026-08-29T09:14:07.431320+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-928"}, {"content_hash": "4f1536dfffca29bbe2d2b2296ec49fb713ae484e42f1a7f97f02181bbfbc3673", "fetched_at": "2026-08-29T09:14:07.433091+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-756"}, {"content_hash": "6c7b6c3e7f306a553363e1d1203a3366c9a1622cf95c8d6be3ff3ecbc223bafe", "fetched_at": "2026-08-29T09:14:07.434943+00:00", "kind": "site_page", "missing": false, "url": "https://circle.lndev.me/lndev-ui/issue/LNUI-743"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 39, "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": 546, "days_push": 23, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 64, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}