// the find
grandnode/grandnode2
E-commerce platform built with ASP.NET Core using MongoDB for NoSQL storage
GrandNode2 is a full e-commerce platform built on ASP.NET Core 9 and MongoDB, targeting developers who want a self-hosted alternative to Shopify or WooCommerce with multi-store and multi-tenant support. It's a port/rewrite of the older NopCommerce-derived GrandNode, swapping SQL Server for MongoDB. The feature set is genuinely broad — auctions, loyalty points, merchandise returns, vendor management — which makes it a serious option if you need that scope.
The domain model is well-separated into Business/Catalog/Checkout/Common layers with MediatR commands and queries throughout, so the checkout flow doesn't bleed into the catalog layer. MongoDB as the primary store is a real architectural decision, not a buzzword — document-per-product with embedded attributes avoids the N+1 joins that kill SQL-based catalog platforms at scale. The plugin system (Authentication.Facebook, Payments.StripeCheckout, etc.) is structured as proper .NET projects with DI registration rather than file drops, which means plugins get the full type system. The CI pipeline runs tests on Linux, macOS, and Windows with CodeQL and SonarCloud gating, which is more hygiene than most open-source e-commerce projects bother with.
MongoDB is both the strength and the trap: complex reporting queries (sales by category, discount effectiveness, customer lifetime value) that are trivial in SQL become painful aggregation pipelines, and the admin reporting features reflect this — they're thin. The plugin build step in the Linux install section is one giant semicolon-chained bash command building 15 projects sequentially; that's a fragile setup story that will break on any dependency mismatch. GPL v3 licensing means you cannot embed this in a commercial closed-source product without open-sourcing everything, which rules out a large class of agency use cases that WooCommerce (GPL but practically permissive) doesn't block. The Aspire integration exists but appears to be scaffolding — the AppHost just wires MongoDB and the web app, so don't expect production-ready observability out of the box.