An attempt to port/rebuild Spree, an open source e-commerce solution, with Phoenix.
Spree is an excellent product however, for several reasons, it started to show some limits:
So here's the deal: why not to port/rebuild Spree with Elixir and Phoenix? The main idea is to take inspiration from the many Spree's good parts and build a new generation ecommerce for the next years.
See TODO for more details, meanwhile, here there are some intentions:
The first short term goal is to quickly build a bare-bones MVP with the core models (eg: Product
, Variant
, Order
, LineItem
, ...) and the necessary code to glue them through isolated, well defined commands. Then, at a very high level:
Once we get an initial, working, very basic product, we can start to split the whole app into components. Very similar to Spree:
core
: contains the core models and their basic integrations (queries, commands, ...);api
: all actions should be done from an HTTP-JSON API, so anyone can build its custom frontend (eg: a Single Page App, command line, mobile app, ...), especially for admins;frontend
: uses plain old server-rendered HTML pages;admin
: not a top priority. it's like frontend
, for admins;Don't know right now, world domination™? :-)
.env-example.exs
to .env.exs
, then edit it to set secret configsmix deps.get
mix ecto.create && mix ecto.migrate
mix test
npm install
mix phoenix.server
localhost:4000
from your browser