🍇🍉🍏🍊🍋🍌🍍🍎🍐🍑🍒🍈🍓🥝
A simple eCommerce demo application in 2,500 lines of Elm code, all shrank into 40KB of JavaScript, including styling and icons.
- Responsive
- Cart and Favorites management
- Persistent (local storage)
- Synced across tabs
- Light / Dark mode
- Bilingual
- Searchable/Sortable results
- Dashboard (+1,100 lines of Elm)
- Atomic design
- Fault tolerant
2,500 lines of Elm
0 lines of CSS
25 lines of JavaScript
15 lines of HTML
- The app demo: https://elm-ecommerce.guupa.com
- The app + The dashboard demo: https://elm-ecommerce-dashboard.guupa.com
- The app demo in Ellie: https://ellie-app.com/d2dKW5XHVcCa1
- The code: https://github.com/lucamug/elm-ecommerce
- Illustrations (いらすとや): https://www.irasutoya.com/
- Icons: https://feathericons.com/
Install Node.js.
All other commands should work without installation as they are using npx
. In case there are some issues you can install the required application executing:
npm i -g [email protected]
npm i -g [email protected]
npm i -g [email protected]
git clone https://github.com/lucamug/elm-ecommerce.git
cd elm-ecommerce
cmd/start
Then access http://localhost:8000/
Edit src/Main.elm
and the browser will update automatically.
cmd/startDashboard
Then access http://localhost:8001/
Edit src/Dashboard.elm
and the browser will update automatically.
cmd/build
This will create two folders, build/normal
and build/dashboard
that can be used to publish the application.
You can see these two versions of the application here: