A lot of folks have debated whether there is a need or a place for a "Rails for Node" platform that brings together a set of blessed libraries that work well together and a set of tools for rapidly building software with that set of tools. In that sense at least, Electrode seems to have some structural similarities to Rails.
Do you see Electron as potentially having a Rails-like role of bringing together libraries and packages into a more "plug and play" development environment for people who want buy in to comprehensive Node development platform?
However I don't see these projects getting any sizable traction from the open source community. What's the point of releasing them if WalmartLabs isn't putting any investment into marketing to developers in order to get these projects to grow in adoption?
I have a quick unrelated question. Why is Walmart.ca contracted outside if you have walmart labs? Well at least the front-end. Hope it's okay to ask you that.
Clarifying because I was confused at first: this is the React/Node.js tech stack that the website is built on, not the ecommerce platform that drives it.
Given Walmart's deep contributions and investments in the Backbone ecosystem [0], which were impressive in their own right, I'm even more impressed that they seem to have switched to a React-based front end stack in a few years. That seems pretty agile for a company the size of Walmart.
Although it is great that this happened and I applaud open source contributions, especially by bigger companies, I wonder what the reasons for such a rewrite were. And why the online platform manager approved it. People often try to convince me of shiny-new-thing-39432 and sometimes we try on a non-risk project and usually we find out it's the same or (more often) worse than what we used before. I like React and theoretically (not practically unfortunately) also Node but if I already have a site built in something else the web team would have to come up with really over the top reasons (and prove them after the roll out!) to just dump that investment.
> "Electrode is a platform for building universal React/Node.js applications with standardized structure, best practices, and modern technologies baked in. Electrode focuses on performance, component reusability, and simple deployment to multiple cloud providers—so you can focus on what makes your app unique."
Sounds like the missing piece of the puzzle everyone's been waiting for?
The complexity isn't likely completely free.. but could be incredibly useful for a lot of universal rendering scenarios... the above the fold content loading, and the component render caching server-side is particularly interesting.
Now if Walmart.com just didn't look quite so hideous... but that's another issue...
The tech stack for electrode is definitely interesting, and looking forward to playing around with it.
This is somewhat surprising, in a good way. A lot of large companies are pretty risk averse, and this prevents them from releasing the source for their shopping platforms into the wild. I'm sure there are some differences between the open source version and what they actually run.
Is this the complete platform? What's held back? I would think the analytic tools for usage and sales, how they store user data, and perhaps whatever they use to build profiles about individual users' shopping behavior. But that's just speculation.
Check out the network timeline, this because there are images loading and analytics events firing. Totally independent of whatever front-end framework is used; even the most efficient vanilla JS won't speed up image loading...
Electrode Boilerplate comes fully loaded with the best technologies available:
• React is an awesome JavaScript library for building user interfaces, created by Facebook.
• Redux a predictable state container for JavaScript apps. #game-changer.
• React Router is a powerful routing library built on top of React.
• CSS Modules a CSS file in which all class names and animation names are scoped locally by default. Fixes the problem of the global scope in CSS. #winning
• Universal rendering built in.
• Webpack a powerful module bundler.
• Webpack Isomorphic Loader a powerful tool that makes NodeJS require understand files such as images for SSR.
• Babel transpiles ES6 + 7.
• ESLint a pluggable linting utility for Javascript.
• Mocha a feature-rich Javascript testing framework.
• Enzyme a Javascript testing utility for React, created by airbnb.
• TravisCI a continuous integration service to build and test software projects.
• Gulp a Javascript build tool that lets us automate tasks.
• Yeoman a Scaffolding tool for modern webapps.
• History a Javascript library for managing session history.
• Bluebird a great Javascript promise library.
• Electrode Confippet Confippet is a versatile and flexible utility for managing configurations of Node.js applications.
• Electrode JWT CSRF Cross-Site Request Forgery (CSRF) protection with JWT.
• Electrode-Redux-Router-Engine An Electrode routing and rendering engine using react-router and redux.
• Component Caching Optimize React SSR with profiling and component caching.
• Electrode-Server A configurable web server using Hapi.js on top of Node.js.
• Electrify Tool for analyzing the module tree of webpack projects.
• Electrode-Docgen A custom metadata extractor for the Electrode framework, automates component documentation.
Yup, we are big fans of Hapi.js and that's what we use internally for walmart.com, but one of our goals in October is to disconnect the tieing of Electrode and Hapi.js - that way you can use whatever web framework you want with Electrode. Internally, we will continue to use Hapi though.
I have tried on multiple occasions to get started with react and every time the large amount of setup prevents me from getting anywhere useful. After looking over the docs I am somewhat hopeful that this might bridge the gap.
I second the recommendation for Create-React-App. It's explicitly intended to be a no-config, no-setup, Just Start Writing Code tool with a great developer experience.
Also, I keep a big list of links to high-quality tutorials, articles, and resources for React and related topics, at https://github.com/markerikson/react-redux-links . It's a great starting point for anyone trying to learn the ecosystem.
If you're interested, I am in the process of writing a react ebook, and I'm trying to focus on being very simple and explaining every step along the way. In fact, the whole first half of the book doesn't use a server at all (it uses script tags like https://facebook.github.io/react/docs/tutorial.html).
If you (or anyone else) is interested, I'd be happy to give you the chapters as I finish them, and would love to hear any feedback you have about it. Just send me an email (in my profile).
>The intention is to provide a basic boilerplate setup that doesnt inundate the new user with complexity, and stays out of the way of the more comfortable who just want an ES6/React environment to bang out an idea. It's ready to set up on your plain old web server, or your Firebase or Github site, or for building the front-end for your Wordpress API, with a minimum of fuss and configuration.
There are flavours that get you a simple router, a firebase backend, and Virtual Reality bindings, if you need those.
Hope you find the docs useful. We try to walk through building an app together.
We are working on breaking down everything inside our app for people who are starting off can get a jumping start, but than read through everything that's inside the app to understand better what's happening underneath the hood (such as, what's in the webpack config).
To any Walmart developers reading: thank you for open sourcing this!
However, there's something I'd like even more than your time spent on this project. Currently, walmart.com will indicate to customers that there is inventory available in-store that there sometimes isn't. This can lead to a terrible customer experience when you order something that runs out of stock after you order it, and your order is just cancelled. It seems like there should be the ability to have it backordered at the price at which you purchased. Could Walmart instead always honor the price at which an item was purchased online even if stock in-store runs out, and give the customer the option to cancel the order or get a 20% discount on any item if you don't want to get it on backorder? Right now this can be done, but it requires the store manager's approval, which can involve having to file a complaint, which seems completely unnecessary.
My experience is that Walmart's website is truly abysmally poor. Releasing their software is likely a scourge upon other commercial vendors who might inadvertently try to imitate them.
[+] [-] alexgrigoryan|9 years ago|reply
[+] [-] apike|9 years ago|reply
Do you see Electron as potentially having a Rails-like role of bringing together libraries and packages into a more "plug and play" development environment for people who want buy in to comprehensive Node development platform?
[+] [-] osipov|9 years ago|reply
However I don't see these projects getting any sizable traction from the open source community. What's the point of releasing them if WalmartLabs isn't putting any investment into marketing to developers in order to get these projects to grow in adoption?
[+] [-] parthdesai|9 years ago|reply
I have a quick unrelated question. Why is Walmart.ca contracted outside if you have walmart labs? Well at least the front-end. Hope it's okay to ask you that.
[+] [-] misterbowfinger|9 years ago|reply
[+] [-] kevan|9 years ago|reply
[+] [-] cygned|9 years ago|reply
[+] [-] danso|9 years ago|reply
[0] https://github.com/walmartlabs/thorax
[+] [-] alexgrigoryan|9 years ago|reply
[+] [-] tluyben2|9 years ago|reply
[+] [-] sdegutis|9 years ago|reply
> "Electrode is a platform for building universal React/Node.js applications with standardized structure, best practices, and modern technologies baked in. Electrode focuses on performance, component reusability, and simple deployment to multiple cloud providers—so you can focus on what makes your app unique."
Sounds like the missing piece of the puzzle everyone's been waiting for?
[+] [-] tracker1|9 years ago|reply
Now if Walmart.com just didn't look quite so hideous... but that's another issue...
The tech stack for electrode is definitely interesting, and looking forward to playing around with it.
[+] [-] groundhogday1|9 years ago|reply
[+] [-] heroprotagonist|9 years ago|reply
Is this the complete platform? What's held back? I would think the analytic tools for usage and sales, how they store user data, and perhaps whatever they use to build profiles about individual users' shopping behavior. But that's just speculation.
[+] [-] alexgrigoryan|9 years ago|reply
I don't know of anything lower in the stack that was open sourced than what I mentioned.
The stuff we didn't put into the Electrode platform that is integrated internally, off the top of my head:
1. Integrations to our global config manager, that allows us to turn flags on/off in real time.
2. Integrations to our A/B Testing Tools
3. Integrations to our content management
4. Logging/Analytics/Metrics Integrations
5. Our CSS styles and Icons
As you can see, almost everything is open sourced :)
[+] [-] ryanmccullagh|9 years ago|reply
edit: I should also state that my OS is Ubuntu.
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] exogen|9 years ago|reply
[+] [-] makmanalp|9 years ago|reply
[+] [-] swlkr|9 years ago|reply
[+] [-] smaili|9 years ago|reply
[+] [-] simlevesque|9 years ago|reply
[+] [-] igravious|9 years ago|reply
http://www.electrode.io/docs/what_is_electrode.html#features
Electrode Boilerplate comes fully loaded with the best technologies available:
[+] [-] alexgrigoryan|9 years ago|reply
[+] [-] dcgudeman|9 years ago|reply
[+] [-] jimmyhmiller|9 years ago|reply
[+] [-] acemarke|9 years ago|reply
Also, I keep a big list of links to high-quality tutorials, articles, and resources for React and related topics, at https://github.com/markerikson/react-redux-links . It's a great starting point for anyone trying to learn the ecosystem.
[+] [-] chrisa|9 years ago|reply
If you (or anyone else) is interested, I'd be happy to give you the chapters as I finish them, and would love to hear any feedback you have about it. Just send me an email (in my profile).
[+] [-] WalterSear|9 years ago|reply
>The intention is to provide a basic boilerplate setup that doesnt inundate the new user with complexity, and stays out of the way of the more comfortable who just want an ES6/React environment to bang out an idea. It's ready to set up on your plain old web server, or your Firebase or Github site, or for building the front-end for your Wordpress API, with a minimum of fuss and configuration.
There are flavours that get you a simple router, a firebase backend, and Virtual Reality bindings, if you need those.
[+] [-] alexgrigoryan|9 years ago|reply
We are working on breaking down everything inside our app for people who are starting off can get a jumping start, but than read through everything that's inside the app to understand better what's happening underneath the hood (such as, what's in the webpack config).
[+] [-] cutler|9 years ago|reply
[+] [-] projectileboy|9 years ago|reply
[+] [-] unknown|9 years ago|reply
[deleted]
[+] [-] leesalminen|9 years ago|reply
[0] https://github.com/electrode-io/electrode-electrify
[+] [-] crudbug|9 years ago|reply
How is this different from Hypernova [0] ?
[0] https://github.com/airbnb/hypernova
[+] [-] plan6|9 years ago|reply
However, there's something I'd like even more than your time spent on this project. Currently, walmart.com will indicate to customers that there is inventory available in-store that there sometimes isn't. This can lead to a terrible customer experience when you order something that runs out of stock after you order it, and your order is just cancelled. It seems like there should be the ability to have it backordered at the price at which you purchased. Could Walmart instead always honor the price at which an item was purchased online even if stock in-store runs out, and give the customer the option to cancel the order or get a 20% discount on any item if you don't want to get it on backorder? Right now this can be done, but it requires the store manager's approval, which can involve having to file a complaint, which seems completely unnecessary.
[+] [-] debacle|9 years ago|reply
[+] [-] Negative1|9 years ago|reply
[+] [-] alexgrigoryan|9 years ago|reply
[+] [-] marccantwell|9 years ago|reply
[+] [-] exogen|9 years ago|reply
[+] [-] giardini|9 years ago|reply
[+] [-] hackerboos|9 years ago|reply