{"adoption": {"forks": 63, "observed_at": "2026-08-28T04:03:44.450869+00:00", "stars": 1140}, "canonical_url": "https://ross.abutalabs.com/products/craftplan", "card": {"archived": false, "artifact_type": "application", "description": "Self-hosted software for managing artisanal D2C micro-businesses", "domain": ["erp", "self-hosted", "e-commerce", "developer-tools", "web-development"], "enriched": true, "function": ["self-hosted", "workflow-automation", "analytics", "data-visualization", "email", "csv", "search-engine", "api-framework", "auth", "authorization"], "health_score": 99, "homepage": "https://puemos.github.io/craftplan/", "language": "Elixir", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["puemos/craftplan"], "name": "puemos/craftplan", "platform": ["self-hosted", "windows"], "pushed_at": "2026-08-17T18:57:27+00:00", "repo": "puemos/craftplan", "stars": 1140, "tags": ["erp", "d2c", "artisanal", "manufacturing", "inventory", "production-planning", "bom", "crm", "phoenix-liveview", "elixir", "ash-framework", "micro-business", "inventory-management", "web-server", "docker", "linux", "macos"], "topics": ["artisanal", "d2c", "erp", "self-hosted"], "urls": [], "use_cases": ["manage inventory and raw materials for a small craft business", "track bills of materials and product costs", "plan production batches and schedules", "process customer orders and generate invoices", "manage suppliers and purchase orders", "self-host an ERP for a micro-business", "track allergens and nutritional facts for food products", "forecast demand and plan reorders"], "what_it_is": "Craftplan is a self-hosted, open-source ERP application for small-scale artisanal manufacturers and craft D2C businesses. Built with Elixir, Phoenix LiveView, and the Ash Framework, it combines catalog management, versioned BOMs, inventory, production batching, purchasing, orders, invoicing, and CRM in one platform.", "when_to_avoid": ["you need a full-scale ERP for large enterprises with complex accounting or multi-entity support", "you cannot self-host or manage Docker deployments", "you need built-in e-commerce storefronts or payment processing", "you require extensive third-party integrations beyond email and CSV"], "when_to_choose": ["you run a small artisanal or D2C manufacturing business and want one self-hosted tool instead of multiple SaaS subscriptions", "you need lot traceability, BOM versioning, and production batching", "you want programmatic access via JSON:API or GraphQL and calendar feeds", "you prefer open-source software with data ownership"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/craftplan", "repo": "puemos/craftplan", "role": "main", "score": 87}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "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:44.450869+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:44.450869+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:35:43.886417+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70af525237aa132b7a02786bacc88ed59b9d6a191dd1a3d9dbe42f131ed16b5", "fetched_at": "2026-08-28T04:03:44.450869+00:00", "kind": "readme", "missing": false, "url": "https://github.com/puemos/craftplan"}, {"content_hash": "244c619808a547fa49fa74117935d6ddb315b7a08d67ed9362f29d590f75dfad", "fetched_at": "2026-08-29T12:40:41.394586+00:00", "kind": "homepage", "missing": false, "url": "https://puemos.github.io/craftplan/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 44, "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": 617, "days_push": 16, "days_rel": 16, "gap_med": 0.0, "n_releases_24m": 15}, "score": 87, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}