{"adoption": {"forks": 193, "observed_at": "2026-08-28T04:06:57.128990+00:00", "stars": 2506}, "canonical_url": "https://ross.abutalabs.com/products/donetick", "card": {"archived": false, "artifact_type": "application", "description": "Donetick an open-source, user-friendly app for managing tasks and chores, featuring customizable options to help you and others stay organized", "domain": ["developer-tools", "self-hosted", "web-development"], "enriched": true, "function": ["self-hosted", "scheduling", "workflow-automation"], "health_score": 99, "homepage": "https://donetick.com", "language": "Go", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["donetick/donetick"], "name": "donetick/donetick", "platform": ["self-hosted", "cross-platform"], "pushed_at": "2026-08-19T04:27:34+00:00", "repo": "donetick/donetick", "stars": 2506, "tags": ["task-manager", "chore-tracker", "todo-list", "family-sharing", "natural-language-input", "recurring-tasks", "go-backend", "react-frontend", "docker", "web-server"], "topics": ["chore", "docker", "go", "golang", "react", "task-manager", "tasks", "todolist", "selfhosted"], "urls": [], "use_cases": ["manage household chores with my family", "self-hosted todo app with recurring tasks", "rotate chore assignments between roommates", "create tasks from natural language like 'take trash out every Monday'", "track recurring home maintenance like changing water filters", "share task lists with a group and assign tasks", "track time spent on tasks and chores"], "what_it_is": "Donetick is an open-source, self-hosted web application for managing tasks and chores collaboratively with family or groups. It offers flexible recurring scheduling, natural language task creation, assignee rotation, subtasks, labels, priorities, and integrations like NFC tags and photo attachments.", "when_to_avoid": ["you need a simple personal todo list without collaboration features", "you want a hosted SaaS solution without self-hosting", "you need enterprise project management with Gantt charts or sprints"], "when_to_choose": ["you want a self-hosted alternative to commercial chore/task apps", "you need collaborative task management with assignee rotation", "you want flexible recurring scheduling including completion-date-based recurrence", "you prefer Docker-deployable Go/React apps"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/donetick", "repo": "donetick/donetick", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "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:06:57.128990+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:57.128990+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:26:42.499624+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "102c26eeb8ac76310ed1f52c4ade0fb99f4d0ff12170396ff82147e1efa68ac9", "fetched_at": "2026-08-28T04:06:57.128990+00:00", "kind": "readme", "missing": false, "url": "https://github.com/donetick/donetick"}, {"content_hash": "ad809a8c29fc541d93240cb868a5baf870acae3da4c734db4937bb451b349ee6", "fetched_at": "2026-08-29T10:08:51.237301+00:00", "kind": "homepage", "missing": false, "url": "https://donetick.com"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 56, "rhythm": 98}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 794, "days_push": 14, "days_rel": 15, "gap_med": 6.5, "n_releases_24m": 43}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}