
Electrode: A universal react/node application platform by Walmart Labs - workingBen
https://medium.com/walmartlabs/introducing-electrode-an-open-source-release-from-walmartlabs-14b836135319
======
kory
Here'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...](https://github.com/electrode-io/electrode-boilerplate-universal-
react-node)

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.

~~~
alexgrigoryan
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/above_fold_rendering.html)

[http://www.electrode.io/docs/server_side_render_cache.html](http://www.electrode.io/docs/server_side_render_cache.html)

[http://www.electrode.io/docs/redux_router_engine.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 :).

------
nillawafer
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!

~~~
alexgrigoryan
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](https://github.com/docs-code-examples-electrode-io)

which is basically the code you go through on the docs. Hope that helps!

~~~
nillawafer
Thanks for the update.

It would be great to have a Discourse forum!

------
tree_of_item
Did they really need to have an edit distance of 2 from the other big Node
"application platform", Electron?

~~~
alexgrigoryan
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.

------
jazoom
I will be interested to compare this with react-server, Gatsby and phenomic as
I look to bring server side rendering to my app.

------
sonicloop
Hey, How do you handle SEO since the front end is REACT?

~~~
alexgrigoryan
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](http://www.electrode.io/docs/above_fold_rendering.html)

[http://www.electrode.io/docs/server_side_render_cache.html](http://www.electrode.io/docs/server_side_render_cache.html)

[http://www.electrode.io/docs/redux_router_engine.html](http://www.electrode.io/docs/redux_router_engine.html)

~~~
sonicloop
Thanks Alex, This is super cool. I have to look into something similar for our
Angular projects with Node

------
patricia_labs
I <3 the logo! It really is cute.

