{"adoption": {"forks": 185, "observed_at": "2026-08-28T04:04:39.100508+00:00", "stars": 1412}, "canonical_url": "https://ross.abutalabs.com/products/split-pro", "card": {"archived": false, "artifact_type": "application", "description": "Open source alternative to Splitwise", "domain": ["fintech", "self-hosted", "web-development", "developer-tools"], "enriched": true, "function": ["self-hosted", "web-framework", "auth", "file-upload", "internationalization", "webhook"], "health_score": 99, "homepage": "https://splitpro.app", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["oss-apps/split-pro"], "name": "oss-apps/split-pro", "platform": ["self-hosted"], "pushed_at": "2026-08-16T17:25:34+00:00", "repo": "oss-apps/split-pro", "stars": 1412, "tags": ["expense-splitting", "splitwise-alternative", "pwa", "group-expenses", "debt-simplification", "push-notifications", "nextjs", "trpc", "docker", "web-server", "nodejs", "typescript"], "topics": ["expense-manager", "expense-tracker", "split", "tailwindcss", "trpc", "splitwise", "hacktoberfest"], "urls": [], "use_cases": ["split expenses with friends and roommates", "self-host a Splitwise alternative", "track group balances and settle debts", "split bills by percentage, shares, or exact amounts", "import friends and groups from Splitwise", "manage shared expenses in multiple currencies", "track receipts for shared expenses"], "what_it_is": "SplitPro is a self-hosted, open source web application for sharing and splitting expenses with friends and groups, designed as a Splitwise alternative. It supports multiple split methods, currencies, receipt uploads, PWA installation, push notifications, and Splitwise import.", "when_to_avoid": ["you want a hosted service with zero setup and no server maintenance", "you need username/password login - only email magic link, OAuth, and OIDC are supported", "you need full Splitwise expense import - only friends and groups import is supported", "you need native mobile apps rather than a PWA"], "when_to_choose": ["you want full control and privacy over your expense data via self-hosting", "you need advanced split methods like percentage, shares, or exact amounts", "you want a free, open source Splitwise replacement with PWA and push notifications", "you need multi-currency expense tracking with debt simplification"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/split-pro", "repo": "oss-apps/split-pro", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.app"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.app"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.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:04:39.100508+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.app"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.app"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.app"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:39.100508+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.app"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.app"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.app"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:38:21.419232+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "59c6728e627336b907c19d03f4fb674cb5ddf0f9a4cabda7c8ec443299ddce58", "fetched_at": "2026-08-28T04:04:39.100508+00:00", "kind": "readme", "missing": false, "url": "https://github.com/oss-apps/split-pro"}, {"content_hash": "9e1d7789c5873c53020a75763c0354422e2fe1ea1fbc9cbfd28a1db79e87acc2", "fetched_at": "2026-08-29T11:51:30.067083+00:00", "kind": "homepage", "missing": false, "url": "https://splitpro.app"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 65, "rhythm": 95}, "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": 923, "days_push": 17, "days_rel": 32, "gap_med": 6, "n_releases_24m": 48}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}