WalmartLabs open sources the application platform that powers Walmart.com
techcrunch.com
techcrunch.com
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?
Externally, for the "Electrode Core", we will continue to maintain a set of libraries that play well together, but I expect to see people doing their own thing. I see what we are doing with core as more of a jumping off point for your app and setting you on the right path for managing many apps/components (with our notion of archetypes that manage your dependencies instead of top level app) and than people will mix technologies that they want.
We will continue to maintain our list though and manage dependencies through archetype (I think archetype is a powerful idea).
"Electrode Modules and Electrode Tools" are independent to the rest of Electrode. You can use these modules/tools independently of Electrode Core.
Framework and app generator are really quite far off from what an archetype provides. An archetype is like an npm module template, but not one that is used to generate code files and then discarded, but more like a live "superclass" of a module; think inheritance but for npm modules.
The basic idea is that if you have dozens or hundreds of similar modules (for, say, React components), with similar build + testing needs, you can use the same archetype for all of them. A generator like yeoman could spit out boilerplate for you, but then what if your boilerplate changes? Your packages quickly get out of sync with your latest best practices. Having some components on Babel 5 and some upgraded to Babel 6, for example, was a real pain. You have to go through your dozens of packages and bring them up to date. Archetypes on the other hand are intended to be encapsulated boilerplate that packages basically "inherit" from at runtime.
Hope that helps!
Exogen, hope we can use what you wrote :D
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.
On a side note, just fun info, I know that Walmart.ca will be moving to electrode eventually, we don't have a date on the roadmap yet. We've built Electrode to be able to reuse the same components while maintaining a different brands styles, content, etc
Source: http://www.nurun.com/en/news/nurun-launches-redesigned-trans... plus private conversations with people who have worked on the project.
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 think that WalmartLabs is investing in OneOps and investing into marketing it to developers. I know our OneOps folks have been at the OpenStack conferences recently and are doing their best to engage with the community.
Regarding Electrode, we will do our best to market to developers and grow adoption. I'll be at multiple conferences in the coming months, have talked in meet ups, writing blog posts to go more in-depth. I'm not in marketing or PR though, so any tips are always appreciated :).
Walmart.com uses it and we care deeply about SEO!
It definitely is. There is a serious business cost to front end trendiness, so it's good to hear the legitimate business cases for these switches vs. "it's what the devs want to code on."
> "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?
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.
We are working on a blog post that goes through the performance numbers we saw on the live site.
I also think Electrode Explorer will be popular for bigger companies that have many components.
http://www.electrode.io/docs/electrode_explorer.html
P.S. I'm from the Electrode team.
Right now at the day job I'm stuck in angular 1.x hell, though my contract is up in a couple weeks and looking for something in the React space again. Too much angular work in Phoenix to avoid completely though.
Aside: wish I could get a hold of a hiring manager there if you have space for new people, have never even gotten a callback from walmart labs, and would love to work for your org.
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.
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 :)
edit: I should also state that my OS is Ubuntu.
MBP Mid 2014, OSX 10.11, Chrome 53
http://www.electrode.io/docs/what_is_electrode.html#features
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.Until then, please check out Electrode Modules, they are independent of Hapi or Electrode Core:
>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.
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).
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 (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).
How is this different from Hypernova [0] ?
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.