A simple eCommerce demo application in 2,500 lines of Elm code, all shrank into 40KB of JavaScript, including styling and icons.
See the codeππππππππππππππ₯
A simple eCommerce demo application in 2,500 lines of Elm code, all shrank into 40KB of JavaScript, including styling and icons.

2,500 lines of Elm
0 lines of CSS
25 lines of JavaScript
15 lines of HTML
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 elm@0.19.1-5
npm i -g elm-go@5.0.12
npm i -g terser@5.7.0
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:
3 commits
Elm
98.8%
Shell
1.2%
A simple eCommerce demo application in 2,500 lines of Elm code, all shrank into 40KB of JavaScript, including styling and icons.
See the codeππππππππππππππ₯
A simple eCommerce demo application in 2,500 lines of Elm code, all shrank into 40KB of JavaScript, including styling and icons.

2,500 lines of Elm
0 lines of CSS
25 lines of JavaScript
15 lines of HTML
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 elm@0.19.1-5
npm i -g elm-go@5.0.12
npm i -g terser@5.7.0
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:
3 commits
Elm
98.8%
Shell
1.2%