{"adoption": {"forks": 550, "observed_at": "2026-08-28T04:04:22.753768+00:00", "stars": 1326}, "canonical_url": "https://ross.abutalabs.com/products/grandnode", "card": {"archived": false, "artifact_type": "application", "description": "E-commerce platform built with ASP.NET Core using MongoDB for NoSQL storage", "domain": ["e-commerce", "web-development", "cms", "self-hosted"], "enriched": true, "function": ["web-framework", "api-framework", "templating", "search-engine", "plugin-system"], "health_score": 92, "homepage": "https://grandnode.com/", "language": "C#", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["grandnode/grandnode2", "grandnode/grandnode"], "name": "GrandNode", "platform": ["cross-platform", "self-hosted", "cloud"], "pushed_at": "2026-08-26T16:01:56+00:00", "repo": "grandnode/grandnode2", "stars": 1326, "tags": ["ecommerce-platform", "shopping-cart", "multi-vendor", "multi-tenant", "headless", "mongodb", "dotnet-core", "b2b", "b2c", "marketplace", "storefront", "rest-api", "odata", "docker", "web-server"], "topics": ["asp-net-core", "ecommerce", "shopping-cart", "mongodb", "nosql", "csharp", "ecommerce-platform", "ecommerce-application", "shop", "aspnetcore", "netcore", "dotnet", "dotnet-core", "multitenant", "asp-net-core-mvc", "aspnet-core", "online-store"], "urls": [{"kind": "homepage", "url": "https://grandnode.com/"}, {"kind": "site_page", "url": "https://grandnode.com/pricing"}, {"kind": "site_page", "url": "https://grandnode.com/benefits"}, {"kind": "site_page", "url": "https://grandnode.com/about-us"}, {"kind": "site_page", "url": "https://grandnode.com/designed-for-developers"}], "use_cases": ["build an online store with .net and mongodb", "self-hosted open source ecommerce platform", "create a multi-vendor marketplace", "run a b2b shop with customer-specific pricing", "headless commerce with REST API", "multi-store international ecommerce", "sell bookings and rental products online"], "what_it_is": "GrandNode is an open-source, headless, multi-tenant e-commerce platform built on ASP.NET Core and MongoDB (with support for AWS DocumentDB and Azure CosmosDB), featuring a Vue.js storefront. This legacy repository is no longer maintained; active development continues in the GrandNode 2.0 repository (grandnode/grandnode2).", "when_to_avoid": ["you need the actively maintained version - use grandnode/grandnode2 instead of this legacy repo", "your team prefers PHP, Node.js, or Python e-commerce ecosystems", "you want a hosted SaaS solution with no server management", "you require a traditional SQL/relational database backend"], "when_to_choose": ["you want a free, self-hosted e-commerce platform on the .NET stack", "you need MongoDB or CosmosDB as the datastore instead of SQL", "you need multi-store, multi-vendor, or B2B features out of the box", "you want a headless platform with an OData REST API for integrations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/grandnode/grandnode2", "repo": "grandnode/grandnode2", "role": "main", "score": 79}, {"path": "/repos/grandnode/grandnode", "repo": "grandnode/grandnode", "role": "mirror", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "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:22.753768+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:22.753768+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:12:52.561727+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3328dbf7e1eee77512e8adac50a6c96f2c21af5894281997423faa81bb33fcc9", "fetched_at": "2026-08-28T04:04:22.753768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/grandnode/grandnode2"}, {"content_hash": "d81eb8c0e319ba752f843f1218c3667be3012d931a4c0bcaa2d07430ce38d5f2", "fetched_at": "2026-08-29T10:52:27.936506+00:00", "kind": "homepage", "missing": false, "url": "https://grandnode.com/"}, {"content_hash": "ceceb2a843f4a305d93cbb6198a02d1dfdbb9ec1c3e3da8d398c50b683f60106", "fetched_at": "2026-08-29T10:52:27.951370+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/about-us"}, {"content_hash": "7d9e4b51167749e3e95133896bb8384e406aab5971c3b476c2788c199b22907e", "fetched_at": "2026-08-29T10:52:27.949925+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/pricing"}, {"content_hash": "23fceaee7f55fea1bbe11b2665744e516fc4a9d1014372068f08be7aa04d3b50", "fetched_at": "2026-08-29T10:52:27.946353+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/benefits"}, {"content_hash": "9a5ebad6c550f43a6890f6f50ef085a90d96943d1c513b6d84b9525c3c931358", "fetched_at": "2026-08-29T10:52:27.952940+00:00", "kind": "site_page", "missing": false, "url": "https://grandnode.com/designed-for-developers"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 40}, "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": 1941, "days_push": 7, "days_rel": 535, "gap_med": 15.5, "n_releases_24m": 3}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}