Overview
Discover what makes Spree Commerce powerful
Spree Commerce is a modular, open‑source e‑commerce platform built on **Ruby on Rails**. It exposes a rich RESTful API and a set of well‑structured Ruby gems that allow developers to spin up fully functional storefronts or headless services in minutes. The core architecture follows Rails’ MVC pattern but is intentionally decoupled: each feature lives in its own engine (e.g., `spree_authentication`, `spree_payments`, `spree_shipping`) that can be dropped in or out. This plug‑in model lets teams cherry‑pick only the modules they need, keeping the codebase lean and testable.
Extensible Engine System
RESTful API & GraphQL
Admin & Storefront Separation
Multi‑Store & Multi‑Tenant
Overview
Spree Commerce is a modular, open‑source e‑commerce platform built on Ruby on Rails. It exposes a rich RESTful API and a set of well‑structured Ruby gems that allow developers to spin up fully functional storefronts or headless services in minutes. The core architecture follows Rails’ MVC pattern but is intentionally decoupled: each feature lives in its own engine (e.g., spree_authentication, spree_payments, spree_shipping) that can be dropped in or out. This plug‑in model lets teams cherry‑pick only the modules they need, keeping the codebase lean and testable.
Key Features
- Extensible Engine System – Each domain (products, orders, payments) is an isolated Rails engine. New engines can be authored and shared via RubyGems, fostering a vibrant ecosystem.
- RESTful API & GraphQL – The API layer is versioned and follows JSON:API conventions, enabling seamless integration with front‑end frameworks or external services. A GraphQL endpoint is also available for flexible data fetching.
- Admin & Storefront Separation – The admin dashboard (built with React and Rails API) is a separate front‑end, allowing independent scaling and custom UI layers. The storefront can be rendered server‑side with Rails or consumed headlessly by any JavaScript framework.
- Multi‑Store & Multi‑Tenant – Spree 5 introduces modules for multi‑vendor marketplaces, B2B workflows, and white‑label SaaS deployments. These modules expose tenant‑scoped models and API scopes that enforce data isolation at the database level.
- Payment & Shipping Integrations – Out‑of‑the‑box adapters for Stripe, Braintree, PayPal, and major shipping carriers. Custom payment methods can be added by extending the
PaymentMethodinterface.
Technical Stack
| Layer | Technology |
|---|---|
| Web framework | Ruby on Rails 7 (API mode) |
| Front‑end | React (Admin), optional SPA frameworks for headless storefronts |
| Database | PostgreSQL (primary), Redis for caching and background jobs |
| Background processing | Sidekiq, ActionCable for real‑time updates |
| Containerization | Docker images available; Helm charts for Kubernetes |
| Testing | RSpec, Capybara, FactoryBot (full test suite shipped) |
The stack is intentionally lightweight: Rails provides rapid development and a mature ecosystem, while Docker ensures consistent runtime environments across CI/CD pipelines.
Deployment & Infrastructure
Spree is designed for self‑hosting but also supports cloud deployments. A typical stack includes:
- PostgreSQL for relational data, with optional sharding for high‑volume stores.
- Redis for session store and Sidekiq queues, essential for handling payment callbacks and order processing.
- Nginx/Traefik as a reverse proxy, exposing the Rails API and WebSocket endpoints.
- Docker Compose for local development; Kubernetes with Helm charts for production scaling.
Horizontal scaling is straightforward: the API layer can be load‑balanced, while Sidekiq workers scale horizontally. The modular engines allow selective deployment; for example, a headless storefront can run on a lightweight Node.js server that consumes the Spree API.
Integration & Extensibility
Spree’s plugin architecture is a developer’s playground. To add a new feature, create a Rails engine that declares its routes, models, and services, then register it in the main application. The API layer automatically documents new endpoints via Swagger/OpenAPI. Webhooks are supported natively; merchants can subscribe to events such as order.completed or product.updated. For B2B scenarios, the Enterprise Edition ships with a comprehensive audit log and role‑based access control that can be extended through custom policies.
Developer Experience
- Documentation: The official docs are API‑first, with example payloads and versioning notes. Community tutorials cover everything from basic CRUD to advanced marketplace setups.
- Community & Support: A Slack workspace with ~7K members, active GitHub discussions, and a dedicated mailing list. The core team maintains rapid issue triage.
- Configuration: Environment variables control database URLs, payment secrets, and feature flags. The
config/initializersdirectory contains clear examples for customizing the admin UI or overriding default tax calculations. - Testing: The included test suite demonstrates best practices for factories, shared examples, and integration tests, making it easier to bootstrap new feature branches.
Use Cases
- Multi‑Tenant SaaS: Companies like GoDaddy use Spree to power thousands of independent storefronts, leveraging the multi‑tenant module for tenant isolation and white‑label branding.
- Headless Commerce: Startups can expose the Spree API to a React or Vue front‑end, achieving rapid time‑to‑market while keeping the back‑end logic in Rails.
- Marketplace & B2B: The marketplace engine lets developers build a two‑sided platform with vendor dashboards, commission logic, and order routing—all within the same codebase.
- Enterprise Customization: Large merchants can extend Spree with custom tax engines, shipping rules, or integration plugins without rewriting core logic.
Advantages
- Full Control & Open Source: No vendor lock‑in; source code is available under the MIT license, allowing deep customization.
- Ruby on Rails Familiarity: Developers already
Open SourceReady to get started?
Join the community and start self-hosting Spree Commerce today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Notifo
Multi‑channel notification service for modern apps
Audiobookshelf
Self-hosted audiobook and podcast server
TagSpaces
Organize files offline with tags and local web clipping
Chirpy
Privacy‑friendly, customizable comment system for modern websites
ChiefOnboarding
Self‑hosted onboarding platform for new hires

Yeti-Switch
Open‑source softswitch for flexible routing and integration
