// the find
solidusio/solidus
🛒 Solidus, the open-source eCommerce framework for industry trailblazers.
Solidus is a Rails e-commerce engine forked from Spree, aimed at developers who need full control over their store rather than a hosted SaaS solution. It's a monolith that handles products, orders, payments, shipping, and returns out of the box. The target is mid-market merchants with a Rails team who've outgrown Shopify's constraints but don't want to build from scratch.
The component-based admin using ViewComponent + Tailwind is a genuine improvement over the old ERB soup — each UI section is a self-contained directory with `.rb`, `.html.erb`, `.js`, and `.yml`, which makes overriding pieces in app code straightforward. The extension ecosystem is well-structured; `solidus_dev_support` gives you a scaffold for building extensions that follow the same conventions as core. The promotion system and the adjustment architecture handle complex pricing rules (tiered discounts, per-line-item promotions, tax adjustments) without requiring you to monkey-patch core classes. Test matrix across SQLite, Postgres, and MySQL with CircleCI enforcement means breakage from DB-specific queries gets caught before it lands.
It's still a Spree fork under the hood, and the data model shows its age — the `spree_` table prefix is everywhere, and the namespace split between `Spree::` and `SolidusAdmin::` creates genuine confusion about where to look for anything. The storefront story is essentially 'build your own'; the legacy backend storefront ships but you're expected to replace it, and there's no blessed modern option (no official Hotwire or React storefront). The README still documents a sprockets workaround as a required manual step before install, which is a bad first-impression signal for a project that wants to be taken seriously. Payment gateway integrations are split across separately maintained extension gems with varying quality and maintenance cadence — before you commit, you need to audit whether the gateway you need is actually current.