Solidus is a free, open source e-commerce platforms project written in Ruby and released under BSD-3-Clause. It has 5,328 GitHub stars, 1,403 forks and 92 open issues, and was last pushed 11 hours ago. On this registry it ranks #14 of 30 tracked projects in E-commerce Platforms, with 5 head-to-head comparisons available. It gained 1 stars over the last 6 tracked days.

What is Solidus?

Solidus is a free, BSD-3-Clause licensed e-commerce platform built with Ruby on Rails, aimed at developers and merchants who want to own and modify their entire storefront rather than rent one from a hosted provider.

What it is

Solidus is a complete open-source e-commerce solution written in Ruby on Rails. It is distributed as a set of gems: when an application requires the solidus gem in its Gemfile, Bundler installs solidus_api (the RESTful API), solidus_backend (the admin area), and solidus_core (the essential models, mailers, and classes), with additional companion gems following the same naming convention. The project lives in the Ruby and Rails ecosystem, is listed under Business Software and E-commerce Platforms, and is developed in the open on GitHub, where it carries the ecommerce, ecommerce-framework, ecommerce-platform, rails, ruby, solidus, and storefront topics alongside hacktoberfest. The README describes it plainly as a free, open-source e-commerce platform that gives complete control over a store, and the project publishes documentation at docs.solidus.io and longer-form guides at guides.solidus.io.

The concrete problem Solidus solves is dependency on a closed storefront and on a platform vendor's roadmap. It began as a fork of Spree, so teams that wanted the Rails e-commerce model but a different governance and release direction could continue on a codebase they control. Because the catalogue, order, and admin logic arrive as gems inside the merchant's own Rails application, the store is a normal application that can be extended, tested, and deployed like any other service, rather than a product configured through someone else's dashboard. Solidus is community-driven and funded through backers and sponsors on Open Collective, which is how the project sustains development without a paid licence.

Key capabilities

  • Requires the solidus gem in a Gemfile; Bundler then installs solidus_api, solidus_backend, and solidus_core together.
  • solidus_api exposes a RESTful API for integrating the store with other systems.
  • solidus_backend provides the administrative area for managing the store.
  • solidus_core supplies the essential models, mailers, and classes that the rest of the platform builds on.
  • Ships with a public demo, so the storefront and admin can be evaluated before any installation work begins.
  • Documents a dedicated Installation Options section, covering more than one way to bring the platform into a project.
  • Publishes a Performance section, acknowledging that tuning a Rails commerce application is part of running it.
  • Maintains community infrastructure around the code: a Slack workspace at slack.solidus.io, a security mailing list, guides, and a public roadmap as a GitHub project.

Who uses it and how

  • Rails development teams that want commerce logic inside their own application, where models, mailers, and admin screens can be modified directly rather than worked around.
  • Merchants whose requirements outgrew a hosted storefront and who are willing to operate a Ruby application in exchange for full control of the codebase.
  • Contributors participating through Hacktoberfest and the project's contribution guidelines, since the repository is explicitly open to outside work.
  • Supporters and partners who fund the project through Open Collective at bronze, silver, and gold tiers, plus Solidus Ambassadors who are listed with a link to their website.
  • Organisations following the project's direction, which is currently guided by Nebulab as the main code contributor and director, coordinating community efforts and technical guidance.

Getting started

Add the solidus gem to a Rails application's Gemfile and let Bundler install solidus_api, solidus_backend, and solidus_core; the README's Getting Started and Installation Options sections, together with the guides at guides.solidus.io, walk through the rest. A demo is available for evaluating the storefront and admin before committing to an install.

How it compares

The README names Spree directly as the project Solidus forked from, so the closest comparison in the facts is that upstream Rails commerce codebase. Solidus carries a BSD-3-Clause licence and is directed by a specific main contributor and director in Nebulab, with funding routed through Open Collective rather than a product licence. No list of paid products that Solidus replaces is provided, so any further comparison would go beyond what the project itself states.

When to use it — and when not to

Choose Solidus if the team already works in Ruby on Rails and wants commerce models, mailers, and an admin area living inside its own application, with a permissive BSD-3-Clause licence and no per-transaction platform fee. Do not choose it if the goal is a managed storefront with no engineering involvement: the facts describe a gem-based Rails framework, installation options, and performance considerations, not a hosted service, and the repository currently carries 92 open issues with community support routed through Slack, guides, and a security mailing list. Teams without Rails experience, or without appetite for operating and upgrading their own application, will find the maintenance burden lands on them.

project readme (upstream, from github) — read inline

Solidus

Test codecov Gem License

Supporters on Open Collective Bronze Partners on Open Collective Silver Partners on Open Collective Gold Partners on Open Collective Open Source Helpers Slack

A free, open-source e-commerce platform that gives you complete control over your store.

Table of Contents

Supporting Solidus

As a community-driven project, Solidus relies on funds and time donated by developers and stakeholders who use Solidus for their businesses. If you'd like to help Solidus keep growing, please consider:

Main Contributor & Director

At present, Nebulab is the main code contributor and director of Solidus, providing technical guidance and coordinating community efforts and activities.

Nebulab

Ambassadors

Support this project by becoming a Solidus Ambassador. Your logo will show up here with a link to your website. Become an Ambassador.

Super Good Software


Summary

Solidus is a complete open source e-commerce solution built with Ruby on Rails. It is a fork of Spree.

See the Solidus class documentation and the Solidus Guides for information about the functionality that Solidus provides.

Solidus consists of several gems. When you require the solidus gem in your Gemfile, Bundler will install all of the following gems:

All of the gems are designed to work together to provide a fully functional e-commerce platform. However, you may only want to use the solidus_core gem combine it with your own custom frontend, admin interface, and API.

Demo

You can try the live Solidus demo here. The admin section can be accessed here.

Getting started

Begin by making sure you have Imagemagick installed, which is required for Paperclip. (You can install it using Homebrew if you're on a Mac.)

To install Solidus with the current storefront, follow the instructions in storefront/README.md.

Accessing Solidus Store

Start the Rails server with the command:

bin/rails s

The storefront will be accessible at http://localhost:3000/ and the admin can be found at http://localhost:3000/admin/.

For information on how to customize your store, check out the customization guides.

Default Username/Password

As part of running the above installation steps, you will be asked to set an admin email/password combination. The default values are [email protected] and test123, respectively.

Questions?

The best way to ask questions is to join the Solidus Slack and join the #support channel.

Installation options

Instead of a stable build, if you want to use the bleeding edge version of Solidus, use this line:

gem 'solidus', github: 'solidusio/solidus'

Note: The master branch is not guaranteed to ever be in a fully functioning state. It is too risky to use this branch in production.

By default, the installation generator (solidus:install) will run migrations as well as adding seed and sample data. This can be disabled using

bin/rails g solidus:install --migrate=false --sample=false --seed=false

You can always perform any of these steps later by using these commands.

bin/rails railties:install:migrations
bin/rails db:migrate
bin/rails db:seed
bin/rails spree_sample:load

There are also options and rake tasks provided by solidus_auth_devise.

Performance

You may notice that your Solidus store runs slowly in development mode. This can be because in development each CSS and JavaScript is loaded as a separate include. This can be disabled by adding the following to config/environments/development.rb.

config.assets.debug = false

Turbolinks

To gain some extra speed you may enable Turbolinks inside of Solidus admin.

Add gem 'turbolinks', '~> 5.0.0' into your Gemfile (if not already present) and change vendor/assets/javascripts/spree/backend/all.js as follows:

//= require turbolinks
//
// ... current file content
//
//= require spree/backend/turbolinks-integration.js

CAUTION Please be aware that Turbolinks can break extensions and/or customizations to the Solidus admin. Use at your own risk.

Developing Solidus

  • Clone the Git repo

    git clone git://github.com/solidusio/solidus.git
    cd solidus
    

Without Docker

  • Install the gem dependencies

    bin/setup
    

    Note: If you're using PostgreSQL, MySQL, or MariaDB, you'll need to install those gems through the DB environment variable.

    # PostgreSQL
    export DB=postgresql
    bin/setup
    
    # MySQL or MariaDB (mysql2 adapter)
    export DB=mysql
    bin/setup
    

With Docker

docker-compose up -d

Wait for all the gems to be installed (progress can be checked through docker-compose logs -f app).

You can provide the ruby version you want your image to use:

docker-compose build --build-arg RUBY_VERSION=3.0 app
docker-compose up -d

The rails version can be customized at runtime through the RAILS_VERSION environment variable:

RAILS_VERSION='~> 5.0' docker-compose up -d

Running tests:

# sqlite
docker-compose exec app bin/rspec
# postgres
docker-compose exec app env DB=postgres bin/rspec
# mysql
docker-compose exec app env DB=mysql bin/rspec

Accessing the databases:

## sqlite
docker-compose exec app sqlite3 /path/to/db
## postgres
docker-compose exec app env PGPASSWORD=password psql -U root -h postgres
## mysql
docker-compose exec app mysql -u root -h mysql -ppassword
`

readme truncated — read the full docs on github

Frequently asked questions

Is Solidus free to use?

Solidus is open source under the BSD-3-Clause licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Solidus do?

Flexible eCommerce platform for brands that stand out

What is Solidus written in?

Solidus is primarily written in Ruby. Its source is publicly available at https://github.com/solidusio/solidus, and it has 5,328 GitHub stars.