We're happy to introduce you to the new Solidus Starter Frontend app template.
What is Solidus Starter Frontend?
Solidus Starter Frontend is the new frontend solution for Solidus. It aims to deliver
- a minimal, semantic and accessible HTML skeleton
- a reusable component based architecture
- simple SASS styling strictly based on BEM
How is Solidus Starter Frontend different from the Solidus Frontend gem?
Based on our experience building eCommerce applications, we see that the vast
majority of stores heavily customize their storefront. As a result, the
controllers and views of
solidus_frontend are essentially public API of the
gem. This makes it difficult to make improvements to
breaking existing Solidus apps. This has prevented
growing at the same pace as other Solidus components.
Since storefronts are heavily customized, we've come to the following conclusions:
Decoupling the frontend gem from Solidus would allow us to improve the frontend without breaking apps that depend on Solidus.
We can assume that once an app customizes its frontend, the app would no longer need to continue depending on the frontend gem, since it may no longer be able to keep its customizations compatible with the gem.
With these in mind, we've chosen to change
solidus_frontend from a gem to a
Rails application template. As a template, we can make improvements to the
frontend for new applications to use. At the same time, we don't have to worry
about these improvements causing incompatibilities to existing Solidus
Thus, Solidus Starter Frontend is born.
How do I install Solidus Starter Frontend on a new Rails app?
solidus gem includes the legacy
solidus_frontend gem. To
solidus_frontend, we'll need to manually
add the rest of the Solidus components individually:
Once done, all we need to do is to run the following line:
LOCATION="https://raw.githubusercontent.com/solidusio/solidus_starter_frontend/master/template.rb" \ bin/rails app:template
What can I expect to see once the frontend is installed?
In addition to generating views for authentication and storefront functionality, the application template will also generate
- Mailers with their corresponding views
- View components for complex presentational logic
- Unit and integration specs for testing the frontend
What's next for Solidus Starter Frontend?
For Solidus 4, SolidusStarterFrontend will become the recommended option for
building the storefront of a new Solidus app. We're planning to remove
SolidusFrontend from the solidus meta-package gem and move its code to a new
repo. If your app depends on SolidusFrontend, you'll need to explicitly add
solidus_frontend to your Gemfile in order to continue using it.
We are also still working on a solution to make the extensions compatible with this new frontend.