Architecture
Learn about the Spree architecture
Spree is built on top of Ruby on Rails framework and handful of other libraries. Spree itself is a modular platform consisting of several modules (Ruby gems).
As many Rails applications Spree requires a rational database to run. Spree supports both MySQL and PostgreSQL. You can also use SQLite.
Core gems
These gems are the core of Spree and they are the most important part of the Spree platform. They are the building blocks that make Spree possible.
Core
Core
The core module is the heart of Spree, containing the essential components and functionalities that power Spree stores. This includes the models, services, and the backend logic necessary to manage products, orders, payments, shipping, and more.
API
API
The API module provides a RESTful programmable interface to Spree, allowing developers to interact with the Spree store programmatically. This is useful for integrating Spree with other systems, building mobile applications, or customizing the frontend of a Spree store.
API gem also includes Webhooks which are a way to let Spree know when something happens in the store. For example, when an order is placed, the API gem can send a webhook to a 3rd party service to let them know about the order.
UI gems
Admin Panel
Admin Panel
The Admin Panel module provides a comprehensive backend interface for managing a Spree store. It includes functionalities for product management, order processing, customer service, configuration settings, and more. This module is designed to give store administrators full control over the operations and settings of the store.
Storefront
Storefront
The Storefront module is the customer-facing part of a Spree store. It includes the presentation layer for displaying products, handling customer carts, and processing checkout operations. This module is built with a focus on user experience, ensuring that customers have a smooth and enjoyable shopping experience.
Optional gems
Emails
Emails
The Emails module handles all aspects of email generation and delivery in Spree. This includes order confirmation emails, shipping notifications, promotional emails, and any other email communications between a Spree store and its customers.
You can opt-out of the default email functionality and use a 3rd party email service eg. Klaviyo or Mailchimp.
Gateway
Gateway
The Gateway module in Spree is responsible for handling payment processing. It integrates with various payment gateways and providers, allowing Spree stores to accept payments from customers through different methods and channels. This module ensures secure and efficient transaction processing, supporting a wide range of payment options to cater to diverse customer preferences.
Auth Devise
Auth Devise
The Auth Devise module leverages the Devise gem for authentication in Spree. It provides a robust and flexible authentication solution for Spree stores, including features such as user registration, login, password recovery, and more. This module is essential for managing user access and ensuring secure user authentication processes within a Spree store.
3rd party Extensions
Extensions are Spree plugins that add new features or functionality to a Spree store. They are developed and maintained by the Spree community.
You can find a list of Spree extensions on the Extensions list page