Electrode: A universal react/node application platform by Walmart Labs
medium.comHere's a link to the basic boilerplate, if you'd like to see what the code looks like: https://github.com/electrode-io/electrode-boilerplate-univer...
Looks interesting. If it's as scalable and performant as they claim (and it seems to be doing just fine on Walmart's heavy usage), then this could be great for future large projects. And I would hope that Walmart's backing of this project will keep it supported without breaking changes for long enough that it would be viable for use in very large production apps.
The negative I see here is that we now have yet another JS/React app platform. As someone who is just diving into using JS framework/library-backed applications in web development, it just makes figuring out what everything is the JS ecosystem actually does to support a large application that much more confusing.
Choice isn't a bad thing per-say, but too much choice can make getting up to speed more difficult. Given, however, this platform appears to be intended for large applications that require scalability, rather than for small apps being built for learning.
Please note a lot of our focus on performance is around server side rendering (universal js/ isomorphic js). I'm trying to write a blog post around our performance improvements on a per module basis (it takes time to get good data and writing good content is hard :D).
You can use these specific SSR performance enhancing modules without the rest of Electrode:
http://www.electrode.io/docs/above_fold_rendering.html
http://www.electrode.io/docs/server_side_render_cache.html
http://www.electrode.io/docs/redux_router_engine.html
I agree, there are tons of platforms and when your starting out fresh, it's difficult to grasp the millions of ways to do things. We tried to focus heavily on documentation and building an application together for the folks that are new to the ecosystem. If you look at our docs, we try to build an application with you and we break it down from basics (get app running and deploy), to more intermediate (make plug ins, add routes, we will add material UI docs), to more advanced (lets do SSR rendering, above the fold rendering only, etc).
For small apps, we try to have a more barebones app using `yo electrode` instead of the boilerplate (which has everything), and get you deployed to Heroku or Google Cloud quickly (our docs break down how to do it, step by step).
The big thing we are missing for folks that are new to the ecosystem is what's inside our archetype and what goes inside a production app (the webpack configs, linting, css modules, and so much more). We are working on this part.
The benefit of WalmartLabs backing this project and actually using it internally to power walmart.com (and samsclub.com + grocery.walmart.com next year) - we are extremely sensitive to breaking changes. If we release a breaking change, we hear lots of groans around our desk and a line of folks expressing themselves :).
Looks good. Thanks Alex for all your hard work on Hapi and now Electron!
Going forward I have few follow ups: 1) Where is the best forum to discuss Electron, components and application composition? and 2) Can you point me to some example apps built with the framework that have source available?
Thanks in advance!
Hello!
Best forum, I think right now it's github. We haven't spread out to anything like discourse or slack (for an external forum). Maybe we should!
For example apps, we have: https://github.com/docs-code-examples-electrode-io
which is basically the code you go through on the docs. Hope that helps!
Thanks for the update.
It would be great to have a Discourse forum!
Did they really need to have an edit distance of 2 from the other big Node "application platform", Electron?
We've been using the name Electrode internally (In @WalmartLabs as we have been transforming the stack to this platform) for the past year, and we have a cute logo! We discussed switching the name with "Electron" picking up steam, but there was a lot of attachment internally to the name Electrode.
I will be interested to compare this with react-server, Gatsby and phenomic as I look to bring server side rendering to my app.
Hey, How do you handle SEO since the front end is REACT?
Alex from the Electrode team here.
By default, Electrode uses Server Side Render, which means that the rendering happens on the nodejs server and delivers the browser HTML (so we are in good shape for SEO). That capability is one of the key reasons (but not only reasons) we decided to go with React.
A lot of our modules focus on making that server side render more performant.
Specifically:
http://www.electrode.io/docs/above_fold_rendering.html
Thanks Alex, This is super cool. I have to look into something similar for our Angular projects with Node
Google search bots etc, do client side rendering...
I <3 the logo! It really is cute.