HACKER Q&A
📣 r0b05

Which front-end tool would you use to build an e-commerce web app today?


I'm interested to know which would be the least painful approach given the current state of front-end frameworks.


  👤 morphle Accepted Answer ✓
The least painful approach is (and always has been) to write the entire (e-commerce) (web) app in Smalltalk, specifically Squeak (or several forks like Cuis, Pharo). I once wrote an entire webshop with Stripe payments in a single afternoon that had the sophistication of the Apple Store.

There is not one framework but several, some are mainly Smalltalk, some are more javascript wrappers or ported to javascript. I have omitted a lot of other 'Smalltalks in the browsers'. Another language would be LISP, like [9] in which HN itself is build. I'd love to demo some of these sophisticated front- and back-end frameworks, mail morphle at ziggo dot nl.

[1] https://www.seaside.st

[2] https://www.piercms.com/

[3] https://squeak.js.org

[4] https://caffeine.js.org

[5] https://lively-kernel.org

[6] https://croquet.io

[7] https://smalltalkzoo.thechm.org

[8] https://en.wikipedia.org/wiki/Dabble_DB (aquihired by Twitter)

[9] https://news.ycombinator.com/item?id=23191147


👤 gregopet
Vue.js 3 + Vert.x backend (plus Nuxt if I needed SSR). If less interactivity were required, Rails (or rather Grails) and Alpine.js. But it's not that these technologies are inherently better than something else, I'd simply go with what I know & have had positive experience with. If you don't have any web experience, try to find a stack at least related to something you do know.

👤 eyelidlessness
Marko[1] immediately comes to mind. It’s developed by, and powers most of, eBay. High performance, “isomorphic” (same code runs server-/client-side), small client bundle with automatic “partial hydration” (compiler uses static analysis to only send JS for interactive parts of the view).

Another good option might be Astro[2] which has a lot of similar goals to Marko, but lets you “bring your own framework” for the interactive parts, so you can achieve a similar experience to Marko with more mainstream tools/syntax.

1: https://markojs.com/

2: https://astro.build/


👤 sheunl
Wordpress. Worked in company using Woocommerce for their e-commerce solution, It was profitable at that. That is if you want a quick and simple solution. If you want something less turnkey and more flexible but more tasking, Django or Laravel is a good option.

Don't overcomplicate things, simplicity is often underrated on the web side of development. This is coming from a guy who writes low level embedded c and c++ on a daily basis.


👤 egfx
I wouldn’t recommend it but I start my frontend projects in the defunct enyojs boilerplate. It’s gone now but Enyo had Onyx. A fully featured component library. I’ve never seen a component library as tightly coupled to a JavaScript framework. Sadly, as mentioned, enyojs is no more. Saying that reactjs, the successor to enyo is an adequate replacement. Some of the team made a react fork called Enact Enyo+React that brings back some of the great onyx components. But I haven’t used it as there are many other component libraries available in the react ecosystem to choose from.

It’s also tempting to go jamstack to start a new frontend project. Some of these boilerplates are very bleeding edge however and you will be spending a lot of time learning the convention of each individual boilerplate. I’d be hesitant to start a new jamstack project.


👤 PaulHoule
Depends on the app.

MobX + React + Websockets looks good for some things. (Controller apps for my home IoT system)

For other things where agility really matters (say a system for building machine learning training sets where you might want to add new tasks) I'd ditch the SPA because I wouldn't want to have to modify the front end just to add a new task.

I'm also dreaming about making systems that are WebGL based and not quite sure how I'll do it.


👤 jasfi
I'd be tempted to use DocUI which uses Flutter for the UI, and represents the UI with JSON which can be built from any language-supported SDK. It lacks real-time data refresh for the moment though. An Open Source release should be available in a month or two. https://nexusdev.tools

That said, React seems to be hugely popular these days.


👤 eurasiantiger
Shopify.

👤 rdubs333
Hybrid SPA Laravel Livewire with Tailwind CSS

👤 rand0m4r
yew.rs