Show HN: Total.js – Low-code development (Node-RED alternative)
This is an extremely cool project, but after browsing the source code a bit, it looks like it&#x27;s badly in need of modernization.<p>CSS is Bootstrap 3.<p>The docs reference Web Components, and I do see the use of customElements.define() so (I think?) it&#x27;s using &quot;real&quot; Web Components technologies, but the code is indecipherable to me:<p><pre><code>  var n = t.getAttribute(&#x27;name&#x27;) || &#x27;&#x27;;
  if (!n)
   return;

  var p = t.getAttribute(T_PATH) || &#x27;null&#x27;;
  var c = t.getAttribute(T_CONFIG) || &#x27;null&#x27;;
  var d = t.getAttribute(T_DEFAULT) || &#x27;&#x27;;
  var s = &#x27;__&#x27;;

  var meta = n + s + p + s + c + (d ? (s + d) : &#x27;&#x27;);
  t.$jcwebcomponent = true;

  compilecomponent(meta, t);
</code></pre>
Note, this isn&#x27;t the minified version, it&#x27;s straight from jc.js, not jc.min.js.<p>Looking through it, most of the code is like this, and there&#x27;s liberal use of &quot;var&quot;. This isn&#x27;t a cherrypicked example. It looks like it was originally written about six years ago, and I see active commits, so it&#x27;s really confusing to me why the code base would be in such rough shape.<p>The components implementation is very pythonic - it passes &quot;self&quot; around to decorate with functions, it doesn&#x27;t look like it&#x27;s been modernized to use classes.<p>From a features standpoint, the project is very cool. My concern with choosing to use it in a production app is the enormous amount of very obvious technical debt that I&#x27;m seeing.<p>At some point, this will either need a major overhaul and rewrite (an extraordinary effort for a project this size), a dual-implementation support (like react and a few others did, with class based and functional APIs both supported) and a long, slow reimplementation path, or a decay into obsolescence as the core frameworks becomes hopelessly outdated and difficult to maintain.<p>That&#x27;s a really difficult technical position to be in, and I sympathize with the challenge ahead. Clearly there are very talented developers working on this project, I&#x27;m looking forward to seeing how they solve these issues moving forward.