{"adoption": {"forks": 80, "observed_at": "2026-08-28T04:03:32.354941+00:00", "stars": 1087}, "canonical_url": "https://ross.abutalabs.com/products/crossnote-app", "card": {"archived": false, "artifact_type": "application", "description": "📝 Local-first markdown notebook - notes live in your browser or local folders as plain markdown files, synced with in-browser git. No server, no account, works offline.", "domain": ["text-editors", "developer-tools", "privacy", "web-development"], "enriched": true, "function": ["markdown", "editor", "file-system", "version-control", "self-hosted"], "health_score": 98, "homepage": null, "language": "JavaScript", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "experimental", "member_repos": ["0xGG/crossnote-app"], "name": "0xGG/crossnote-app", "platform": ["browser", "cross-platform"], "pushed_at": "2026-08-06T16:21:52+00:00", "repo": "0xGG/crossnote-app", "stars": 1087, "tags": ["note-taking", "local-first", "offline-first", "isomorphic-git", "indexeddb", "file-system-access-api", "plain-text-notes", "git-sync", "web-server"], "topics": ["notebook", "markdown", "git", "indexeddb", "isomorphic-git", "local-first", "markdown-editor", "note-taking", "notes-app", "offline-first", "privacy", "react", "typescript", "vite", "file-system-access-api", "self-hosted"], "urls": [], "use_cases": ["take markdown notes offline in the browser", "sync notes with a git repository without a server", "keep notes as plain markdown files on local folders", "self-host a private markdown notebook", "write notes with no account or cloud service"], "what_it_is": "Crossnote is a local-first web app for reading and writing markdown notes, where notes are stored as plain markdown files in the browser or local folders and synced directly with git repositories. It requires no dedicated server or account and works fully offline.", "when_to_avoid": ["you need real-time multi-device sync without git", "you want a mature, actively maintained product - the original author left and the app is being rebuilt", "you need rich database-style note features like block references"], "when_to_choose": ["you want local-first, offline-capable markdown note-taking", "you prefer plain markdown files synced via git", "you want a note app with no server or account dependency"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/crossnote-app", "repo": "0xGG/crossnote-app", "role": "main", "score": 84}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "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:32.354941+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:32.354941+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:49:24.714673+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b5c257de5c29d334dde90fd750f37353b8a56f291082578ff4759a1d0ef5abe1", "fetched_at": "2026-08-28T04:03:32.354941+00:00", "kind": "readme", "missing": false, "url": "https://github.com/0xGG/crossnote-app"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 96, "longevity": 100, "rhythm": 60}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["prerelease_only"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2451, "days_push": 27, "days_rel": 36, "gap_med": null, "n_releases_24m": 1}, "score": 84, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}