[HN Gopher] Show HN: Total.js - Low-code development (Node-RED a...
       ___________________________________________________________________
        
       Show HN: Total.js - Low-code development (Node-RED alternative)
        
       Author : petersirka
       Score  : 112 points
       Date   : 2023-03-06 19:09 UTC (3 hours ago)
        
 (HTM) web link (www.totaljs.com)
 (TXT) w3m dump (www.totaljs.com)
        
       | ErneX wrote:
       | I cannot seem to find the price of the "premium" components.
        
         | petersirka wrote:
         | Our team is currently working on the Total.js Enterprise
         | service, which will provide all premium content (Private Cloud,
         | Flow + UI Builder, CMS widgets, CMS templates, etc.). We are
         | offering these components for testing purposes for some
         | members. The price will be appropriate and not excessive. If
         | someone wants only some parts, we will be able to sell them
         | independently.
         | 
         | Feel free to email me or contact me via Telegram:
         | https://t.me/petersirka if you want to use some special Flow
         | components.
        
       | michaelteter wrote:
       | To use this service, you check to agree to terms which include
       | this:
       | 
       | "By posting Content to the Service, you grant us the right and
       | license to use, modify, publicly perform, publicly display,
       | reproduce, and distribute such Content on and through the
       | Service. You retain any and all of your rights to any Content you
       | submit, post or display on or through the Service and you are
       | responsible for protecting those rights. You agree that this
       | license includes the right for us to make your Content available
       | to other users of the Service, who may also use your Content
       | subject to these Terms. You represent and warrant that: (i) the
       | Content is yours (you own it) or you have the right to use it and
       | grant us the rights and license as provided in these Terms, and
       | (ii) the posting of your Content on or through the Service does
       | not violate the privacy rights, publicity rights, copyrights,
       | contract rights or any other rights of any person."
       | 
       | If I read this correctly, it is saying that our IP and content we
       | provide (config, nodes, data, etc.) still belongs to us, but they
       | can also use it however they want.
       | 
       | Doesn't this seem a bit extreme? It seems like it could mean zero
       | privacy of the work we do (content added).
        
         | petersirka wrote:
         | There was no longer a time when we changed terms. Our company
         | provides content creator sites such as Bufferwall.com and other
         | blog post apps for blogs (therefore those conditions). But we
         | will update the terms this month by adding some clear
         | exceptions for UI Builder, cloud services, etc.. That's not
         | clear for all. We will get it clarified.
        
       | claytongulick wrote:
       | This is an extremely cool project, but after browsing the source
       | code a bit, it looks like it's badly in need of modernization.
       | 
       | CSS is Bootstrap 3.
       | 
       | The docs reference Web Components, and I do see the use of
       | customElements.define() so (I think?) it's using "real" Web
       | Components technologies, but the code is indecipherable to me:
       | var n = t.getAttribute('name') || '';       if (!n)
       | return;            var p = t.getAttribute(T_PATH) || 'null';
       | var c = t.getAttribute(T_CONFIG) || 'null';       var d =
       | t.getAttribute(T_DEFAULT) || '';       var s = '__';
       | var meta = n + s + p + s + c + (d ? (s + d) : '');
       | t.$jcwebcomponent = true;            compilecomponent(meta, t);
       | 
       | Note, this isn't the minified version, it's straight from jc.js,
       | not jc.min.js.
       | 
       | Looking through it, most of the code is like this, and there's
       | liberal use of "var". This isn't a cherrypicked example. It looks
       | like it was originally written about six years ago, and I see
       | active commits, so it's really confusing to me why the code base
       | would be in such rough shape.
       | 
       | The components implementation is very pythonic - it passes "self"
       | around to decorate with functions, it doesn't look like it's been
       | modernized to use classes.
       | 
       | 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'm seeing.
       | 
       | 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.
       | 
       | That'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'm looking forward
       | to seeing how they solve these issues moving forward.
        
         | bakugo wrote:
         | > CSS is Bootstrap 3.
         | 
         | > there's liberal use of "var"
         | 
         | > The components implementation is very pythonic - it passes
         | "self" around to decorate with functions
         | 
         | Could you explain why these things are bad, other than "it's
         | not the hip and trendy way to do things"?
        
           | claytongulick wrote:
           | Sure.
           | 
           | Using Bootstrap 3 is a problem because it hasn't been
           | supported for over three years and is no longer actively
           | maintained [1]. This is a problem for many reasons, security
           | and maintenance among them.
           | 
           | The use of var has long been understood to be problematic due
           | to footguns with scoping issues. It's the reason "let" was
           | introduced into the language, and is pretty much exclusively
           | used now.
           | 
           | The pythonic approach isn't a problem per-se, but it also
           | introduces additional complexity which makes maintenance more
           | challenging.
           | 
           | From an organizational standpoint, it's difficult to attract
           | and retain good talent to work on dated code. I don't think
           | any developer would be excited to put "Bootstrap 3" on their
           | resume today. If you can't attract and retain good talent,
           | your company and project will suffer.
           | 
           | Software is like a house, there are many complex systems that
           | need periodic maintenance and updating. Sometimes you can
           | remodel the house to get rid of the aluminum wiring, etc...
           | and modernize it. Sometimes it's cheaper to tear down and
           | rebuild. But I don't think anyone would argue "Well, it
           | hasn't fallen over yet so just leave it".
           | 
           | [1] https://endoflife.date/bootstrap
        
             | petersirka wrote:
             | We only use Bootstrap v3's grid system (CSS).
        
         | Boxxed wrote:
         | > This is an extremely cool project, but after browsing the
         | source code a bit, it looks like it's badly in need of
         | modernization.
         | 
         | Just wait until I tell you about the code in your OS, your car,
         | and your phone...
        
         | devrand wrote:
         | Why can't code just be old? If it's stable, sustainable, and
         | able to deliver on customer needs, then who cares? The only
         | benefit at that point be to prevent people nitpicking that
         | their code uses "var".
        
           | claytongulick wrote:
           | In most cases, I'd agree with you - but I think this one is a
           | little different since the customer is a technical
           | implementer building a product.
           | 
           | For some use cases, I think it would be fine - internal tools
           | that need a quick and easy solution, perhaps.
           | 
           | But I don't think anyone feels great about building a product
           | on an aging foundation.
           | 
           | Would you select Angular 1 as a UI framework for a new
           | project today?
           | 
           | Also, I think it's hard to make a good argument for single
           | letter variable names, except in very rare cases.
           | Unfortunately, in this code base their use is the norm rather
           | than the exception.
        
         | petersirka wrote:
         | The code isn't terrible, but it's not clear to you because you
         | don't have the necessary information. The Total.js UI library
         | (jComponent) is now 50% backward compatible with the UI library
         | that you opened in 2014! You must know that we want to keep
         | long-term backward compatibility. It's not a 100% nice code and
         | of course, we will release a new version v20 (of UI library)
         | this or next year cleared from the older code. We must offer
         | stable tools for development, and that's critical for us and
         | our customers.
         | 
         | This platform has been developed for around 10 years, and it
         | isn't easy, but we will keep doing this since it is our hobby.
        
           | claytongulick wrote:
           | I think the project is very cool, and I'm impressed with the
           | amount of functionality it has.
           | 
           | I do think there's a considerable burden of technical debt in
           | the current code base right now that the company will need to
           | develop a strategy to address, which is absolutely normal for
           | a project of this scope and age.
           | 
           | It's a tough challenge, one I've faced several times.
           | 
           | Given the clear technical talent I see with the project, I
           | have every confidence that it's a challenge that will be
           | overcome, and I'm looking forward to watching the project and
           | seeing how it progresses.
        
       | Jarred wrote:
       | Node-RED is really tough for Bun to support because it relies on
       | sloppy mode features like implicit global variable assignment
       | (assigning a variable without var/let/const) and Bun currently
       | treats every file as ESM (and transpiles CJS for compatibility)
        
         | rubenfiszel wrote:
         | For Bun on workflow builders, I'm currently working on making
         | windmill [1] supports bun as an additional runtime to run the
         | typescript scripts/steps. It's not the same as making the
         | workflow engine run with bun (we use Rust) but I thought it
         | might be worth mentioning :)
         | 
         | [1]: https://github.com/windmill-labs/windmill
        
       | edweis wrote:
       | How does it compare to Luna Park? https://luna-park.app/
        
       | bjt2n3904 wrote:
       | > Premium components
       | 
       | Mmmm. Guarantees I'll never touch this.
        
         | petersirka wrote:
         | We did a ton of free components and apps, and we have been
         | doing it for 10 years. - More than 10 apps - The number of UI
         | components exceeds 300 - The number of flow components exceeds
         | 100 - More than 60 components in UI Builder
         | 
         | Internally, we have 9 people in full-time employment, they need
         | salary. As a result, we would like to sell some premium
         | components in order to earn money for the next development, but
         | that's a terrible idea according to you. Yeahh, you are really
         | crazy!
        
           | js4ever wrote:
           | It's very valid to sell premium blocks/packs. It's really
           | amazing to have all the rest in the MIT version open-core.
           | Thanks for that and don't be demoralized by some comments, we
           | don't all think the same.
        
             | petersirka wrote:
             | Thank you a lot!
        
       | gmenih wrote:
       | Had the unfortune to have to work with Total.js a few years ago..
       | safe to say I'm never touching it again.
        
         | petersirka wrote:
         | 100% hate.
        
         | dkersten wrote:
         | Care to elaborate? Without context, your comment doesn't really
         | tell us anything useful to make a decision or verdict on.
        
       | petersirka wrote:
       | Total.js Flow is an excellent and modern Visual Programming
       | Interface for low-code development. It's a viable alternative to
       | Node-RED and fully open-source under the MIT license.
        
         | detrites wrote:
         | What differentiates Total.js Flow from Node-RED? Were there
         | frustrations with Node-RED that it was felt were best solved
         | starting over?
         | 
         | At a glance it looks good, but unclear why one would switch.
        
           | petersirka wrote:
           | - multithreading - better design collected from our Web
           | components https://componentator.com - without third party
           | dependencies (in the core) - online chat support with authors
           | and contributors (https://t.me/totaljs) - a lot of (open
           | source) helpers like UI Builder -
           | https://uibuilder.totaljs.com (released soon), Total DB -
           | https://github.com/totaljs/totaldb (released soon), OpenMail,
           | OpenTemplates, OpenAuth, etc..
        
             | kowlo wrote:
             | - multithreading
             | 
             | - better design collected from our Web components
             | https://componentator.com
             | 
             | - without third party dependencies (in the core)
             | 
             | - online chat support with authors and contributors
             | (https://t.me/totaljs)
             | 
             | A lot of (open source) helpers like
             | 
             | - UI Builder https://uibuilder.totaljs.com (released soon),
             | 
             | - Total DB https://github.com/totaljs/totaldb (released
             | soon),
             | 
             | - OpenMail, OpenTemplates, OpenAuth, etc..
        
               | emmelaich wrote:
               | It'd be nice for HN to support bulleted lists, so we
               | could go for readability without using blank lines.
        
       | petersirka wrote:
       | Talk to ChatGPT within Total.js Flow -
       | https://www.youtube.com/watch?v=K54ubAhheyA
        
         | ravenstine wrote:
         | That freaking corporate music though...
        
       | RcouF1uZ4gsC wrote:
       | When I see low-code, I find myself looking for the Visual Basic
       | of Web. If I could drag and drop a few pre-made controls
       | (including a database control), double click to handle a few
       | events, and have a CRUD app, I would be thrilled.
       | 
       | Unfortunately, I still have not found that yet.
        
         | omnibrain wrote:
         | Coming from Delphi, I always think the same...
         | 
         | You could check Budibase, I build a simple customer portal for
         | one of our customers with it.
         | 
         | Now I build a "real" project with Supabase for the backend and
         | Vue.js + Quasar for the frontend. And that comes damn near this
         | vision. Only a dragn'n'drop GUI editor is missing, but with the
         | near zero reload-times of modern vue.js with Vite editing the
         | GUI in code comes near.
         | 
         | There are of course several "frameworks" for Delphi, that offer
         | "building webapps with Delphi and then compiling it to JS &
         | Javascript, but I decided not to go into this direction,
         | because Delphi paradigmns are no good fit for the web and I
         | doubt I'm gonna find anyone else if I'm going to need more
         | manpower.
         | 
         | For Delphi:
         | 
         | * TMS Webcore https://www.tmssoftware.com/site/tmswebcore.asp
         | 
         | * uniGUI http://www.unigui.com/
         | 
         | Delphi Inspired Pascal IDE for the Web:
         | 
         | * Elevate Web Builder https://www.elevatesoft.com/home
         | 
         | * Quartex Pascal https://quartexdeveloper.com/
         | 
         | * Smart Mobile Studio https://smartmobilestudio.com/
        
           | spmurrayzzz wrote:
           | > Only a dragn'n'drop GUI editor is missing
           | 
           | I've been giving Storybook[1] a shot to solve this problem.
           | Works pretty well from scratch on new projects, but importing
           | existing Vue components, especially from large third party
           | component libraries, has proven a little onerous so far for
           | me. But maybe you'll have a little more luck with Vue/Quasar.
           | 
           | [1] https://storybook.js.org/
        
         | petersirka wrote:
         | That's possible with Total.js. We offer a lot of open source
         | apps like Flow, UI Builder (it will be released soon officially
         | - missing only the website) and Total DB (it will be released
         | this week - missing only the website).
         | 
         | Total DB: https://github.com/totaljs/totaldb UI Builder:
         | https://uibuilder.totaljs.com/
         | 
         | We're preparing tutorials and you will see that it's possible
         | to do it very easily :)
        
           | tluyben2 wrote:
           | Nice work. Is there an overview of which components are oss
           | and which are not?
        
             | petersirka wrote:
             | All components are open source under MIT license: https://g
             | ithub.com/totaljs/flowstreamcomponents/tree/main/co...
             | 
             | Of course, we have some premium components (under the MIT
             | license) that are hidden. Also you can create Flow
             | components directly in Flow, that's amazing!
        
         | rubenfiszel wrote:
         | You might want to give a try to windmill. open-source, self-
         | hostable FaaS and app builder similar to retool.
         | 
         | [1]: https://github.com/windmill-labs/windmill
        
         | tjchear wrote:
         | I actually have been wondering if we can skip drag and drop
         | even, and build a CRUD app with a markdown like language.
        
         | Multrex wrote:
         | Try OpenBlocks. I think is the most promising and fast
         | developing low code tool. Better than appsmith, tooljet.
         | 
         | https://openblocks.dev/
        
           | tluyben2 wrote:
           | Is this related to Illa somehow? The UI builder looks very
           | familiar.
        
       | mderazon wrote:
       | Does anyone know if they are using any UI toolkit for the
       | nodes/edges blocks or have they built it themselves? I am looking
       | for something something similar but for different purpose, just
       | the ui toolkit without any logic built on top of it
        
       ___________________________________________________________________
       (page generated 2023-03-06 23:00 UTC)