Let's face it: this was a "for tutorial" project. Simplest possible, and not market ready. Why? First of all, I do not need a robotic spider. It is a good case for a tutorial, but it was not intended for Amazon. Here is an incomplete list of what remains to be done:
1. Case for batteries. Well, this is an obvious one: we need a box, nice and with smooth corners, to cover the power bank. Or the robot's body can be redesigned to fit it inside.
2. Six legs instead of four. As our robot doesn't have sense of balance, four legs is not enough to keep it completely steady. It works, but for brief moments during steps you can see that, wher robot lifts its leg, it begins to fall, as there is no support there anymore. It doesn't fall, but... There is a reason insects have six legs. They compensate for software simplification with hardware patches, so to speak.
3. HTTP connection. Our robot uses unencrypted connection, because this is what NodeMCU does by default. I seriously doubht that hackers can do any damage by highjacking the robotic spider, but for any real life project, encryption is a must. So either we have to add an advanced WiFi module, or (better) switch to Raspberry PI or something else.
4. Exposed functionality. The robot can move forward / back or turn in place. It can not move forward while turning. It can not change speed (well, it can, but the code doesn't expose this option to be controlled from the outside). Also, it doesn't expose interface to control the individual leg, in case we have a non-trivial obstacle - this was simply not the objectibe of a current project, but still... The robot cannot (it can, but again, it doesn't expose it) go up/down, tilt its body (say, front legs straight, back legs bent) and so on. In other words, yes, it is just a simple, tutorial demo, not something to send to Mars.
5. User's convenience. Current implementation doesn't monitor incoming commands if the previous command is not finished, so to make our robot to do the next step, we have to wait for the previous step to be completed and to press the "forward" button again. There is no "press and hold" functionality. Implementing it is trivial (we use queue of HTTP commands with max 2 elements), but it is not done. Code has some hints (see the condition in code where the stop() is called), but currently it is not done.
Overall design. The plastic parts should be redesigned to match either insectoid or Star Wars style. Currently, it is too boxy.
And of course, if you intend to sell something like this, do not forget to clear all copyright issues with Bender's image.